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 E56BB448E1 for ; Tue, 27 Sep 2022 02:44:58 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 98A8968B9FC; Tue, 27 Sep 2022 05:44:56 +0300 (EEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1A14868B462 for ; Tue, 27 Sep 2022 05:44:48 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1664246694; x=1695782694; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=SZWsoNf/deqvpyQ4DQvaBhNaATJqh+sei+UIeeSz93o=; b=L21xoP9LNNoPT9Y4Vaw98hJ5C674zZaoDULKoR7pVXi5kL1oSvWEx7Kk GIW5EoPxtev27wSAeCN+wDf0oBn2yEMfGp1+zi6GepnVQcmbtxoOfzv1c 2rAlE8gOqcsZ0FeyS/asdnbPcE/Et5lPd/Mdt7KHKYESPk9/lJ4u/vjNA pOeDD8i9QkEJM15dK2rFb6h0hvigXmaWYmZ6+kDhn6uL+SU0VYmNN/sJX E4iYOxaJHsYO3LY3LZoDi29Ah0TgoQfCCEMkoWN3borr532X8//J7ZaEs SXXRIxn7Lx3n1N0iIhY/+lXgy309o7MUxHRMzLVu+vC6arqWj3gkgY0O7 Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10482"; a="299918629" X-IronPort-AV: E=Sophos;i="5.93,348,1654585200"; d="scan'208";a="299918629" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Sep 2022 19:44:44 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10482"; a="689818222" X-IronPort-AV: E=Sophos;i="5.93,348,1654585200"; d="scan'208";a="689818222" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga004.fm.intel.com with ESMTP; 26 Sep 2022 19:44:44 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) 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; Mon, 26 Sep 2022 19:44:44 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Mon, 26 Sep 2022 19:44:43 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Mon, 26 Sep 2022 19:44:43 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.41) 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; Mon, 26 Sep 2022 19:44:42 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=efGWZy61+hKRNbwf5SxiZvsvglw2CQv9ociRagZn34pAcAxbKecW9u7QYEx+iNo3UsBPRuewKIOtTPrs/QO4OP3+7Vx8dhPC4s7Znrqf1/rS04fX3sPaplAgWWh5IgpJMjGD7YgtAUME+UcqYfLS23aFU2AspnuvJ48SY7MCL5r09wAh7D0s+bWD/KueraAD79F/MKVTeAZBCYrU6ce67rtmkfcyPIzLwjLDJMT21xJWs6BphofN7PLNPWLEEQbxLEQNSC/i4pI/C/s5YvToEsQZRIk34HS0zs4iUCyUdIzc8o3ufAs9YajuKAGe22FjJXRNedWmNkjQxjZ4b4UyPg== 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=4I85CKKZjF3CjM9pqYoNQ0Et9Q+LZim4Q2H9ekgp1MU=; b=BRxtWNck96QYUZuVHIWg3TbpXkjSvaq/Pm9lXt2jDz3paooRD83suD8jiefLA59J/5jo++Xv3ffeN3StdZrzbwleVMgMs06MyPMZaYIeUSEmV/Pvkt5Nvb38ZkOYBQcPxnrV7Tt5gGi5z++PXHre9eG48zA71OfyYXOkNy8Z2I3AbTQBFRJvIPn12GF4/TKVvNAxBRIAP8PKdQ9P+PC02oemjZPW87hg1hT4FnjhB30s8oSqruLPWTdotq1gFbLPckqAoJYCRo4AYhXbPm7sEiLKTT/APOr+LfNT6ZAbbOywhTInpoOZeR/F+YuCePoOObGmPFZ3F3XnI+oKlZr4Ig== 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 IA1PR11MB6396.namprd11.prod.outlook.com (2603:10b6:208:3ab::10) by SJ0PR11MB6792.namprd11.prod.outlook.com (2603:10b6:a03:485::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.25; Tue, 27 Sep 2022 02:44:36 +0000 Received: from IA1PR11MB6396.namprd11.prod.outlook.com ([fe80::e4be:d3c5:44a9:4e02]) by IA1PR11MB6396.namprd11.prod.outlook.com ([fe80::e4be:d3c5:44a9:4e02%5]) with mapi id 15.20.5654.025; Tue, 27 Sep 2022 02:44:36 +0000 From: "Chen, Wenbin" To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH] lavc/cbs_av1: restore CodedBitstreamAV1Context when AVERROR(ENOSPC) Thread-Index: AQHY0XlRwGOH1xFboUeAmxAGr/XEBa3yko2w Date: Tue, 27 Sep 2022 02:44:35 +0000 Message-ID: References: <20220926072315.26559-1-haihao.xiang@intel.com> In-Reply-To: <20220926072315.26559-1-haihao.xiang@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.6.500.17 dlp-reaction: no-action 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: IA1PR11MB6396:EE_|SJ0PR11MB6792:EE_ x-ms-office365-filtering-correlation-id: ef956572-2c83-42b3-c52c-08daa032371b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: wzv50QKc3qwCDdn5pNDzpMPNB6AotTCz4XJ4757+yMVB+Li37kp+kIPYDucUBHvRXqToT+DICO0nrrwPaUPKiBwVKl/KFeE8Y/UAjml5C33cswRG5AFIVreXD2Jaw3c+Nf4AuHEr57HBW8rHOvES+8x8aAWbQounXri2D2cw2VmNCxg8KoS1ohUErgg9cYwpWm81XhNPKYDN/JRWhTvIY728ZU56wvZQDOcUdRt4so9J/KTh2GrSbTpfY5eSUgfAHS3xy5Qy083wiT58nt9gdu4GyslnMJ16aQRqbp969bo8DHF3KZgrmWREin2Lkt+zMqqj4uyVdp48FjWffZBunXANFFjYNT4U74eNsJNxCc2fugPss8eWUsHIyZoq6NeB+VBcolu/e+u+Ibx/kEQS4bWcsrQpl1Reat11KBkYhCYFSmMSVi6L72LLYRHegfOYEo7HBwHl2zsgRd0ajr/Aqg2L8sQcxHw5iOdOwt9hLCxUXn9YYw0Slihb7ucRp0bssP0DldBjFook0JLg26xk7MnqRvNGdEG7fov7lYeG2Ujzsq+aB59pG6C1GtKzOrYGM48Vp38CTgdGMcjI0Xf5R0AOfxdiueXddDbqArpTaRGjvAb2dwQP5vQKVFja0dr7yZdu6ktXPrnJYE1jOx6USbQUrH2CYVjK0SZ6UHQHCWKmXp4oF5uFDB6JhVKwQ7+AjG5A8LHndIFoH/gTRVapvboa2Nj3N8VHM2D2Nm26cUOA2Opz0An7DYpeVAYW8Nh+V0mgNUdEy4JEjLcjl8NCZrI4VByTcXX0I8MX4UiVjTwhOPLVPuLOjdW+VQRqoxI99Je+uTqdEkMoNH9iHiEGITv2/yuBRz8C2/o5VqfHB+U= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:IA1PR11MB6396.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(346002)(39860400002)(376002)(396003)(366004)(136003)(451199015)(33656002)(55016003)(26005)(71200400001)(83380400001)(41300700001)(7696005)(9686003)(186003)(38070700005)(52536014)(8936002)(5660300002)(86362001)(2906002)(19627235002)(38100700002)(66476007)(66556008)(64756008)(66446008)(316002)(122000001)(8676002)(966005)(6916009)(6506007)(478600001)(82960400001)(66946007)(76116006)(473944003)(414714003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?oTS8yeti4rfcKrf7Uhu8dVZpMHJrAwveSYeAXUrujOkKp2x0+hhdoZeQokzG?= =?us-ascii?Q?1jVi0IVDQ1juufdnKNQhFa9f5BdxGRrWyB99y2V48VA8QcsEIkopt91xnwhy?= =?us-ascii?Q?wtxWhzNqlFbMOw+W4rCCAhulbXLU11KU53ZsNRQka+seQWm/3OEHr+zlFULV?= =?us-ascii?Q?BDuHrwICY0F2fBRegPuC9yN1dyjN+uoURYmuWhKlLDO7v2X3BKToMFYe7x/R?= =?us-ascii?Q?tCv6KSwdW1KbRWGJATK/+Ag9/+gZS2tbIhsrjLs1OW0b/RlQMIep94GPu5eg?= =?us-ascii?Q?jdlj2zS8GejytSBzRSpbgeT5adJciRPbu4AxjQlnD11Ajy21+QlNT/qVKaH2?= =?us-ascii?Q?vhLy4cPyYX9CRLF1GiKkFuX6yUWFCi1Ed2VsBq6ElI8aPihIJnund9LAROKZ?= =?us-ascii?Q?jowlxrn6UBOc/Fky34rZfLZawaa2QtajxmOJsCjm7yWpEz8CHrGCpwvZZThC?= =?us-ascii?Q?qlt8iHcx3IJcM8um0V0KY2U9HTUZLo8yHnEv7fjM548Car+ejKm7LvNAGUeN?= =?us-ascii?Q?K07b0SQLWw4nLK9zyrCKqsWjQC6C96sjheTSTz76C57CTBWtZ0WP3eNoCALf?= =?us-ascii?Q?t4Hcb4y6LWOi9PHbPSuKBW5bvNRPdLoeFXBWWOn4wqVgxl3s968hef7oXqcj?= =?us-ascii?Q?aTIbPox03aZkCYgr1pqx5LkNNcSNKFZ9ixtuNvXOeuwR2BR9lM1gtxDv3e+O?= =?us-ascii?Q?AlHYJd6EqG3ihy6gr6ZExwpUSO+a/YuOX7aZ5J8ojCGHOdO8JogIFfcPUJOc?= =?us-ascii?Q?Co9qHOCsDbR6IfqKgKT5hFPHfYGg3PIh1p8zLndPctQuUR52gEgb85/W3z1g?= =?us-ascii?Q?UyJjdyI/31RWQ9KwEzQmFhcpkP67JjbgBv+nUy3ILgsMD40wc7xpfU0q6L1c?= =?us-ascii?Q?01NxYplFZ9QWcLdQp7LhJzAYA8iHS0BT69e5D4zkBvfS+AegK038egNLEYV9?= =?us-ascii?Q?dR8IrkWlNzXt4dsNP2BcYiYZ8k4ildti1wpym/QLgLdBeRra6r1khgCWYmgG?= =?us-ascii?Q?aaEHbV0mz+4q6ZiUv6bU3srILAyvpGV6AeJYFMdwdw3xxdep5ZgprVsWWOFF?= =?us-ascii?Q?IOmuYPucB7EjKS9AZr4oBLlpfkY1n5q7alWXONk4+vMR22T5wXd+WZxkupxa?= =?us-ascii?Q?2Mdi13Pd6N7hBEvv/AjrhnyXTj6fuef5q1Q1zDCbqUDliDXNslUh5wi1YSUB?= =?us-ascii?Q?DAElYD/1ySn8iXeI6M1Vxe3UW4DMdNTVsKcsG2s/Ml0nJ6pwFtkEWS+Fr6u1?= =?us-ascii?Q?2xv3Eoi99xHpcrrdXAC6cukLL8nhMl1RBSzS6NcxZcvfhKhdEGka7RToMUYl?= =?us-ascii?Q?ogYOoGgYCCMVgR7VYnXXTDXC6LeerRhuouLoqyKlmoATc4pRl8ShWeoC+aWw?= =?us-ascii?Q?ILdg0acbvPqX2cpArO7FCh0jYPStPSnI+5pve3LLdBGK8mildhNHt1qt4L7x?= =?us-ascii?Q?COzC1J7JbSo7U3QWSt1mZCDsQOjmCYkJ6afis08bmHA0ht1PNGvNb0soD7KF?= =?us-ascii?Q?ogVyJpL5cQT++TpEyTDJoYEIabJwffwCPPDJJwR5j4N/BdkueQ4Idm2u0OOv?= =?us-ascii?Q?CbNavHloHCsUd+nuOG6CaOsipGT4qmhRbfeB34iQ?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: IA1PR11MB6396.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ef956572-2c83-42b3-c52c-08daa032371b X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Sep 2022 02:44:35.9409 (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: ms3EX4P1BMm/sqgAwaE3FInbWvfjqmIRQRQ48z9fTFZpmHkY6xh2HxVUJ4MJ2evObWn8j5zoHzSeF6QhtxbJpg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB6792 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH] 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: > 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 | 85 ++++++++++++++++++++++++++++++++++---------- > 1 file changed, 67 insertions(+), 18 deletions(-) > > diff --git a/libavcodec/cbs_av1.c b/libavcodec/cbs_av1.c > index 154d9156cf..585bc72cdb 100644 > --- a/libavcodec/cbs_av1.c > +++ b/libavcodec/cbs_av1.c > @@ -1058,15 +1058,33 @@ 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) { > + err = AVERROR(ENOMEM); > + goto error; > + } > + } > + > + 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 +1102,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 +1124,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 +1136,7 @@ static int > cbs_av1_write_obu(CodedBitstreamContext *ctx, > AV1_OBU_REDUNDANT_FRAME_HEADER, > NULL); > if (err < 0) > - return err; > + goto error; > } > break; > case AV1_OBU_TILE_GROUP: > @@ -1123,7 +1144,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 +1153,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 +1162,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 +1171,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 +1194,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 +1212,36 @@ 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)) > - return AVERROR(ENOSPC); > + 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; > + > + if (av1ctx.sequence_header_ref) { > + priv->sequence_header_ref = > av_buffer_ref(av1ctx.sequence_header_ref); > + if (!priv->sequence_header_ref) { > + err = AVERROR(ENOMEM); > + goto error; > + } > + } > + > + if (av1ctx.frame_header_ref) { > + priv->frame_header_ref = av_buffer_ref(av1ctx.frame_header_ref); > + if (!priv->frame_header_ref) { > + err = AVERROR(ENOMEM); > + goto error; > + } > + } > + > + err = AVERROR(ENOSPC); > + goto error; > + } > > if (obu->obu_size > 0) { > memmove(pbc->buf + data_pos, > @@ -1213,8 +1257,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, > -- > 2.17.1 This patch also fixes my issue. Thanks. LGTM > > _______________________________________________ > 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". _______________________________________________ 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".