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 A99E64429C for ; Wed, 5 Oct 2022 04:59:28 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BA78068BCA6; Wed, 5 Oct 2022 07:59:25 +0300 (EEST) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5395F68BC08 for ; Wed, 5 Oct 2022 07:59:18 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1664945963; x=1696481963; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=w/7KqKaYOoJsouPrsXdTNbKQgoMjyuhVbLGZSst07ds=; b=RRlGU8cVL/oAJBCg9KFxdE7uzlL++A83pOF1I0LTjV0/+sqJz947dwLQ LQxzVmuH99gBVlevDJkgJ4e50yzjxoNQtOcjQO1A48J3CP2XCMN6u6g0f Rd1f/lkTQSizwPxLrGKYAPbp8ymTxezZzEMALqiG6yT5e6A7w8GtDv/7s p62yXpzME4f0fmHACcMqYg1dPGa9kxWoAjx5pztN9Ustiuw9Cys2F5T6a f4XtqbzctneQtZyVdE/e9fHMP2ETHblVGkQNfBAO46pJPKAaUG18tatS0 dM9S3SiibmHHYHM1N4sOd3oxMUcqH3BPGPJJ2BYdamA55z+xJ5DNmS0ZM g==; X-IronPort-AV: E=McAfee;i="6500,9779,10490"; a="286299570" X-IronPort-AV: E=Sophos;i="5.95,159,1661842800"; d="scan'208";a="286299570" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Oct 2022 21:59:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10490"; a="692776203" X-IronPort-AV: E=Sophos;i="5.95,159,1661842800"; d="scan'208";a="692776203" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga004.fm.intel.com with ESMTP; 04 Oct 2022 21:59:15 -0700 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 4 Oct 2022 21:59:15 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Tue, 4 Oct 2022 21:59:15 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.168) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Tue, 4 Oct 2022 21:59:14 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T9prZ5E3WYMrGksmMgxXFnDgFhgkIwJgU0thEzmluDQqVAVrEI2wOzpisV6v6E01bOgowhJj+cJdVtDJJXiIbJ3kTo8crqk4zCdGzW3e4P77VanLaAv+PVUknkL6NgGpUmhGMpqsBgyFZYkRuOm+YXqIVI4VQ7sbBnOHHDhBqgumYauhrh9l6tBV6uKtBkf0tj5YVWFaCIR7uB1W1eNOkoU70GghebSpfkITz3b067G9qTKUwB98wdsdhgJ5tbv6O/7+WPkhp0vt2ItTLmFxPCQU22tcfvmjJxEHI1IAyrFzTH732opTx+AQizsxvBwkw0YsLCHRijzJPGHxTleUeA== 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=w/7KqKaYOoJsouPrsXdTNbKQgoMjyuhVbLGZSst07ds=; b=DOgqDtNMYSVMG/QoCKTtrmdZ0rnBm39eD5hcZSEdY8keCQ3IiovcqRKClp0zACCFTTdNz23r+ZYjPT+eac4NHgTEi2wz1z2gObT1mscK7hK4edHFUwY7JHypOnJB/uFLOfiv3l4k7EEl4KW6I32ARrewjtLjm4agZcTmdHXmncZGjhf5sp1ObBqBGoraPKHrg5/Q9akOjbsQOZDZHLFAP3KbokfnYUvCKp94yvy/TbucVfUiyusawCHewdBSFKSazJ9dj8ftpe8z3NIw8QwG/MBsBLgaLOdX3FGWtlnFL7e/onxGfWk8aG70KceOLqInFXBZ5rbs/6enzoltrygy/A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BN9PR11MB5515.namprd11.prod.outlook.com (2603:10b6:408:104::8) by PH7PR11MB6724.namprd11.prod.outlook.com (2603:10b6:510:1b4::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.28; Wed, 5 Oct 2022 04:59:12 +0000 Received: from BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::3804:a5ab:68a9:9304]) by BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::3804:a5ab:68a9:9304%6]) with mapi id 15.20.5676.032; Wed, 5 Oct 2022 04:59:11 +0000 From: "Xiang, Haihao" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel][PATCH v2] lavc/cbs_av1: restore CodedBitstreamAV1Context when AVERROR(ENOSPC) Thread-Index: AQHY0tt8mWJv2mWmBkebOuKGvFJbmK3/SK6A Date: Wed, 5 Oct 2022 04:59:11 +0000 Message-ID: <883056566b8eab674635fd80aac019ff8ed8b1d9.camel@intel.com> References: <20220928013932.204723-1-haihao.xiang@intel.com> In-Reply-To: <20220928013932.204723-1-haihao.xiang@intel.com> Accept-Language: en-AS, zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.36.5-0ubuntu1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BN9PR11MB5515:EE_|PH7PR11MB6724:EE_ x-ms-office365-filtering-correlation-id: 27d278f0-d1dc-4bce-a68c-08daa68e57f8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Aj6Rqw7OUH8mtigS6pXpyd1yWaP4+eqd0mBwwr0dF43UuByb8oKRgqdiofyTz+ucchhuDNOldzaOWgGrTlWiYdz3NnEb8/tMsN9V4kFeLiz03kpkPPxvXgHPMJln/DlBlP+GkMAL66XaW6npAM8/EjrYm+yE9KWisANH0xEpq5+47sL4OBDHwiBOSaq8zmUwtD4PM4+Mwn2oEnZG09TeVFjLQ7kwUCCvnJCRUjD5/FPkmeTEj4fpiH4u/TxPxKcpNsVI1r3anGJ1EneV9gy4UVQlpkr+8qBuFjyVhn2BrnTlwPBVMnBBWecx3RArI9YRTPHJFe8a7eovCNhWJl7cXyaVJsW3/sXrdX6uWfU6VyvS5WwHvnA46sfLcRK41n7Z++5cX8P2j4GmXoPwBuQTvp2GTlDPOpRC+ttNdwcJPCZe4vxmctEGEAvrOG54s4CwzNU1gPkIl7N0Q8j2KYDUgEhXfE27WraxE8NQmNiW70qxXFyeAnf/K3qCZCnHwDQXBwis3RVl2jXafFFcMQgRlQfs5Eez814aYEfJe8bNs/NFO5YBf7CdOd1dhxiTlmz61gpGRaJL0Pq0YLJAvXGc/dnbHQENojKwOtX5PKnpugtPog5/bHvcyjVQCK6yHo5NgkV9iZ2uKLC0BNhQofZrZREj+WSeB97nzJ/+wTDUWtknLyXxE17gep/vjpUSsV1GqKh3K+eTTVakam3//FIbp3wBZ1X48CCY8SY5lMPvyNpFAtNMWGDi5RlwVExH9xAAPnNVNvVdteOnKx3w5wjo2bo5FrGLXQyhU2l+qPuVkDHgoP8Ic2FQobwhXvH8YPaI x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN9PR11MB5515.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(396003)(136003)(346002)(376002)(366004)(39860400002)(451199015)(36756003)(71200400001)(82960400001)(38100700002)(86362001)(122000001)(38070700005)(83380400001)(66446008)(2616005)(19627235002)(8936002)(2906002)(6512007)(6506007)(5660300002)(26005)(41300700001)(186003)(91956017)(66476007)(66556008)(76116006)(8676002)(6486002)(66946007)(6916009)(64756008)(478600001)(316002)(414714003)(473944003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eWpkWGNveE05NTY1YlZLRENsTWlVVHNCV2E3Q2F3dUdlNU9EeGIrUzJSSnJ1?= =?utf-8?B?NURlaHdoUFNMVnZ6Z1Y0a1hlK0t1Z1pLRnpxTi9hU0hQb2dwaklkQnJtUHhq?= =?utf-8?B?UVZMTUpYOWxwU1hPUnFxajdSbFZJckE0VUtneVNBRnNGSnBFY016V3Q2d1cr?= =?utf-8?B?Umx4Qlh0ZWZiWktZUUZ5alBpci8wQllwUElaVkVrZGczcjVYSU43NjVEaWdE?= =?utf-8?B?U0tsK2VDRStRREZvdTBTZ1hvRkZXay91Q1VLUDcreXRkYmg5UFg1ZUpHaHE3?= =?utf-8?B?dWovVTNqRG5rbUlQckxlVE4rVnJwdWVpNGJFQSs0dm4xWEd3SExJblFGcThp?= =?utf-8?B?enhaRWs3cmI0ZEVrV2tKUVpnUTdGaWVkWXhCVWh0TWZoV3N2ZkJ4MnZtV1Fu?= =?utf-8?B?elppb3hJckZTbEJIb3NsUGZsZi91eGYzcDNVdGVPTk02NElBWTBPUFRvcERL?= =?utf-8?B?bVRzMEFEYytQYnpHZVVTZUpobVVDb1dQOHc3ZUNudnd6MHFoa1hpWjZEcHYy?= =?utf-8?B?bW1VL3RUQ2lKVVVrcnllZ0tjdFhDcGx1c1RrTTg1ZG8rUWdjUmZTVVN4ODJN?= =?utf-8?B?YkREdTZWR2FsMk1YUXp0V1VBc1NETHg5VTRGY0xmbDljMTl0cG5GUHZZRjcy?= =?utf-8?B?OFFQK2RFaXBDU3djaER1Q1JhQ0hZeUt5T0REQjk0RXJRWDI5ZEhhTm5Fc1F2?= =?utf-8?B?RERZWUxpT3ZzclRBTENyNFp4ZUVvZVVHNmhzS0RydVhpZXMwcHgvYnppMlZG?= =?utf-8?B?MEZyWm82KzJDL0dXK2pCUGJuYzZBSjVyb1E1ZDhYeDNlR0J0UHN4MVJEWHJ4?= =?utf-8?B?bzlJWmdVR1Z5NmJxU1UxTkNkUTBpd1ZtN3hKSkp3VlFBLzIxNVV3VGNFelo3?= =?utf-8?B?VXIxY2ppL3A4aG5CZlJBVHJhb2w3R2hrdFR2MXdqdXl0MHk2L1dlYTllWHVp?= =?utf-8?B?RVVXM2tReUlDR2NSY3dLMFFLQlhpRFhsWW9zUWVkSDkwejRvOWtMTlNkQ1BG?= =?utf-8?B?aUZPcUYwSlZ5NFNqazkxdk9LZjdERkJITkhaQ1JLOEdTUU81bngzS0Z2M042?= =?utf-8?B?eU5pTkxGVXByOTF4OXN1K2QxV2EyY1hGZXNPU1c1L3J5TG5yZE1LdkwyZHNw?= =?utf-8?B?bzZpOGkxWU5kMVdGT1lJaUlYalR2K2RZeEMyYndZNEdsd09YanNnRTY1dTdY?= =?utf-8?B?MkFHcGxmS1IrOVd4ZlA3S1ozbzNCNWdmbWNPcTd5ZnVybE5WTThoVG51K1pM?= =?utf-8?B?ZFZJRm9saTZ6RGdUVFFaRGRNb3FTR1dodk5JQzJXeU02QU9CdlZ3Y3JvSCs3?= =?utf-8?B?b0dsajJLZjM4emxrTWdGYjNTUFdRUitiMDNmOWszOTRqSFZlR2xyVTVRMzRn?= =?utf-8?B?VjJSYUwvRWg4alBEeUdQOWJNNFJIbHcvcURjajFZUFk4SlovdFlwcDErbXlx?= =?utf-8?B?dXlSbStScFZ1RWZIMzV2eXQyUWNGSlJ4VGt1elFzRGJlY2V5TnpPcnZoSmtE?= =?utf-8?B?Q2pJZmJJUTNERHYydXpaeHkzeUYxRFhpcTZ4cmxsV1FNaWZrcHNxZjcyQTNv?= =?utf-8?B?ckh2T2wvM0J1cDIzNk1WbGZHYUdzVlJCeFJ5OGMrS2g4Z3dxQXJndXF3TmY5?= =?utf-8?B?MGdjMGtyem9waVJIbUNQZWxMKzBTbnpUR1QrdnNIL2Y1NVdjUDNIL3VzeUtX?= =?utf-8?B?OUg2SzhGb0EyUG1GYk0yVDlKWEE0aWxXekdTNmNrQzBtYmlBd3cyVFB6L0FK?= =?utf-8?B?M0hoTUppMUIxSzZuYWw2MGJ0SWZYamJNdVRHTFc3TVNQMlRZUDFDSDZvNjVs?= =?utf-8?B?K3prbXB4M1hITkc1WGZ0V3ZJNnJwVkU4cVFHRTV3Tm1KeitJZzdqSlB0SWg1?= =?utf-8?B?QzZ2ZDhIb2VHeC9BSU5wQTQxVHpPc2Z0aDIxU0FDTUJXN3pTL016NzFRZTlQ?= =?utf-8?B?dkdNdEtWSG1NTUNwV2NOQ1RYR0Z5cWM0NWFYSDBjbEpXalBKWmN4K3ZZUlJN?= =?utf-8?B?Wm0wRit1UUNJK1F4akZ4OWpkQkZreUprK0lHS1F5cFlTbHYwNUJiOUNublZo?= =?utf-8?B?V1MzNmxESHRIaHR0RVcwUWp0aG02WDNhSTVod3hqNHNFcElVY3E4SFN2RnBr?= =?utf-8?B?WGFQRy8wZ2pWam8vc0pGbTZOdUpxQ280NUxHRHFuU0RlcnA0V3dGdmxpWHh1?= =?utf-8?B?UVE9PQ==?= Content-ID: <41E9F7DEA15AE64FA5B09383DC1E50B0@namprd11.prod.outlook.com> MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5515.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 27d278f0-d1dc-4bce-a68c-08daa68e57f8 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Oct 2022 04:59:11.7358 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: pzuQonMidD3C0J5seL6DebewlJ++IAheodD3Me9t9bFZQa4y81qCp72t7dnm6GPch+gdvotTlBIKxHMXNIGikQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB6724 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH v2] lavc/cbs_av1: restore CodedBitstreamAV1Context when AVERROR(ENOSPC) 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: On Wed, 2022-09-28 at 09:39 +0800, Xiang, Haihao wrote: > From: Haihao Xiang > > The current pbc might be small for an obu frame, so a new pbc is > required then parse this obu frame again. Because > CodedBitstreamAV1Context has already been updated for this obu frame, we > need to restore CodedBitstreamAV1Context, otherwise > CodedBitstreamAV1Context doesn't match this obu frame when parsing obu > frame again, e.g. CodedBitstreamAV1Context.order_hint. > > $ ffmpeg -i input.ivf -c:v copy -f null - > [...] > [av1_frame_merge @ 0x558bc3d6f880] ref_order_hint[i] does not match > inferred value: 20, but should be 22. > [av1_frame_merge @ 0x558bc3d6f880] Failed to write unit 1 (type 6). > [av1_frame_merge @ 0x558bc3d6f880] Failed to write packet. > [obu @ 0x558bc3d6e040] av1_frame_merge filter failed to send output > packet > --- > libavcodec/cbs_av1.c | 64 ++++++++++++++++++++++++++++++++------------ > 1 file changed, 47 insertions(+), 17 deletions(-) > > diff --git a/libavcodec/cbs_av1.c b/libavcodec/cbs_av1.c > index 154d9156cf..45e1288a51 100644 > --- a/libavcodec/cbs_av1.c > +++ b/libavcodec/cbs_av1.c > @@ -1058,15 +1058,31 @@ static int cbs_av1_write_obu(CodedBitstreamContext > *ctx, > AV1RawTileData *td; > size_t header_size; > int err, start_pos, end_pos, data_pos; > + CodedBitstreamAV1Context av1ctx; > > // OBUs in the normal bitstream format must contain a size field > // in every OBU (in annex B it is optional, but we don't support > // writing that). > obu->header.obu_has_size_field = 1; > + av1ctx = *priv; > + > + if (priv->sequence_header_ref) { > + av1ctx.sequence_header_ref = av_buffer_ref(priv- > >sequence_header_ref); > + if (!av1ctx.sequence_header_ref) > + return AVERROR(ENOMEM); > + } > + > + if (priv->frame_header_ref) { > + av1ctx.frame_header_ref = av_buffer_ref(priv->frame_header_ref); > + if (!av1ctx.frame_header_ref) { > + err = AVERROR(ENOMEM); > + goto error; > + } > + } > > err = cbs_av1_write_obu_header(ctx, pbc, &obu->header); > if (err < 0) > - return err; > + goto error; > > if (obu->header.obu_has_size_field) { > pbc_tmp = *pbc; > @@ -1084,18 +1100,21 @@ static int cbs_av1_write_obu(CodedBitstreamContext > *ctx, > err = cbs_av1_write_sequence_header_obu(ctx, pbc, > &obu- > >obu.sequence_header); > if (err < 0) > - return err; > + goto error; > > av_buffer_unref(&priv->sequence_header_ref); > priv->sequence_header = NULL; > > err = ff_cbs_make_unit_refcounted(ctx, unit); > if (err < 0) > - return err; > + goto error; > > priv->sequence_header_ref = av_buffer_ref(unit->content_ref); > - if (!priv->sequence_header_ref) > - return AVERROR(ENOMEM); > + if (!priv->sequence_header_ref) { > + err = AVERROR(ENOMEM); > + goto error; > + } > + > priv->sequence_header = &obu->obu.sequence_header; > } > break; > @@ -1103,7 +1122,7 @@ static int cbs_av1_write_obu(CodedBitstreamContext *ctx, > { > err = cbs_av1_write_temporal_delimiter_obu(ctx, pbc); > if (err < 0) > - return err; > + goto error; > } > break; > case AV1_OBU_FRAME_HEADER: > @@ -1115,7 +1134,7 @@ static int cbs_av1_write_obu(CodedBitstreamContext *ctx, > AV1_OBU_REDUNDANT_FRAME_HEAD > ER, > NULL); > if (err < 0) > - return err; > + goto error; > } > break; > case AV1_OBU_TILE_GROUP: > @@ -1123,7 +1142,7 @@ static int cbs_av1_write_obu(CodedBitstreamContext *ctx, > err = cbs_av1_write_tile_group_obu(ctx, pbc, > &obu->obu.tile_group); > if (err < 0) > - return err; > + goto error; > > td = &obu->obu.tile_group.tile_data; > } > @@ -1132,7 +1151,7 @@ static int cbs_av1_write_obu(CodedBitstreamContext *ctx, > { > err = cbs_av1_write_frame_obu(ctx, pbc, &obu->obu.frame, NULL); > if (err < 0) > - return err; > + goto error; > > td = &obu->obu.frame.tile_group.tile_data; > } > @@ -1141,7 +1160,7 @@ static int cbs_av1_write_obu(CodedBitstreamContext *ctx, > { > err = cbs_av1_write_tile_list_obu(ctx, pbc, &obu->obu.tile_list); > if (err < 0) > - return err; > + goto error; > > td = &obu->obu.tile_list.tile_data; > } > @@ -1150,18 +1169,19 @@ static int cbs_av1_write_obu(CodedBitstreamContext > *ctx, > { > err = cbs_av1_write_metadata_obu(ctx, pbc, &obu->obu.metadata); > if (err < 0) > - return err; > + goto error; > } > break; > case AV1_OBU_PADDING: > { > err = cbs_av1_write_padding_obu(ctx, pbc, &obu->obu.padding); > if (err < 0) > - return err; > + goto error; > } > break; > default: > - return AVERROR(ENOSYS); > + err = AVERROR(ENOSYS); > + goto error; > } > > end_pos = put_bits_count(pbc); > @@ -1172,7 +1192,7 @@ static int cbs_av1_write_obu(CodedBitstreamContext *ctx, > // Add trailing bits and recalculate. > err = cbs_av1_write_trailing_bits(ctx, pbc, 8 - end_pos % 8); > if (err < 0) > - return err; > + goto error; > end_pos = put_bits_count(pbc); > obu->obu_size = header_size = (end_pos - start_pos + 7) / 8; > } else { > @@ -1190,14 +1210,19 @@ static int cbs_av1_write_obu(CodedBitstreamContext > *ctx, > *pbc = pbc_tmp; > err = cbs_av1_write_leb128(ctx, pbc, "obu_size", obu->obu_size); > if (err < 0) > - return err; > + goto error; > > data_pos = put_bits_count(pbc) / 8; > flush_put_bits(pbc); > av_assert0(data_pos <= start_pos); > > - if (8 * obu->obu_size > put_bits_left(pbc)) > + if (8 * obu->obu_size > put_bits_left(pbc)) { > + av_buffer_unref(&priv->sequence_header_ref); > + av_buffer_unref(&priv->frame_header_ref); > + *priv = av1ctx; > + > return AVERROR(ENOSPC); > + } > > if (obu->obu_size > 0) { > memmove(pbc->buf + data_pos, > @@ -1213,8 +1238,13 @@ static int cbs_av1_write_obu(CodedBitstreamContext > *ctx, > > // OBU data must be byte-aligned. > av_assert0(put_bits_count(pbc) % 8 == 0); > + err = 0; > > - return 0; > +error: > + av_buffer_unref(&av1ctx.sequence_header_ref); > + av_buffer_unref(&av1ctx.frame_header_ref); > + > + return err; > } > > static int cbs_av1_assemble_fragment(CodedBitstreamContext *ctx, Is there any comment for v2 ? I'll push this in a few days if no comments. Thanks Haihao _______________________________________________ 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".