From patchwork Fri Feb 4 15:16:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 34121 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2c4e:0:0:0:0 with SMTP id x14csp3493340iov; Fri, 4 Feb 2022 07:17:28 -0800 (PST) X-Google-Smtp-Source: ABdhPJyo0J0Ou9VYJ4sMVYJ9OYDog7sdODCFAVZHjZquxd4ksHJj1XCNUUuKWP6AUi2X3OSGPYoy X-Received: by 2002:a17:907:2d25:: with SMTP id gs37mr2961260ejc.102.1643987847839; Fri, 04 Feb 2022 07:17:27 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id u20si1334123eju.808.2022.02.04.07.17.27; Fri, 04 Feb 2022 07:17:27 -0800 (PST) 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=lJituHxL; 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 63EA468B229; Fri, 4 Feb 2022 17:17:09 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-oln040092064071.outbound.protection.outlook.com [40.92.64.71]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AF07668B286 for ; Fri, 4 Feb 2022 17:17:02 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L9XFuKEa6MfZKAPpAQXdQXmZMw0MCnrlA61Idi5clM0FrcRDEum8mX1MNtH8bGqEQ60xxmKkvsXZ58z4g+Dch73wv1R47nGkxtwGOwmV0maxsdBVIxbYXF27LJCLB5LPFk1YI2Hi6qkDspPs+fAvDwra8Eci0Chv8mhT+g1WW2eaZaPKW0Bep3a61WnF9RBuXbCH+00kbD77w2WT1wLmX5VsB7PEIyO+ud24q+qQJTk+C3aJKWkMtZQgV6qOZ2OhrwwnwYnQx5zSGX7DnqKU/Qum2HnoUwA4DHtqd/xXWviYuRimV7/3DfydBezhDsQV2th06rqNI90ergDAtvJc1A== 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=chf81v6Clkn7Ml/X9T2IwCVGXGLsNe4swvEjux4Q6o0=; b=eEM7L3UyMgV/r6G9h3862wIgy2bV2FfoHndejOLPPI2B/Brg16jTwUtKVJZlSaU4d0ltynvugniu/zCuznpDqKycqQF1x9Bzqi00ebiNaYNSfloEIu/XJKxw4Bj6Vi7vUedzmP542vRl2qGXaU+uOrf3eioEB+nmJAh86HD5+HKtN3TmxGQp8ElbC5gRIUQFAF8GrY0AmokkYEkv8ArZyO8+k0lLV6qdejTdkYWQ98TVSbmb7FoNgWjqAZHLdN45d27cfLeQqVk+ns46YlZJlrgK122cW1fV0rdnHSYW0IU30ix6C0AuTD5rK6QN88dKhAg47mOaovLXSqhob7jI1A== 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=chf81v6Clkn7Ml/X9T2IwCVGXGLsNe4swvEjux4Q6o0=; b=lJituHxLA3wr2gjgscPLuiWA98w9q+1zo4v1H8y6t4/hxtBxE6cwbbg1WVhLLvt2aCAQrYGBiyEdvTZy5Fc5oh+pU4mm2CWxm399bTFgtXtGqSiuWMQ9cW0TWbCh5GAbD6vGVGOyscXCBMNIo6VMb4L63+Ux2tSP1NZYuZVk3cnIG/ya48n8mbThmJlyltW62mqdlcRicagF3QSUZ+UID3GtPtZ2T7JeNR4kyzRjfH7i2JV+lwIFJs/rhNg9aNT3Qp4vWclC9D8W0ln2RlO/z4KLcIFHsH5tTVzV0J7Xx4a6T7Ft2/Ha5+TMfr8p9+14TuDi0/+lzgKvKrLf4k5uiQ== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by DB7PR03MB4282.eurprd03.prod.outlook.com (2603:10a6:10:18::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4951.12; Fri, 4 Feb 2022 15:16:57 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ac56:2ff4:d304:ab22]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ac56:2ff4:d304:ab22%5]) with mapi id 15.20.4951.014; Fri, 4 Feb 2022 15:16:57 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 4 Feb 2022 16:16:44 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [XK2kx56ueLg7GhKyFyN8zW3CU+RePK43] X-ClientProxiedBy: AM5PR0101CA0032.eurprd01.prod.exchangelabs.com (2603:10a6:206:16::45) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220204151648.2148917-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c1eef3e7-23c9-4856-46b1-08d9e7f16266 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiSjtu7sMDnYCqklgc/dtjmmspiwpx5PoZymC/aRnDSAtvh92fRb35ElQcmtG2Ppbmxg+oVZMO7EuaMXZkHKnMr1xF5A4Hqa1XbjnnPKEpD2Tohq5hy4qVgjIdl3rP0CDzo/lEguIJDKERhJM5cbosHlvzUigCZjvGU1P75dt8jOU6ZJJKPcG3UmO6fS86/r0z2u6QqnEK6lHm1iYnpT/WEQH/waAT7rVy7xk6L7Sw0rUj1a4bkegoWA5EbfV/KFw077UiSlKuD5eMFdBbYGUYYnCPePiINz/W8EXrBzAQBbySpTB+cKoFN3/w9Sj8HQ01RBmg+EsKC+qVXErLNekmzjon6JX9T/UvazozYXl+9aJMwNVCfzr9/+PbDeuk3ZYtCl9oBP67m5ohvQBQHx064YUVVotEv0rQcy14USy87p1T6eHOapXCtaqD8Z1uir8w9Ky/tACkQH/FnJNDWV8eo46HP9N7b1T/h5kiTgH0xv6gNZvxcCnf9JnGQiYp6f20LZ/MT3gXIEDcB91qI8aGwiaiR5W4WfFkpDybFznKxLBJqlxfP9RJ9cPrVnwsCkBF1rc+oqJhryx/Xr3WjSxrlu/qZSB+l3rSOBGvHUyf/DB0vEVuUDUrMg8nwnnFDwrhzqMIF0wMCJP6MWy6oIgvrBoo2JMjeKq5+npFbz1WNggfCq6B5LyPyERasihKK8DPwA7BkRbknz2GXveCd3NIQ0cVbS2IuN7jdVB38+8XIQh6YDjQhnWfbjKy1xK9ZNv7k= X-MS-TrafficTypeDiagnostic: DB7PR03MB4282:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xHbrk+eGR8Ps0rWg1UZWRv1cl5QGKUSnWIhRYfuGxEQm6hIf387/xhG00j/rmwr9z47ETB39RPYK0zL0ASUcp7TqG+DozFPJzEbLPIk3s8gd11BRLjQBRnWR/OnPMKxjhFCQcYp/aXbcUvv5l4FP99gqKtrgTvnZoHsVVXZ594YN/Vx3RXAqo3Rj6wAvrrTULo+dPv8/ASoWnm1wHzdwbq43253JmlzhzmZaWjLevgCe4W8Secgd3mL2uAikI4KKJhK69Y9HZbf8L+d7i1eFv0OAfspfHYEXYCWm4rblnHXkOWe2d6o4WFps1hQqD/bj1V4FcwGiorN4hjKrnFTs0kF0Bsn1jP/R4OLyWwXvoyzz5TZd/F5xgUbJNzGQ8FZ3SY4NYk2qy8NliER3Fk/xzVwAhYzBaRxs6HdUucF7GCDo1Ouev1yLuwgM9IJsLBvp8+8ALN72gUeIe7upf46vhfTLPl+r/8CvagM21TruKqDyj2IJIQl5gI/DuzVTijn10WsK5PWhVSQZh83DYPCJpb4MQs10WhFiDxE3t2zKNkN8BWknqtyuY2rahkZnsO296A0P2N1X3K3l8ptPy0SwfA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: DPILEGYOy2v8xBAdUlnrcKHbAoKScDT+E5E7/WUYU0VhPpF8TbyjdJfr0t37jwto9FbS3VIH1IL76pkKvZ4ZgTID3ehVfxKASJ+YfVTRGLKFcCzkSq9thOpMIPTtEq0KWbAtZbsDFL5m/dB+HBRGSVpEw5Vgf65tFzgJAEmIS9VjbcUiVkBA4qMDiP/uDr6Upf4/LfvAeRiQFN83DMZoxxixWt6TLWV9GBaikdXI8GONB7paiCgv2AQesjLo5XfbP7zpjuzwy5CuLG9CRspgENwCPh4uxOeOqGmJHZ+wKFHckyzEbj1RBdgXpHeD9kjeBF2ygBxhAZSTZGtNapdm3dowr86CeIVEnGGrplIO2HeZ6TES9Y6ILukLUJFYg4+FTo1bRY4Jix6HWmn5Sep78aIPRLF4/Cky1tfGUiNTV2wXRwDTJg+PIw4BQe+WRdGmLROqxV3wrU0h+P3VRkn++UDIehLxnsQ7hlAVAYD8Uyw0gtYtjHGQ1qhE/RwWTPNcgm4fHhFGJ93xtdYSVXMqqzTqUJPFJt9DB1iM5Li02f+KhIFDbSoNcIC946+rWKjUNjFzMA8r7Gf7MIuw0Q6ezBwnieb7P8IeeJLuR37rNoJqspG83L/+OosQXB0HAhdm/ZFp7MHNlBkjVNbrh07qS6eLSlVlXf58f48nccQGjunyQFZiSuEHcD8agZkUg4a+EZ+HprEomOQR5qUd3XeBz77BYwTrk9UKLXuWH8bFwcIiLzrKNeueLLcE8HYWdeaa48Ip9RIvqflQRiPI3WTiFtXtloQfqr4hmkq+y6KC/tm99Ac5VOLlFe3uZqDGHJu6SXACJGDfELXsCEvdmiWqan/06JanQrzx3DL2Fg+nXpSycDQljFQsFZ4Su+oQuIUIn6WmJKJ14Fq2xxLK1UQyb8CfRbNfKECi4VNuvmNp4e5XX6k/lBp8ZtxDLVVWirfcuEexDTbaPmLBBr4HijptHQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c1eef3e7-23c9-4856-46b1-08d9e7f16266 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2022 15:16:57.5671 (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: DB7PR03MB4282 Subject: [FFmpeg-devel] [PATCH 3/7] avcodec/cbs: Make ff_cbs_insert_unit_data() always append the new unit 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: TW0oucOH1Cnm All split functions (the only users of this function) only append units. Signed-off-by: Andreas Rheinhardt --- libavcodec/cbs.c | 22 +++++++++++++++------- libavcodec/cbs.h | 5 ++--- libavcodec/cbs_av1.c | 2 +- libavcodec/cbs_h2645.c | 2 +- libavcodec/cbs_jpeg.c | 2 +- libavcodec/cbs_mpeg2.c | 2 +- libavcodec/cbs_vp9.c | 4 ++-- 7 files changed, 23 insertions(+), 16 deletions(-) diff --git a/libavcodec/cbs.c b/libavcodec/cbs.c index d7aa67c3af..e829caa0a0 100644 --- a/libavcodec/cbs.c +++ b/libavcodec/cbs.c @@ -789,18 +789,16 @@ int ff_cbs_insert_unit_content(CodedBitstreamFragment *frag, return 0; } -int ff_cbs_insert_unit_data(CodedBitstreamFragment *frag, - int position, - CodedBitstreamUnitType type, - uint8_t *data, size_t data_size, - AVBufferRef *data_buf) +static int cbs_insert_unit_data(CodedBitstreamFragment *frag, + CodedBitstreamUnitType type, + uint8_t *data, size_t data_size, + AVBufferRef *data_buf, + int position) { CodedBitstreamUnit *unit; AVBufferRef *data_ref; int err; - if (position == -1) - position = frag->nb_units; av_assert0(position >= 0 && position <= frag->nb_units); if (data_buf) @@ -828,6 +826,16 @@ int ff_cbs_insert_unit_data(CodedBitstreamFragment *frag, return 0; } +int ff_cbs_append_unit_data(CodedBitstreamFragment *frag, + CodedBitstreamUnitType type, + uint8_t *data, size_t data_size, + AVBufferRef *data_buf) +{ + return cbs_insert_unit_data(frag, type, + data, data_size, data_buf, + frag->nb_units); +} + void ff_cbs_delete_unit(CodedBitstreamFragment *frag, int position) { diff --git a/libavcodec/cbs.h b/libavcodec/cbs.h index 87ea14cd07..5583063b5e 100644 --- a/libavcodec/cbs.h +++ b/libavcodec/cbs.h @@ -393,14 +393,13 @@ int ff_cbs_insert_unit_content(CodedBitstreamFragment *frag, AVBufferRef *content_buf); /** - * Insert a new unit into a fragment with the given data bitstream. + * Add a new unit to a fragment with the given data bitstream. * * If data_buf is not supplied then data must have been allocated with * av_malloc() and will on success become owned by the unit after this * call or freed on error. */ -int ff_cbs_insert_unit_data(CodedBitstreamFragment *frag, - int position, +int ff_cbs_append_unit_data(CodedBitstreamFragment *frag, CodedBitstreamUnitType type, uint8_t *data, size_t data_size, AVBufferRef *data_buf); diff --git a/libavcodec/cbs_av1.c b/libavcodec/cbs_av1.c index 302e1f38f5..04314443de 100644 --- a/libavcodec/cbs_av1.c +++ b/libavcodec/cbs_av1.c @@ -828,7 +828,7 @@ static int cbs_av1_split_fragment(CodedBitstreamContext *ctx, goto fail; } - err = ff_cbs_insert_unit_data(frag, -1, header.obu_type, + err = ff_cbs_append_unit_data(frag, header.obu_type, data, obu_length, frag->data_ref); if (err < 0) goto fail; diff --git a/libavcodec/cbs_h2645.c b/libavcodec/cbs_h2645.c index 3396c059c9..10b3bcc70b 100644 --- a/libavcodec/cbs_h2645.c +++ b/libavcodec/cbs_h2645.c @@ -493,7 +493,7 @@ static int cbs_h2645_fragment_add_nals(CodedBitstreamContext *ctx, ref = (nal->data == nal->raw_data) ? frag->data_ref : packet->rbsp.rbsp_buffer_ref; - err = ff_cbs_insert_unit_data(frag, -1, nal->type, + err = ff_cbs_append_unit_data(frag, nal->type, (uint8_t*)nal->data, size, ref); if (err < 0) return err; diff --git a/libavcodec/cbs_jpeg.c b/libavcodec/cbs_jpeg.c index ae263ba038..da7ee808cf 100644 --- a/libavcodec/cbs_jpeg.c +++ b/libavcodec/cbs_jpeg.c @@ -226,7 +226,7 @@ static int cbs_jpeg_split_fragment(CodedBitstreamContext *ctx, data_ref = frag->data_ref; } - err = ff_cbs_insert_unit_data(frag, -1, marker, + err = ff_cbs_append_unit_data(frag, marker, data, data_size, data_ref); if (err < 0) return err; diff --git a/libavcodec/cbs_mpeg2.c b/libavcodec/cbs_mpeg2.c index 4395bbf047..2bf38c6001 100644 --- a/libavcodec/cbs_mpeg2.c +++ b/libavcodec/cbs_mpeg2.c @@ -186,7 +186,7 @@ static int cbs_mpeg2_split_fragment(CodedBitstreamContext *ctx, final = 1; } - err = ff_cbs_insert_unit_data(frag, -1, unit_type, (uint8_t*)start, + err = ff_cbs_append_unit_data(frag, unit_type, (uint8_t*)start, unit_size, frag->data_ref); if (err < 0) return err; diff --git a/libavcodec/cbs_vp9.c b/libavcodec/cbs_vp9.c index e0b8c02ac2..333d70ba4e 100644 --- a/libavcodec/cbs_vp9.c +++ b/libavcodec/cbs_vp9.c @@ -451,7 +451,7 @@ static int cbs_vp9_split_fragment(CodedBitstreamContext *ctx, return AVERROR_INVALIDDATA; } - err = ff_cbs_insert_unit_data(frag, -1, 0, + err = ff_cbs_append_unit_data(frag, 0, frag->data + pos, sfi.frame_sizes[i], frag->data_ref); @@ -469,7 +469,7 @@ static int cbs_vp9_split_fragment(CodedBitstreamContext *ctx, return 0; } else { - err = ff_cbs_insert_unit_data(frag, -1, 0, + err = ff_cbs_append_unit_data(frag, 0, frag->data, frag->data_size, frag->data_ref); if (err < 0)