From patchwork Fri Apr 19 16:07:31 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 48170 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c906:b0:1a9:af23:56c1 with SMTP id gx6csp727855pzb; Fri, 19 Apr 2024 09:08:02 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUAH9fDXOx5oJ/KxyudcYxA+BFDZ8Rl8G0UKMVBuKQb79wgoyQl5scIIRF0QV7xSv3pTKIhkYSmrcPrT/lrr2eZuzxpEdVKzXyr/g== X-Google-Smtp-Source: AGHT+IHAvV5N0Uk1C2VrBPV6VSbkgSD/1rOmsRrGDQ+lO+5NSloFprN0D1a3omZyzK9kQc5xdyt6 X-Received: by 2002:a17:906:6d05:b0:a55:6ad1:9a52 with SMTP id m5-20020a1709066d0500b00a556ad19a52mr1941566ejr.2.1713542882095; Fri, 19 Apr 2024 09:08:02 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id v6-20020a170906488600b00a555bbe951bsi2362388ejq.867.2024.04.19.09.07.54; Fri, 19 Apr 2024 09:08:02 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=Q+7HkdWg; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 468E868D3C9; Fri, 19 Apr 2024 19:07:51 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02olkn2075.outbound.protection.outlook.com [40.92.48.75]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B65BB68D308 for ; Fri, 19 Apr 2024 19:07:44 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gfbTnfqppmQagK0K3sZ3OIJceJbLc2oSR6QHyyrfD56JgjSXww9d8EWxL+22LAC4eb6rtEfQH4Iw3UPNQBUPTgDEnj0qKvN5JWRMRdGOQtphQEQRA6RccCVuoIPW7tjgrJfSKS0g+vXTB2n7gEhsOJmRg7eYfGJKdPGSihl6DaKORem5RwQYN/UDV3x4FchRQlIG4wMTTUVyaSUefL/JCb9rTlksRwEccQrMBskHjB2jLpZHJJuUao7wccGlfc+Nm56R7Z7O4xc1xRSJKXN1sN0dhfDn0AMu5RsynNrhW1MwL9wLBUlUbjjbN1xgq/hmkiGwuWEv/LUCG1Fp4iTi1g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=dEZkyYT38dHp/Q2hh5q3eyaycgUdCV6K+QxBMXl/e48=; b=FbACK3lYqqYmhlEQdwABW2/qHVlhL1QWcBJtsRd2Bkuzp6eqs9ajxTJ9fWdpvV1PA9bWYUI7TLrkjymBEc/HZ6PWUsafRumThkVBDrkBAJ6tYA8VDpxNWzcCV+cnClsxXTc+mduuHvxfaxhgDwbeFrHV+sL83xUp/XiZBZSbF4mgzhrsUTDg81pA8A5YM2xAL8hLAyeB6D+8k1+3oThgCYPXvwBdob8s4+eb17xlB0yY1oOUTeaZbCigT7USalR9yAXF0jqOAFdPugNlZJa1uGCtuqrBLsFPa5tvYghpKQwRDOK4o9jfEstwxW7fBd3IfXyh47b6bmYx1dHeWR2ZkQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dEZkyYT38dHp/Q2hh5q3eyaycgUdCV6K+QxBMXl/e48=; b=Q+7HkdWgKvW9SfPAMeYCLtEqSVojmGnEFxF8CUjG6E846h2juTuF4V9y67x+pLhFby4ZyrljgOckk4E9ClOr38U9ZYdyumyXuJg5b+c4Q7KZk8J0ng4cDXjE4FGe6Z/KiPeY/NBZBCBbnn7oFpnwJAZBissC44wEP05zOB6sHLRxlkYoCGh2hl/QremWTZIoh/4EkNDhNTTg5GHKYaI8Z0+r6jSO5c7q28m+4w+Vq0CoGrv9LuU2RtmHFuEROTNStMxFVUIlluPu9ugC0M7TKBPEOM6R0uCtiAB4x3D3A//M5KeCJt0iqfLMRzxm//zMB2gHRmV6pkGQABKThjRKSg== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AM8P250MB0138.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:321::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.41; Fri, 19 Apr 2024 16:07:43 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::1f29:8206:b8c3:45bb]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::1f29:8206:b8c3:45bb%3]) with mapi id 15.20.7409.042; Fri, 19 Apr 2024 16:07:41 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 19 Apr 2024 18:07:31 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [dRYHdqvGL2EA8MUZ1kBQ+HBXlqJigSrle+E16WYCt+M=] X-ClientProxiedBy: ZR2P278CA0006.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:50::12) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240419160734.1104837-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AM8P250MB0138:EE_ X-MS-Office365-Filtering-Correlation-Id: 85c3a81e-7419-43bc-91eb-08dc608ad76f X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wt8cYyexq/divEM5BjZZMB5ni0tJwBbVqttSj4RpyumbYSK6eyCAFN77zKqnhGUHYCsfBZEHkNd0KVrJKms48joVRoimPEYjH8XGJNg78bu5zM/pLmsKQkJKJ/Wha3EvIG+E44ojPGrc582KhtY3e4Fu0GFXDEgb5guvfddv+OgioLmUbrBdd9A205WoJiXSiyPjXJXGQd3Pmrn09IGhwptrJNm5/nTmWb8ZroH6gPrcsuoniLZ7OnzxWAVBNfsGkp27PWljXdHExCgDzi/w1qbvtYJKt62OtAr66ixJh8C8bKriPmJ/FsO09wdeddksiC82V8JhKVIx9dcUzPn15dB5rTAe+nDTGzD+IWqj36RIcQg/3w+MDFwBFnAeiZAK16/txn5VfjXq9Qe6lD51CxtTMW/3Is0S81//CNdQI3qvFI8PuNbWpILaM09HZ+ihOWPcEGf15IuL2NHayLVvpsYszEXzZiRoipHLcMtlnFz9uMqKNWT/hdRrA18JkakABiiIIiKiXArI0bjJSq+X7U2XJmsEqNecIx85V4dneCpl8jD6K4JkYb4L7PbQAhOhy1tVn/r8jXJeQfXrwx9hCv/EFFdDd40GiGCO2dR8ltaGeChDwaS24LDgnCLFtbKX X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: kktjAHBcbMIhCkmMIHL7hWU0QpvZH/FNvErbhMkIiVOumfQbQv6wx4o5Vn3MW6OfrwnueVMMd1i3YgX+fNm7jkbIqNNV2ynwnUsp7m218O0brOhO76BcmJUN9je0xRePCDB8BK90WiyOMAEiF6drJFnRFg2IdUDId0XKp8pJHNZJZmJttuLvvN2qh1Sp3qLF2euDUBqzD3lrphkuaC9uP0NueJVDWW4i0x7XCQVDhuQX3km1ys4WihnhsQR3qs3TIJeIbADebR4hcFxCQj3pFmd9qrihdAyrxdQebBwTwx9W35ie4DrhHsrTvPD06CfkETv2H5wvWkK/QRplH2esr4VkSHAXum2tv7HLh7BAuCiT9eKP+4YtZ229db4FYpPNZfaCjJiofO+UYs+KwBJROYTQwW46OPFuFVa6TEnV1BQHw+ghjveOsih4vO4Al3fZBE16fUoLEq8r/NEJ1bJ0Nia52JJfdqRnhK9cBm0M478qHZ+t0MHwJtE3KkofPysneKWK5vjM9c9WF4vCwVJqo/z8aUyrmiBYxXhrTKcjpmU/qxZQpxNSj7s5HQjYkObAkvk6eQwWL5XfIKpKAf829S/tt9v0Q06i0ce5z23x5ngtqSF689h3ul3ZMDLdi8lGAd0agRlqgkM5tZ85B/+wuSuZ+ReaI8kI6qKzjV9GZ5vnB/D6EoPZVnYbdklhKaIzLCa+l+seaOyY6nd1GOPSYOZGZ5SMgUs7a9G1uaATOpTJnW2lfQcbl7kFPiLynlh3DcQArSlGdLCKg/9xqr7PdiJu204w4HHMo+BoAyvoVQdyHHet+KrtnBdTsP3AdOwLePVG7upbnfZcEh0FJ+bBY+NxsvXZmmxD5oyUS4ZrSoDgUgYB+clCFALmF9rr6UmDhbuWTCfJrOE2mrOJeHDm2OuipXbChv4lGn8bt1Tqu811ww9t4yqyPRGk17UoW6BpmfnFoegJoHCFqKACfcYZjosx9JZSXcf0a2QRw1ZPDJakLhh/tlKnONRB/JsssUoPiusHsWDFDSS+E9a6MSks+WARUEy38qsUlbebqz3qj+edr9nOWfakDD5+aYOelcw/d+aCJ4kJ01z7NmR8T2Ft8Mrbwc4OorWX+M/fvhoZy2XVEcGF1EivrcdZ0Z0lJGV9FCCzAGNEVUEkqbJ7G+tXeBCYFqgW6FEcVDsIYBDpRAFr6VIv+TagMPEbJKx6TPF11jAbpZEs5zOMqt+3W30pfyTD4lWGGBb47Ovw+p7BHZfk7jqr+8AAc8BGx2RI+OMMNoZGIICdTx6jT6A/3g82Fg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 85c3a81e-7419-43bc-91eb-08dc608ad76f X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Apr 2024 16:07:41.8235 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8P250MB0138 Subject: [FFmpeg-devel] [PATCH 2/5] avcodec/hevcdec: Use union for AVFrame* and ProgressFrame X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: doYgweDvdqBu It avoids having to sync ProgressFrame.f and the pointer typically used to access the AVFrame. Signed-off-by: Andreas Rheinhardt --- libavcodec/hevc_refs.c | 2 -- libavcodec/hevcdec.c | 1 - libavcodec/hevcdec.h | 8 ++++++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/libavcodec/hevc_refs.c b/libavcodec/hevc_refs.c index 192d311696..8da9ec982a 100644 --- a/libavcodec/hevc_refs.c +++ b/libavcodec/hevc_refs.c @@ -34,7 +34,6 @@ void ff_hevc_unref_frame(HEVCFrame *frame, int flags) frame->flags &= ~flags; if (!frame->flags) { ff_progress_frame_unref(&frame->tf); - frame->frame = NULL; av_frame_unref(frame->frame_grain); frame->needs_fg = 0; @@ -87,7 +86,6 @@ static HEVCFrame *alloc_frame(HEVCContext *s) AV_GET_BUFFER_FLAG_REF); if (ret < 0) return NULL; - frame->frame = frame->tf.f; frame->rpl = ff_refstruct_allocz(s->pkt.nb_nals * sizeof(*frame->rpl)); if (!frame->rpl) diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c index 1974bf9cb3..50433957f7 100644 --- a/libavcodec/hevcdec.c +++ b/libavcodec/hevcdec.c @@ -3418,7 +3418,6 @@ static int hevc_ref_frame(HEVCFrame *dst, HEVCFrame *src) int ret; ff_progress_frame_ref(&dst->tf, &src->tf); - dst->frame = dst->tf.f; if (src->needs_fg) { ret = av_frame_ref(dst->frame_grain, src->frame_grain); diff --git a/libavcodec/hevcdec.h b/libavcodec/hevcdec.h index 24fcbf440a..e82daf6679 100644 --- a/libavcodec/hevcdec.h +++ b/libavcodec/hevcdec.h @@ -352,9 +352,13 @@ typedef struct DBParams { #define HEVC_SEQUENCE_COUNTER_INVALID (HEVC_SEQUENCE_COUNTER_MASK + 1) typedef struct HEVCFrame { - AVFrame *frame; + union { + struct { + AVFrame *frame; + }; + ProgressFrame tf; + }; AVFrame *frame_grain; - ProgressFrame tf; int needs_fg; /* 1 if grain needs to be applied by the decoder */ MvField *tab_mvf; ///< RefStruct reference RefPicList *refPicList;