From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id A1B4340956 for ; Sun, 13 Jul 2025 18:16:10 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 9323268E24C; Sun, 13 Jul 2025 21:16:06 +0300 (EEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2065.outbound.protection.outlook.com [40.92.90.65]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 2A47B68E244 for ; Sun, 13 Jul 2025 21:16:00 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JK27XAKKHCzDyxhNTIa1n41bos4BufaFtwsJvxH8j0ztkfJ965dT6d49PMDJltSkYUTBK/12UD6s7spdSw4+ndbhINdSz6xDOiHKU4s/fwnrf8H3my9YJGrKhLwNu03n6Xzq2075nrk7YaHc7LI8dxIgnWToUnmazwLqQ1Ru2XHBtTiabwdoNIs6LieqYV/CwlXvh9hS0eXwFW+avsS+ELMgP2W4XIr8oTYcVn1i3x4BA6v5W3ELOI9Li6IEM0gS+MSG94xX6ZV+/DFwKNwAZFsgTFqFbGUz/i6YIESWSTdyQLQNGDkmR4mtWvgu4dP7z/XE4nijaOWKzlyAXEFS8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=hO23nN8D/1Vb9WziBAIWzgOeTWsyOWn+J7XEBA+FOG4=; b=S0vRi1kXdvhIETzcnqvoDMkAAYZvXjs2ezNNfmgNZSkM7itqT7YoAqxEtF2/cJDIsWhiDzpS73IPqUUIgYaviLeuYzOSF2TYToojjWcIMsMgJjE1++27Lf1rZq49dWeTQR8njC3XKs3PJnTJR5aa3GVwCMkI8XlccTtXSAoYCt+X8aiCaRcPfhlgtCg4mCd9tC8dAubbSArhi/fALn87oayqY3x2BFTjA8aXvYmLe4FLiHsQaC7vWBlhR9NNhkoD7zGNuTaFem3/rHquS6Ti/wA37rqDRfe39i5iPEtq6BBsaq41+Z+XhWFygkKA483fqfFTt5Yx715861DElJeQCA== 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=hO23nN8D/1Vb9WziBAIWzgOeTWsyOWn+J7XEBA+FOG4=; b=SWlV43qWZ3e2iGKHipjNtLs/jAakyL9K6ic19aHsenxettFUCQoGtS4NhQVGR4VAr3hjwilNGRbwzrBQCuDAgldZLaBnmZfyVznao9sSY+Jh7hphaVhbfTfHCEPnZGtvD6Ukmi7jmZHjRs0erU8wYCZFtF9vhdmq2N2jSzZDzpSANUszLhUzfHg5ncaBSgmENVx9+amHyChlsUagPOX2eZ8n1LFzNS/VuCzsB3jBinFcBbB7HbbI2ywx37r4ytvsENz4qgU8ooPwfEInrHwuJ9v6AHyQD26mkl7M/J43JWZtdsKqhk4P7QX+/tkAQR4AwkxsQ4XXlMcsHxN7vJHmLg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AM8P250MB0041.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:3d8::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.26; Sun, 13 Jul 2025 18:15:59 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4bfc:40d7:f620:ee41]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4bfc:40d7:f620:ee41%4]) with mapi id 15.20.8901.033; Sun, 13 Jul 2025 18:15:58 +0000 Message-ID: Date: Sun, 13 Jul 2025 20:15:56 +0200 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20250712185128.862167-1-dev@lynne.ee> <20250712185128.862167-12-dev@lynne.ee> Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: <20250712185128.862167-12-dev@lynne.ee> X-ClientProxiedBy: FR2P281CA0091.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9b::10) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <70931a32-d741-43a8-be36-47906a0f5d79@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AM8P250MB0041:EE_ X-MS-Office365-Filtering-Correlation-Id: 89fa72d2-ddf7-4cf4-76b7-08ddc23950b9 X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmpALmAm6TNbRtgU8YfxKxZS+l6L9Lmh5vBcqcsRkUmuX60Xte+zbZK7MTbyKsOkL14SmhTrLCWVO+oXuUUFFz+31Jz76XVJ+hikO0I93hxHeAzBXxS0kOqRwnC70WiZmqBZNKuGam+lYkw6DrLWJXvS9XX41pKajH2F/fpaheQi0aXJNn85S0Mg8QErO6UOkOf0KmRtnGE2skhOsRG5RTuauaL0HI+me84Ht33QJSfcrPNH0kCxjA1DEMKdWtslEAVh4z34HLJe+UPgrKqr0Jp4MrMg4YR+8a8qkxNmbMwNu/YiOrcbTT9Re6Xhx/bh7pEWZ2iwY9E5a2fhP7vHZVKpQDWLD3rrUJfGmsyiMrvPOAHTP4y37tU9d9zHECjl+GIg/rMJD9u+YOe5y220ubfwk0gUbX+ix6ePKfGpOsbHaRmC+rf2YdDixotvcY635GSjvcpJYaRuAgbmgZzx/Zghk4TfKbOD1QUb03YDiqQ3aS9LjLlEuFNLZ/Ihg7WOktEiHJn1ms6fxq9eLjoh0HNtCn6ZXqrHizmAXkpTMpMLbsgFIvUmx/tQhosmSHpcKHU32jmA9ytGj2qMWATYrPLzeXoanSsGNVskfEI+zJmaubgFtT7bDhK+xyuIK9FWi4Jwy2v0myIPbgPoDeAScGXAF9N1dvZaYR8DI/EUmLv0l4uhX2tGWVkyMWVbHcIQu+NjYztOyfkvUQl82pL1PiaDuwQ1vf5Hkpub2s1cWjkZC6v77ouhLdFA1wBr/g9CUDM= X-Microsoft-Antispam: BCL:0; ARA:14566002|6090799003|15080799012|461199028|5072599009|41001999006|440099028|40105399003|3412199025|12091999003; X-Microsoft-Antispam-Message-Info: =?utf-8?B?SHg1QUpRSTRSRkkyOThCNTJrL0dJM1BvY04rQ1NkQ29YYW9MMGQ1TjdBOUhy?= =?utf-8?B?RmZKZzc0WjFVTXZRd3AxVk5DVGFwbUp3Z1I5QzQ5dk1KTjNGNEUvSkdCeDNC?= =?utf-8?B?dUZKOUY0S0luaktyTjFFZEp0ZVlyamhwekhVdEtUWmluQ250SjFkdEROazBn?= =?utf-8?B?Nnk2T0tBL0EvRDMrK3U1Kzg3RHhQTVVTdzd6cEUxNnRiaXhMWXU0VHl4djJZ?= =?utf-8?B?ZVBtSmtsaUZBV3F2ZGE3RURnWld6RzdwVlJURGd6eWRHRXIrVmZVNjVGbGRG?= =?utf-8?B?NjRyT1N0LzkrS1NMYUplV0lKRmd6OWlmUUJqdVEyRkRhNFA0Zjd3U05kUnpL?= =?utf-8?B?K1RBYnBlQUJ3cmpUaDRxdDFYWWcwRU9tU0FxWWRyQVQ5SnpRSGxQdFVTU29Q?= =?utf-8?B?RDNMaXhJZnNRYnpqemVneFRqRkYveFo2cEVTT05IVitJWkFCYU1kNHJmVUJI?= =?utf-8?B?bmpseTJxUkNQQmpncUp4dmRTWDcrRWlTck1HbzRxeUhSUUw5RTlQblhCL2Rp?= =?utf-8?B?NFhHNVJyMy8xREhSVzIxTnEyazlpdW5yczh4SXdIOVRMTFV6YWZway95cm4r?= =?utf-8?B?RTNFVXV3NFU5YlFMdmw2ZGpIVERIM0tYT2tUT1J3RThqSVFHMzk3dE41WXh2?= =?utf-8?B?bG9hYUdESjkwWk4yZEZjci9rK295ZXRSa3VQWStMZEhoaUVIejFjMDVweFZr?= =?utf-8?B?UWpKdUk3UDhORDhHUE1zSlQvMElIaFg1NHg1U1diRFZkTFh0YStJdk0zNE5w?= =?utf-8?B?NEVFcm9PNjNFcVc2VXdHV1NKQ2xMbzNhbTZGbm1mbHRVSkFCTlRLbDVYa252?= =?utf-8?B?QUpjQ2JiWG1Ga1YvbTlzR1RpUngvd2JmMSt6cmpmZHNPS1U2Mk1CSVltdXBB?= =?utf-8?B?VlVSTUxnQ3R5T1VsVXFjbUNXWHdPcUZXdHJHaWd2RzVSUEJ3bkR2VnNQTDNP?= =?utf-8?B?blhUU0w5aUhaUndPcDNFK2QwcVJST1VaUnZ6KzNScEpteG5HTXRuMGFQZnBG?= =?utf-8?B?dStPREc3bVlhbGZzb250Z2NaRjBrbmVJeXUrV2ZwdTdrRUJ6MmhQcTlLdU90?= =?utf-8?B?RVY3SVIyRXY1MFJDM3BYRVBwNWxrVjVGTExvb2o5ZGxLWko5VEh5b3BUbjhI?= =?utf-8?B?dVIzWEduRW8vbUNma0duWFN5M1hBSmV4eTVaT1FWTmtRQ3lRY3lhK2p1QkRt?= =?utf-8?B?cDI5RU1IRzFwaVd2RWdNVDM5WEFveGlpUUdQcU9UM1RaQXcxYVFoUVdJL203?= =?utf-8?B?VkROK0tOVjBkc1RVRk43NitWaFJ0cWM0ZElrKzRkVXIxWDYwLzFhZ1c3djky?= =?utf-8?B?S0prem9TOU0ycXArWW1LTEtFN1VLWHRob3dzN0prZHVkcUcrc0xDSmZMVm9B?= =?utf-8?B?ckRxU3BLVDM5L253b3B6UG1FVkp6K0FiRXJsSjltcmJ6UHlWM0VubjZocFdH?= =?utf-8?B?elByOEV0c3hsUVdESjhtdWNHUURIQWFJVW1BSDZ5OW1temJhcStTditVUE1l?= =?utf-8?B?VFFENWZnMFdSOFFsVVlRZ3hkSXdlTFhUN3VINnRVQ1pGU1BZRDBtbnJnblBF?= =?utf-8?B?ankrQT09?= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OXh2dkNnVUdaVjNrZGM4V1YwM296YVBiUG5ScXpYcHdJbUlRWFhod3BIVW16?= =?utf-8?B?LzM4d2hJbDcybnlsckMrYldGQW9YSTZTMHBMUlJJRzJPblFFcDZiYlQrd2N6?= =?utf-8?B?eUpxT0lpck5BMHMzRnRZdDhiMHdwTkh1TkFsV1dDWnFrWVhwK2tDVzU5REhQ?= =?utf-8?B?WUpweUlFaTZZczF5dzNPQ1k2YjAwS2hqOTFQYkVhUnEzTkNoU0x5aERFZWc1?= =?utf-8?B?RkpsT0dmY2ozRVN5VjZBNldNanJlR3lEN0dTdVZYY2ZmeXkxRGtEeGtuQnE4?= =?utf-8?B?TEhYOEJKNmlJT0g4WkIvaEJzQTZJUTV6MHlwS3BVeE1hZjhFS2xFaFZEYXVP?= =?utf-8?B?cVIxYUx0NUFzbUZPcDhvREh5UmU4T0Uvb2czSjFIZHBkenhpaVQ2YmpBSnRt?= =?utf-8?B?MzZJdTd3SDNFb2ZpZEZvSWYvNkFHL1BpL2I2akFiK2dDZHIyMkZiMkZ2Z1Rn?= =?utf-8?B?KzRYZnErYlM0TlF0TWQ4MDdTMGlrNXBRTkkyVFBBWEUvMG5uSDdYUXhCUmg2?= =?utf-8?B?dm9TWlc3WkhYSkdaT1JtSzU2L1IrbU9lYTErM2Vwcllod01sMjFyNGJjczEz?= =?utf-8?B?MzlaYnIyMDI3QTh2cTAyN3hUY2pRUHc5RFlVZEgvQjU5V0sydlphd3lET093?= =?utf-8?B?Zi9uVXJXSmNQTHNZN0l4aTZmdjNtVlgvemJQYTJ6b2tGK1VXdG13eWw3bzBY?= =?utf-8?B?TVVsN3Z5V2cwdTNEdnJyRmZKdWxyQnhtcW9BK0R2Y1RrenViN2ZsZDR5ejU4?= =?utf-8?B?T1hyYmlnV3hUaHAveWs4dmJ0NWFnVWZjRnpDRU1ER0MvenFxMXJ2akpDK3I4?= =?utf-8?B?VmhiQjE5MWVXM0U3TW5YVTNaYzk1V3ZVWHRyc2gxeGJPZnkvSS91STVoL1Uy?= =?utf-8?B?cmkzVXZtRG5CUnJOOW55TlhhVmtac3QwREc1cXJBdUF1NWFnVDZhb3BWUWZw?= =?utf-8?B?WDhUZVRUMlQzMzA5NXh3aVhCaXdYNWJYKzJDQUc0QnVtaW45SE01cU5Jam54?= =?utf-8?B?Q3pkVHlidlVWV1hKcE1IT0E0cHBjeUw1cTRPRXBDUkltSnVPbkxUNUlDOXpG?= =?utf-8?B?N2VNMk8wRytQRU1PNSsxSXE4ZU1NcEJnZmtnaUdCT29hM1UxNG9zb3g3T0JW?= =?utf-8?B?YndYNkpHdFlneURUVVU2TEgrSTN2OEVsaW9Ga3dWMG5hVlJaY0Y5T1dhRDM1?= =?utf-8?B?R3BRUytGc0VZbzZQckZMZjIyM3ZEU0FDd09NaGFrQWdQdXdJNzluUDRGWWF1?= =?utf-8?B?TjUzeWVMM2x6dFphNUhBaUdSb0R4anR6L3ZKc2JaRkNyeWF1aTNhSERPbFNo?= =?utf-8?B?VWhOci9GR1YycG9kVmhqVndhZ2xCeXpqNUhNeEV6MWNibkFENjZPT1N4QWgz?= =?utf-8?B?d3E5VWFqb0YrN3RzWEtEaFFCTGloc2xoS0pRSE50cE9nMHcya0Y5Wkk5RDhl?= =?utf-8?B?KzNOeEo0SndKSUV2NUxGVFcxQ29uMjV4R0pHeHNVdHhUeEZaOE5KeGxUZ0JX?= =?utf-8?B?T01TTWpLNXFTcTc1ZzVRVURvemtsSHBJWDNaUDIweGlEVXFLcTEzeTAwQ2VH?= =?utf-8?B?dWV4TGNBK3NXL2M3TnF3amZNMFB1N0daY3RMbzQwSk9xNXErOUlsMzZXZCtq?= =?utf-8?B?eWFIYnhvQnAyd2pGNlVxUzNyZ1VYUmlrT0FPRWVOaUZzaDAyeTA1cVd0ZXI4?= =?utf-8?B?Mk1SSkdPQTVIbXEvRncrSkc5QXYvUGpkdkJyekJTSkFIYnVpWGc5TWc4WGw2?= =?utf-8?B?TTlLNGhQcDlOOUQ3b3pEODU0aWplelMxWE4zdisyeHdJZHU1QXFxUGpaRjhD?= =?utf-8?B?WTh1UThqd0RlN1FnZjRBdz09?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 89fa72d2-ddf7-4cf4-76b7-08ddc23950b9 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jul 2025 18:15:58.2795 (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: AM8P250MB0041 Subject: Re: [FFmpeg-devel] [PATCH v2 12/13] lavc/vp9dec: use cbs_vp9 to parse the frame header 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 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: Lynne: > --- > configure | 2 +- > libavcodec/vp9.c | 40 ++++++++++++++++++++++++++++++++++++++++ > libavcodec/vp9dec.h | 6 ++++++ > libavcodec/vp9shared.h | 4 ++++ > 4 files changed, 51 insertions(+), 1 deletion(-) > > diff --git a/configure b/configure > index eeb81d7aa3..92ee54c7a6 100755 > --- a/configure > +++ b/configure > @@ -3153,7 +3153,7 @@ vp6a_decoder_select="vp6_decoder" > vp6f_decoder_select="vp6_decoder" > vp7_decoder_select="h264pred videodsp vp8dsp" > vp8_decoder_select="h264pred videodsp vp8dsp" > -vp9_decoder_select="videodsp vp9_parser vp9_superframe_split_bsf" > +vp9_decoder_select="videodsp vp9_parser cbs_vp9 vp9_superframe_split_bsf" > vvc_decoder_select="cabac cbs_h266 golomb videodsp vvc_sei" > wcmv_decoder_select="inflate_wrapper" > webp_decoder_select="vp8_decoder exif" > diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c > index 141f0941b4..a385956f4f 100644 > --- a/libavcodec/vp9.c > +++ b/libavcodec/vp9.c > @@ -97,6 +97,7 @@ static void vp9_tile_data_free(VP9TileData *td) > static void vp9_frame_unref(VP9Frame *f) > { > ff_progress_frame_unref(&f->tf); > + av_refstruct_unref(&f->header_ref); > av_refstruct_unref(&f->extradata); > av_refstruct_unref(&f->hwaccel_picture_private); > f->segmentation_map = NULL; > @@ -145,6 +146,9 @@ fail: > > static void vp9_frame_replace(VP9Frame *dst, const VP9Frame *src) > { > + av_refstruct_replace(&dst->header_ref, src->header_ref); > + dst->frame_header = src->frame_header; > + > ff_progress_frame_replace(&dst->tf, &src->tf); > > av_refstruct_replace(&dst->extradata, src->extradata); > @@ -1255,6 +1259,11 @@ static av_cold int vp9_decode_free(AVCodecContext *avctx) > av_freep(&s->entries); > ff_pthread_free(s, vp9_context_offsets); > #endif > + > + av_refstruct_unref(&s->header_ref); > + ff_cbs_fragment_free(&s->current_frag); > + ff_cbs_close(&s->cbc); > + > av_freep(&s->td); > return 0; > } > @@ -1557,11 +1566,27 @@ static int vp9_decode_frame(AVCodecContext *avctx, AVFrame *frame, > int size = pkt->size; > VP9Context *s = avctx->priv_data; > int ret, i, j, ref; > + CodedBitstreamUnit *unit; > + VP9RawFrame *rf; > + > int retain_segmap_ref = s->s.frames[REF_FRAME_SEGMAP].segmentation_map && > (!s->s.h.segmentation.enabled || !s->s.h.segmentation.update_map); > const VP9Frame *src; > AVFrame *f; > > + ret = ff_cbs_read_packet(s->cbc, &s->current_frag, pkt); > + if (ret < 0) { > + ff_cbs_fragment_reset(&s->current_frag); > + av_log(avctx, AV_LOG_ERROR, "Failed to read frame header.\n"); > + return ret; > + } > + > + unit = &s->current_frag.units[0]; > + rf = unit->content; > + > + av_refstruct_replace(&s->header_ref, unit->content_ref); > + s->frame_header = &rf->header; > + > if ((ret = decode_frame_header(avctx, data, size, &ref)) < 0) { > return ret; > } else if (ret == 0) { > @@ -1592,6 +1617,10 @@ static int vp9_decode_frame(AVCodecContext *avctx, AVFrame *frame, > vp9_frame_unref(&s->s.frames[CUR_FRAME]); > if ((ret = vp9_frame_alloc(avctx, &s->s.frames[CUR_FRAME])) < 0) > return ret; > + > + s->s.frames[CUR_FRAME].header_ref = av_refstruct_ref(s->header_ref); > + s->s.frames[CUR_FRAME].frame_header = s->frame_header; > + > f = s->s.frames[CUR_FRAME].tf.f; > if (s->s.h.keyframe) > f->flags |= AV_FRAME_FLAG_KEY; > @@ -1779,6 +1808,9 @@ static void vp9_decode_flush(AVCodecContext *avctx) > for (i = 0; i < 8; i++) > ff_progress_frame_unref(&s->s.refs[i]); > > + ff_cbs_fragment_reset(&s->current_frag); > + ff_cbs_flush(s->cbc); > + > if (FF_HW_HAS_CB(avctx, flush)) > FF_HW_SIMPLE_CALL(avctx, flush); > } > @@ -1791,6 +1823,10 @@ static av_cold int vp9_decode_init(AVCodecContext *avctx) > s->last_bpp = 0; > s->s.h.filter.sharpness = -1; > > + ret = ff_cbs_init(&s->cbc, AV_CODEC_ID_VP9, avctx); > + if (ret < 0) > + return ret; > + > #if HAVE_THREADS > if (avctx->active_thread_type & FF_THREAD_SLICE) { > ret = ff_pthread_init(s, vp9_context_offsets); > @@ -1814,6 +1850,10 @@ static int vp9_decode_update_thread_context(AVCodecContext *dst, const AVCodecCo > av_refstruct_replace(&s->frame_extradata_pool, ssrc->frame_extradata_pool); > s->frame_extradata_pool_size = ssrc->frame_extradata_pool_size; > > + av_refstruct_replace(&s->header_ref, ssrc->header_ref); > + s->frame_header = ssrc->frame_header; > + memcpy(s->cbc->priv_data, ssrc->cbc->priv_data, sizeof(CodedBitstreamVP9Context)); > + > s->s.h.invisible = ssrc->s.h.invisible; > s->s.h.keyframe = ssrc->s.h.keyframe; > s->s.h.intraonly = ssrc->s.h.intraonly; > diff --git a/libavcodec/vp9dec.h b/libavcodec/vp9dec.h > index e41f47a82a..c3ad2bbcdb 100644 > --- a/libavcodec/vp9dec.h > +++ b/libavcodec/vp9dec.h > @@ -38,6 +38,7 @@ > #include "vp9dsp.h" > #include "vp9shared.h" > #include "vpx_rac.h" > +#include "cbs_vp9.h" > > #define REF_INVALID_SCALE 0xFFFF > > @@ -97,6 +98,11 @@ typedef struct VP9Context { > VP9SharedContext s; > VP9TileData *td; > > + CodedBitstreamContext *cbc; > + CodedBitstreamFragment current_frag; > + VP9RawFrame *header_ref; ///< RefStruct reference backing frame_header > + VP9RawFrameHeader *frame_header; > + > VP9DSPContext dsp; > VideoDSPContext vdsp; > GetBitContext gb; > diff --git a/libavcodec/vp9shared.h b/libavcodec/vp9shared.h > index 8a450c26a6..d2226e0072 100644 > --- a/libavcodec/vp9shared.h > +++ b/libavcodec/vp9shared.h > @@ -30,6 +30,7 @@ > #include "libavutil/mem_internal.h" > > #include "progressframe.h" > +#include "cbs_vp9.h" > #include "vp9.h" > > enum BlockPartition { > @@ -63,6 +64,9 @@ typedef struct VP9mvrefPair { > } VP9mvrefPair; > > typedef struct VP9Frame { > + VP9RawFrame *header_ref; ///< RefStruct reference backing frame_header > + VP9RawFrameHeader *frame_header; > + > ProgressFrame tf; > void *extradata; ///< RefStruct reference > uint8_t *segmentation_map; My expectation for a patch that uses CBS to parse the frame header is that the other header parsing code would be removed in said patch. Why is this not true here? What is the benefit of this patch then? - Andreas _______________________________________________ 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".