From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id A4090476CA for ; Tue, 19 Sep 2023 20:02:06 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 070EE68C9E4; Tue, 19 Sep 2023 22:58:46 +0300 (EEST) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01olkn2109.outbound.protection.outlook.com [40.92.65.109]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2050468C63B for ; Tue, 19 Sep 2023 22:58:43 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XplFk4DD40FON9jayw/QG9qEnMc/mQ0Mz0bE15dtjm1OoJvavvupLxsUb3qE9/C1U14GxMMzi0wX/LYpALzPaIXSiScGqeq5ce0LkwVTGIxdysskfpuyYfnbSgex66ciafanR/6O5CiASO+4fcIpomsONnJikCwt+F65JHq9/Pd1arGhnjDFRmwaA1Q4jRU/OVTA/J7qXR8tKoS1ShdWoSk4gLuw1j40jC8eFpxAGcVWflx3b3KV8Gg0G4wk0goB4hqNE6NQ//srSYw+w8no9RvjTTGNpr09K8DPbbXDREUIt9OijgUiYpkQ3GqEJMxtE2d4BGetxs/W2nautWyznw== 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=+dFYx+41gVNyR4O9QOXY2l0WhK3753MNOOd4ON7uFz0=; b=a6BsU4Vpyj+ushdyciFtAjafM/PzX69OsZRTR2XBGZKawhvOOAt2rKeWHuXDu1ExElOqpxAjHGnt9oJFsirkeomUaeE82cEfgf+iK1QLYEkcjeF144N8lFnLaGv+5WYrj6mHLtM2Wg9932Z2kHgzXfCLYOPObD4lAOegj5/KxAdWIEExs6E4m288wtXxnD4H0cEnNs0RW5BK2s3wYq1X953SPr5kDZbnlD9zdEine0k0CQ2yeW78b1JF4PXnUzN5CkySwG4uCB5Bc+M73KUkfcEl/ppVx0QCnOS+sQrOC0YxwYvGv/xuiue6TkCmzEAbvcYkRNiOJ/HiZ4zK+lmkwQ== 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=+dFYx+41gVNyR4O9QOXY2l0WhK3753MNOOd4ON7uFz0=; b=IWBVmT+xzO35ORkzBYuju+pSO95phVvqkttLlZghBlGWttBplU2A3r1SsOqlf9w2zCfPS/JNm3KAyENKj0pO20SyLJhKT7JPiYOY2T+kwiOxjepbxWynh1udGoWOkI0Hh8BJEw/kXkZeL7CjjbyJ2X9ri07GmYRh+X5dHIi4huNNHGXvi8Mo28RASr2ZyKDeA1IP9AybYv2LhuCk9WMRzH0TI340z9Y4t3+JRBQRRGFbOXRI7cafkQ25/y6hIqoraa3ETn+tZUbbS/r1zMrA26PXf6fJG1N3RCbbDs118HEBHi6WmgkIBwSr1eG7UQH2AP2d8hxk9lIunT0YV8ob6w== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU2P250MB0237.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:276::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.26; Tue, 19 Sep 2023 19:58:41 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa%3]) with mapi id 15.20.6792.026; Tue, 19 Sep 2023 19:58:41 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 19 Sep 2023 21:57:25 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [rTU6QJZiJhPEIQADIxTtn5HKkmOcmF6P] X-ClientProxiedBy: ZR0P278CA0086.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:22::19) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20230919195734.1005750-33-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU2P250MB0237:EE_ X-MS-Office365-Filtering-Correlation-Id: d7b61f18-de1d-48a0-166f-08dbb94ad260 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rLMMTQ4L9sG2UiUS4p/ASRCDcW+wZjk3X7A5sFOAeVAsKP9cZGhCArhgkWkyPYGr3WXkcUeGrfl/+SS6AIBDkkEOmYamXoF4dm9Pq9a0DZPpVTRtQOfhlr2yxJEtBx36rr+gx38WkBaqY/IebLvmX1p4S8gVqWj5FpiuEVVvD9c8CCotxve58x+ROR7E+v8F/4adR6re5QetAdqLMshlS4CWZ9DmeBH5vJlfRO9XFU96nNkcWMXRupwEcNn+i0vbBEWsGALXvf3QuLlZhbYf4E2bfUHwalICipp5d76aqA97x2r77yffy9nR2gFBKXZ3mWb+bkIStjiQlxi2EMuLC3EgehGOj4UYSxbXro6PHSIgJCXE3k5p6SH6qFsmIdrD0pIPDxt3bji/XM9H4qz6tvJo2ZFv2/y14qQY8j+Kw2Ox9V6iuMJ7Vuyz+irZboEHXg8pl7dVimsVU9aI1gMmRX96XixRsLCw//OozDJNxegroDlu/LWr7lIRTIqBAJzx85QDNDvV3k2UsWhm2MFPIUdYs9SQWifmoaMtoIJtmTCi+lsWgdV9DbzLj+Zf0vGjG3ZFYGhx6CAu+/El3SW57w6sCueagF3Vp6JJt8k1cZXAGo0YcCrvYVB8DrBBYl/g X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qUcNCUW+QWX6+kGFqJqkLgmXJSeoGqlAOff4ePuvOwqENr3IejSr5XimdO11?= =?us-ascii?Q?w10lviOnRPnFzim8CB20nsoeFbg3u8bDsAuT1Nz3Zv7IjyTf8MHetHn0zG9D?= =?us-ascii?Q?C4MSxYzFQCQkjr2MZ7B+hnepfGnq5y3yTdGqmk4gzCVyK+tfTJclaS7kKAty?= =?us-ascii?Q?4S1UVrd0UqsTD2Mo/wauq+cxHDaE8HeR0I+ZLzInaMZtySQsomkOGx8HzLky?= =?us-ascii?Q?OfAlga91VAcm/tiH1QyOcKjEvjfUI5zsolxX7L/IzrylYdMFPk5OArQDrkVk?= =?us-ascii?Q?IzcZJeFjycAaNh8ic8bajA2kz/UQycqFw2HjMsvBA9g4/z+ngvUn6Cf3LmG6?= =?us-ascii?Q?B+2cl6budhN2dwXjk6540R/BmYGWhUQXKAaOSHg7o18DvypdfFWhINUYeXRX?= =?us-ascii?Q?/U0Th86d/2DpuBH6+yK89JQCWOAjYydM+52ktfrzel4Z+eae4+KxbID6k3F6?= =?us-ascii?Q?SQZPBId7OCrLxJCVyqoJF2KQQKWltoZUZkI3w+nohI+UWDUvRO/Kovb6oOFc?= =?us-ascii?Q?6PBFM5h1Mobt/nCH6abxdtr8tX5hVGDBI28BPBigJZN099LWrxGxhCN5m2tU?= =?us-ascii?Q?TgLcb54MJlAvxA1JRQALz3G8pym/97v/AmNKCTPbJBgId7jSQ6Iygo0uriWp?= =?us-ascii?Q?3kVV57Ub31yAbpGvKBaRqApQLJzU0nspSrf6V/7/gefKq3v8djxOHzLpZ00S?= =?us-ascii?Q?/5fHy4FY6py3tzgQK6ymHUxQuhCPAIdlP+CgmuKT3rzcIyjGaSZeO6gMa3I9?= =?us-ascii?Q?lhVbh33MWhr6guXjXvVU5LWVGou6Gxv9s3qmwYsJCQDWWka5TVZhghBHBN0L?= =?us-ascii?Q?jvAQf+AQngQJ/Py15uQyFaTBhztp/XNdD3KqVyA3CLVr+nLvTJJ+PCxKKfWS?= =?us-ascii?Q?NEwlRWqiy1+PRWV3rpD2fXNKTCtcRW/XHrXuZQMvdZuSF1vvx9NCuIAnZpTn?= =?us-ascii?Q?JmampNH7zdkqK0Pn/jQ90/XyyxcTw+HejuTKKMRqeOnXsTAv7DN8TdueXo8Z?= =?us-ascii?Q?rUgzH4SmvVgpDy2thcoGgD1uPbNqoNrqr2xNaEocoIsgdC4XC9vZYUhBzo9V?= =?us-ascii?Q?T3PasaL7u/+VhTFvPkbmScrNB81JlYCC/6QcK6o0sCgXwUvaAAmSYXhPtsna?= =?us-ascii?Q?ln62xlHLk+wTaf1JJmkH4ivMulFaNvKB5WTNM8nnVktotB6MH6Yy2DeUG46G?= =?us-ascii?Q?i1bdMi0a6qLADoWGEffIJXpK3vDsw0YJosqlKctW/C/uJ/8CYPFSeAHfFmSm?= =?us-ascii?Q?cNHgw/Pc5TP8XHKTakoR?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d7b61f18-de1d-48a0-166f-08dbb94ad260 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2023 19:58:41.3456 (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: DU2P250MB0237 Subject: [FFmpeg-devel] [PATCH 33/42] avcodec/vp9: Simplify replacing VP9Frame 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: ff_thread_progress_replace() can handle a blank ProgressFrame as src (in which case it simply unreferences dst), but not a NULL one. So add a blank frame to be used as source for this case, so that we can use the replace functions to simplify vp9_frame_replace(). Signed-off-by: Andreas Rheinhardt --- libavcodec/vp9.c | 16 +++++----------- libavcodec/vp9shared.h | 3 ++- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c index 87c507bb36..8eba56b720 100644 --- a/libavcodec/vp9.c +++ b/libavcodec/vp9.c @@ -146,11 +146,11 @@ fail: return ret; } -static void vp9_frame_ref(VP9Frame *dst, const VP9Frame *src) +static void vp9_frame_replace(AVCodecContext *avctx, VP9Frame *dst, const VP9Frame *src) { - ff_thread_progress_ref(&dst->tf, &src->tf); + ff_thread_progress_replace(avctx, &dst->tf, &src->tf); - dst->extradata = ff_refstruct_ref(src->extradata); + ff_refstruct_replace(&dst->extradata, src->extradata); dst->segmentation_map = src->segmentation_map; dst->mv = src->mv; @@ -160,13 +160,6 @@ static void vp9_frame_ref(VP9Frame *dst, const VP9Frame *src) src->hwaccel_picture_private); } -static void vp9_frame_replace(AVCodecContext *avctx, VP9Frame *dst, const VP9Frame *src) -{ - vp9_frame_unref(avctx, dst); - if (src && src->tf.f) - vp9_frame_ref(dst, src); -} - static int update_size(AVCodecContext *avctx, int w, int h) { #define HWACCEL_MAX (CONFIG_VP9_DXVA2_HWACCEL + \ @@ -1579,7 +1572,8 @@ static int vp9_decode_frame(AVCodecContext *avctx, AVFrame *frame, data += ret; size -= ret; - src = !s->s.h.keyframe && !s->s.h.intraonly && !s->s.h.errorres ? &s->s.frames[CUR_FRAME] : NULL; + src = !s->s.h.keyframe && !s->s.h.intraonly && !s->s.h.errorres ? + &s->s.frames[CUR_FRAME] : &s->s.frames[BLANK_FRAME]; if (!retain_segmap_ref || s->s.h.keyframe || s->s.h.intraonly) vp9_frame_replace(avctx, &s->s.frames[REF_FRAME_SEGMAP], src); vp9_frame_replace(avctx, &s->s.frames[REF_FRAME_MVPAIR], src); diff --git a/libavcodec/vp9shared.h b/libavcodec/vp9shared.h index 805668416f..8a450c26a6 100644 --- a/libavcodec/vp9shared.h +++ b/libavcodec/vp9shared.h @@ -168,7 +168,8 @@ typedef struct VP9SharedContext { #define CUR_FRAME 0 #define REF_FRAME_MVPAIR 1 #define REF_FRAME_SEGMAP 2 - VP9Frame frames[3]; +#define BLANK_FRAME 3 + VP9Frame frames[4]; } VP9SharedContext; #endif /* AVCODEC_VP9SHARED_H */ -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".