From patchwork Thu Aug 4 17:31:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 37131 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1649:b0:8b:613a:194d with SMTP id no9csp533721pzb; Thu, 4 Aug 2022 10:32:19 -0700 (PDT) X-Google-Smtp-Source: AA6agR7QbVBX5TiHF4CFUAwh7c7fOG/3o+h/Y4DymzOSofIwrbYdz8xlRJN+1P4s5DyMZjlrAdRV X-Received: by 2002:a17:906:5d0b:b0:72f:b107:c09f with SMTP id g11-20020a1709065d0b00b0072fb107c09fmr2172967ejt.639.1659634339478; Thu, 04 Aug 2022 10:32:19 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id g23-20020a17090670d700b00730ce22906asi1091796ejk.876.2022.08.04.10.32.18; Thu, 04 Aug 2022 10:32:19 -0700 (PDT) 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=oJwywfnD; 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 647A968B9F3; Thu, 4 Aug 2022 20:32:15 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075046.outbound.protection.outlook.com [40.92.75.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3F0D668B9B1 for ; Thu, 4 Aug 2022 20:32:09 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VBflc53K3b1ki2DMgKo3rB+wfWyoCNVOjqFIGEClJGwWimT+3mtcAdTYRUY2Uz7Xez0O75tWdkAgo7LteC9S3oj2XjybCdKzE83SXJnWvRSOTI59SS/ySRnXQQ36JiG7UyvghkmgOjRuyEL3E+XwaxCIPu/jlkD8kx0z5TbnJdOETIkABWGP7KExNvsaFq9UJzFzsSyX9WOkGLd/D+QQj3mHZn6UMUGWXl2UkT62NCY9uZzVvkpmmBORCS7sVqnbF9uDOg10dw5ZalCWKO9bZJ1PBBLfZPKnIhcsgB/9SnDhXAcA+CHLBvq4ruP3vIihpzwJ3beQns4fYhGxqXHgXg== 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=HPZfFJKoZ5se7RnCo07lKangT6hoxnlC4GhiscAQvLo=; b=bbrdb3HLCIkIgkCkkFw6LcunbKzlcS298FmXfMMx8rX+coKV2Z3kIYJaZKLqpXIvYMzrfeXvTDOLag4DeoNC22QV+x2mZ5Wmzk6cPRPZBJPunobFiiHa5BuHZfLEWv56UJtL7wc3aNbgOIqDeJWDlDpm0LLl+LIHGrOvf0ObtW7qR+UCgePEz5YVb/o5TGGnNpR+QLe6u3SYNhY327qrozpPq9tdsUZPFmmGsff+4JhiiLmqyYYuuig8N7vRAdcl0NH47/1W2dhUJrR5oV8Om2Fv3YlF8w5z89qUiZLczsW2BeH8VAHaPZ99JvCTxOQBwYqatZgK+HzJlLwZgMhDJw== 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=HPZfFJKoZ5se7RnCo07lKangT6hoxnlC4GhiscAQvLo=; b=oJwywfnDoy1zfFyxluWZc3wN8KNcFDh5QK6/rthlLCVs3QeqvTkQk/A3Y5uHtXX0Oq48dJXB5vLMJ36417Y5KMCNxNBTK7q3Nn4F0ODwEus5qmoxnJQ/cwqH7aSzOXjALqX4KzaTfnW1SEkqMGVwYMVnmEWKr39hUeQelbTT9D8uJAWeB709BzIYdvj5C341mYyYivUYFWFY/8lqXHtBR5Gg2IcgJ7Dh+A7OQO4HNZXtOkrN62C/JrPfO2mk7Jyy68zmayndhymu4GxLwi6Dma+7YjiKWDmU1BbTMaDMFtwn2NWXKAJTyrnGSvs2gdMbszSwwuqi8j4HtdQLGWZ/Yw== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by AS8PR01MB7974.eurprd01.prod.exchangelabs.com (2603:10a6:20b:371::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.15; Thu, 4 Aug 2022 17:32:07 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46%11]) with mapi id 15.20.5482.016; Thu, 4 Aug 2022 17:32:07 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 4 Aug 2022 19:31:49 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 X-TMN: [Wp5Sp0J44NznGxrBZRXxlSZ/+a8rDK+Z] X-ClientProxiedBy: AM5PR0201CA0017.eurprd02.prod.outlook.com (2603:10a6:203:3d::27) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220804173157.1561038-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 107cafdf-5dd0-449a-bc83-08da763f4108 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNVBLZe6CjjWHQcN+6fAcwmp0md/Z3KwYNqh3acAycMoGgh9Pq/yzsLfkO82NaaeP07KAMc6jK7N7H0AvWaBiMyH1/nZ/pidxAcj5DyDYReRZWQoiC66nsFeUZH/L1kkt9U2DRLvyDbod9f001Rqx5CS6U3Lnek1QruQQjp2AhtJ8VJlDhU1wLp6LEL1AP69H6gF0PuI1I/Zjnjiagk2+ukggJeBZpnYgBB0TY0KHa8eZTOKBTlu3ZGeL4vX4xeeDIm+8CwJqENgQYCkTMhC1ZjxMz9RaH7Bo43+tIXMX29xSSmlYBRzIwvx0SOHUXZAflKM2d9dFwSdjjI0n3xQpQFreTfPeZFV+2tDC6Is4mghRUCkshFhffq0Mw4fcesLt/dm4jc8BqBWlmQZYBfs7XwT10ATX4yn2XTCMEkPrO44oXbxP7HZSD4N+G2+dhX4vA8aZ/IcqiCCVWpxJbp6p7ZnKpGVGQDdHD0rTZwxSwyzPkho3SX0A8b6MSqRVKAG51M5JQba59IAGz5MOAXQ1s7b3VECtSO/pVPq995EHXswUZLAr2LzU6r1iNgamm58yuEOKW3F7UgPQiMSq9awSfoR1DEqB0zZoJvhkVcCplnBMAnVrPkMuSl2/VjJTgfnAupn9OKyzC1XogzwQ2XW09t9dHJmx4NbK6wUdRLCf3phANT9Tub0me87zv/qMTr++mLw59cRRAldfOfwJmGVPySntsCmm79SKiM= X-MS-TrafficTypeDiagnostic: AS8PR01MB7974:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kELz0TI3geFjmNDkbvSk2AIdTY9o3XHbtxFUIbWHK3pCofyR4ti3vSouWFkWR7BSXs8T6GlLfPVDUxNvShJVLYhs/zEJzMidn5tH4tnnaNbrW0q3KThqJqIblTYjjCF/AB496tqLee+KcWzj0/CRFnNTr3aZSuDmUzFHBZ5STRi14pCml/dEp/4hzSV9n+AwNGPT6TSjE1on9KuCzZEfWqHZrJhYSMCWwIccAqOukVWYY8uRHHQ4DQ0rhcAeE5tW3SkXWPKG4H/nFC6NWzcytCFSDqLaeEuD0WaQWg7zYwCk6I7YL2A6wWx7DqOJZvsXY+jZiO1BVVC2tnZoVORp4a3qoHcD6oT09vIXR/SPG5kytPE50rUXtkUxsmBQbN5ipAlMLB/2v+FAPiM2AIvThSsQaZx50DOoT4MLJEFcFFusIwO2DBmKYf7BgnAbW4KW88P1kMEUb3sqFCVyF3BUy8k0OjATFAWRQ6TdnQAURc4FDtESM01Ke9IVja3BMltMfd7GsGxAEBbEFY07Jz53bm8yosm60ioNYqdxbU5otEsAGLU1xpkTwqIibJZAPz3k8BoZoLcyy00CRcK2CeaT723dkkUDyFsy/huUcCR071xX7/32NP1186bJkwFwM+EO01DpBGyC2r8AeqLHrxaVZQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: lzGTKAE0iH9dskaGJwWN/gq9SxTaOxLISx2ACXvR/HamcBXkeYLemt8z+IbZIqWIvcHyY05fITwUWAPMkatAWnjo8zw3zWPOxWUGSiDWM5C+cAZLrsfuJL2VQ/S+wOP7Dh3cBq8MdKy4r65FI+Qvf81WtQmUg+B6PPkn+NLoC9f3b++8b36la6K8/MMl/N6Ab6m6MsaE8P0n2V87hPV+6l1AbY/SM+TT4m+eHfQBwVJPUElkehhn0wemLrMMrI1yJa0mmg1yKxkQhLv/RXXBdxagYi/AvDRrGiz+ov3f3CKzRXq81hObY7BzSUYq0CzIXPF8Bjai2pRhz221jM4fKVq0XT1YpZ5KXmItdkHIKwjXtcxUGKz3/m87LIDxd8F0HRiraw3gXDEu5Y6zcToXtk08rGLJIgBRWL40mxKlfeF2+ncX3SlaX83JAfdbBlZjiJHtQtSFO8O3MniDw2RhjMzHF8oBwrPOW2tvG5owTKUz7dY/AIwbtiDP4A0o8XekOHc8RC/KPsdl7EKZConeUb4JB4Ir3ZMHLe2Kwt1RGegYp0JAOKyPfbgWHjKNgC2TY7Dyb5VknpMsSPsqTFinV1pBpnW40QRNovUVlKeNS5oUTdbUfd7CmL2WfyvAusVrfARDC5RR6DWEUWnascdBTGfp/UCh9jUAwCFINWGj7Hgb5RgEr6bxZCeONmVR/5NxC4hOLhnT8uR5pZb3Czn07ShdoyJsuIG+8YAvy78U/znRzK4nfmYTvALyrwR4OEHscxmYCOQ3vfdOIdC8WSG3Ou3B44080/xg2Oi8lxeH36EIPOLqcc96curJmZiKt/peSXiRgw9JN1B9JO/1uVyUqBwB3njvVM2NLV+MpU01wvWgHehTlpbrjwtjLrz3XK+1FUyJY2IhXpql+VZXSEvmIuHrDDBkvkBVWIiyyIRMUy9CUv4Pe1yLKUz0FnZj2avjDA8crwtF9Ft3UEWElpjasYWX6fQJibq+eW8bT4kTdT3tMKR76L0q/0I+oG6TDET8Tbx6fZ71JneNXuVqXLOHn7X78F2+uX/0hie2BzPgTkKIuYhIGLDhKOBShmdLc1OiX6X3sL+xxcXjvg9St8r7/qpBHJ3Gl95qptVRInaZmuXsgfhA/y4K8Vb6etrrp5x9kBaSDGl7crYYMB8GuEtezr17BOuFLDE6x4Oukn0tq2dZvi9azxUe1ayE8A4VcVdTdSTG3OLe3ar0tCLceH1YNalCBejnUjxWfzbKUma5Th+y3jjdhNKPxG73MGTAAojG0ElpVir+bUdvHg96E59RptAuFr0ygtfyHLR8YqfpqTM= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 107cafdf-5dd0-449a-bc83-08da763f4108 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2022 17:32:07.5423 (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: AS8PR01MB7974 Subject: [FFmpeg-devel] [PATCH 1/9] avcodec/error_resilience: Avoid overhead of AVBuffer API 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: gq3UOrhSh/wS These buffers are not shared in any way. Signed-off-by: Andreas Rheinhardt --- libavcodec/error_resilience.c | 18 +++++++++--------- libavcodec/error_resilience.h | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/libavcodec/error_resilience.c b/libavcodec/error_resilience.c index f957c68d2c..2aa6f1d864 100644 --- a/libavcodec/error_resilience.c +++ b/libavcodec/error_resilience.c @@ -946,17 +946,17 @@ void ff_er_frame_end(ERContext *s) av_log(s->avctx, AV_LOG_ERROR, "Warning MVs not available\n"); for (i = 0; i < 2; i++) { - s->ref_index_buf[i] = av_buffer_allocz(s->mb_stride * s->mb_height * 4 * sizeof(uint8_t)); - s->motion_val_buf[i] = av_buffer_allocz((size + 4) * 2 * sizeof(uint16_t)); - if (!s->ref_index_buf[i] || !s->motion_val_buf[i]) + s->ref_index[i] = av_calloc(s->mb_stride * s->mb_height, 4 * sizeof(uint8_t)); + s->motion_val_base[i] = av_calloc(size + 4, 2 * sizeof(uint16_t)); + if (!s->ref_index[i] || !s->motion_val_base[i]) break; - s->cur_pic.ref_index[i] = s->ref_index_buf[i]->data; - s->cur_pic.motion_val[i] = (int16_t (*)[2])s->motion_val_buf[i]->data + 4; + s->cur_pic.ref_index[i] = s->ref_index[i]; + s->cur_pic.motion_val[i] = s->motion_val_base[i] + 4; } if (i < 2) { for (i = 0; i < 2; i++) { - av_buffer_unref(&s->ref_index_buf[i]); - av_buffer_unref(&s->motion_val_buf[i]); + av_freep(&s->ref_index[i]); + av_freep(&s->motion_val_base[i]); s->cur_pic.ref_index[i] = NULL; s->cur_pic.motion_val[i] = NULL; } @@ -1343,8 +1343,8 @@ void ff_er_frame_end(ERContext *s) } for (i = 0; i < 2; i++) { - av_buffer_unref(&s->ref_index_buf[i]); - av_buffer_unref(&s->motion_val_buf[i]); + av_freep(&s->ref_index[i]); + av_freep(&s->motion_val_base[i]); s->cur_pic.ref_index[i] = NULL; s->cur_pic.motion_val[i] = NULL; } diff --git a/libavcodec/error_resilience.h b/libavcodec/error_resilience.h index 53e5cf2621..47cc8a4fc6 100644 --- a/libavcodec/error_resilience.h +++ b/libavcodec/error_resilience.h @@ -75,8 +75,8 @@ typedef struct ERContext { ERPicture last_pic; ERPicture next_pic; - AVBufferRef *ref_index_buf[2]; - AVBufferRef *motion_val_buf[2]; + int8_t *ref_index[2]; + int16_t (*motion_val_base[2])[2]; uint16_t pp_time; uint16_t pb_time; From patchwork Thu Aug 4 17:36:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 37132 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1649:b0:8b:613a:194d with SMTP id no9csp536515pzb; Thu, 4 Aug 2022 10:37:23 -0700 (PDT) X-Google-Smtp-Source: AA6agR57u+NafBsuJu+9OHbXujXNQIm/vNQ21cVaxC9BwGJmdqRQAxPZfQrRWRM/IaER+EBn55nk X-Received: by 2002:a05:6402:26d0:b0:43d:6f63:e6b with SMTP id x16-20020a05640226d000b0043d6f630e6bmr3187196edd.61.1659634642982; Thu, 04 Aug 2022 10:37:22 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id dc24-20020a170906c7d800b00730a1d46e98si1266724ejb.734.2022.08.04.10.37.22; Thu, 04 Aug 2022 10:37:22 -0700 (PDT) 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=MF7QX1Iq; 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 C1AC168B9FF; Thu, 4 Aug 2022 20:37:19 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073091.outbound.protection.outlook.com [40.92.73.91]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6045F68B93A for ; Thu, 4 Aug 2022 20:37:13 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=epkGc+Vwf73RcCRVTI/RMXYmxj6U+VzByqANPzj9vjYbWOZ8+lZlV3ulyuaaSNAdAJkLbRgjsvf0Q2DBJpE7jaMRwh8wX7ek95LcYth8U916EB2b3cOW8mrUFf2BdcgQMasFRKRc6LkK/V46DpvJhtMnsMUSmoSmLju1lVN0oHloIMzBmXELHiJ5Gxvz0E4t90o8Q/dVsE283uE61YSfz5YW718W/Xfx1BOOCquUKJe9oXb08LiT+mXqKwhc9DVRIrCEzoJC9eYRxioNMSqRbR053bb0WD6AyJU2J8w5/riX9aXNwsiL8lXpPR8U4W+f+k+aUXrKkJLdEX5uZKW9bw== 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=8q4ajDAC8iYkUhh6daCwPm2OPboOm84erI5kXAkc1Ag=; b=SIxwse1ZR/xtDloptfp81lfMpVsZ/dzlH31+NWTEdXggwC4dcRvERruiHV1Gyi0WqwAWAV4UxxLjExfNFLYnHSF2kNXPu/gw++PgMSn5hfk6ak13BK7EoZR6sf5fEX9wtceK4ORy8+C0VlR1kLF9eUDkZncHsFb8W4q0h7uFMiVrQfz8K5elJfZs6Bt7w2MBRpK+iKWSm0lhIiTwXH2rQ2LAf5Ux7b1z665cSUF6ckqguJefrYISi5aMJ3jkD/iK1KOhy/c+8PZz7jqmxiQvyxU/1T9oyddR9Dc2gaVw3JC4iP9Mu4Gz8akxuBB/R+X1gm7jS9nCxsw14XyGWqtjIg== 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=8q4ajDAC8iYkUhh6daCwPm2OPboOm84erI5kXAkc1Ag=; b=MF7QX1IqiwYUDPpQf9fp4dq9HplHGbJYnMbjA8576lkYwD4t9XumM1u2jQOQXlT9iISaPJ3ZuHF2tcyfC+UVb3voeJpVMqUHYQw7oY4E2aVRPyr5q8iABREjv97ZvOFK0jdq+mxAn6mrbyIdu7sqpfvNvcMvc0fjv1jRbx1ECJvYKm0OLDptL5lbThOI0ypI/y1N2sEmU74iEK8RYdB+ZcT+s0uCqjvNVAFllVkivPzCMJN5BjAF6PvkjhPkdpB6XrOeCcYdkdkUmW97HWCllPqemDU77dpnk7aH9uG4eBXMgNTjwN3AiutWdUM1tvcZsn4b/ADocl452OgWrLEe8A== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by DB8PR01MB6503.eurprd01.prod.exchangelabs.com (2603:10a6:10:154::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.14; Thu, 4 Aug 2022 17:37:11 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46%11]) with mapi id 15.20.5482.016; Thu, 4 Aug 2022 17:37:11 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 4 Aug 2022 19:36:48 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [pvV/PpSkYmVXYWGgjkp4JEUbZrIYKQNn] X-ClientProxiedBy: AM5PR0201CA0018.eurprd02.prod.outlook.com (2603:10a6:203:3d::28) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220804173655.1561196-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e7c571a9-af3e-4621-1102-08da763ff5f3 X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UIOfcU/WhyXx+8uuhyM+VSe6jBWeUqBmXwUDux/MB01mGcZGUSyKK8H5MkUY8YvWnFwlWqYUlI2uo7w2w3JS3/5jSW3Znc4STR+v0DzPyGEXF4Ms5Nr+t4oVF0qv/Aqq4QjHUPajoF44iFqOiRRjh2vRrtVZnu4lUpaDGUp2d3v1yE15OAUdmBDwNDyLHbyph4FsXP81vZp539G55k6zkdWEj1XTlmEkU9l7UhRyo4y9cDcQoLZ7S3qfonyPO7mTC6eWkdNUcbHXinOX253jhqClXKQUzW8bFB+cVCvHw8fB8hYODbwdomngL8n0rxy32c0si5Akrp6RYdSkJFuNyIRP1qWw1CjDgUfnaWA0DTKuRUzh3nTG0WVp3QdY4UumSQyA9qCxizXovh4aDGNuxZhLn+nAF7WUxa2UeI2bznqWdwWUAkCzFsNLMRVp1pYOvb6LWdPYV5f/GAl0ciCBxNu/rXmXprzCDorc4TcLSYKaWUMdSIYEJkP3qveuCDOoi0vRuFBnNw5x4ZMhSJgDyryNbxKc3dMT54Bh40sWPbyTYw4qbplWIoULqOWP23GTPVv2uMEUxtR5M/F31R9SfWjA+L4bAO4t1sAZQcOJpexgqKp/HCm9N4r4TsYjZl5gEjcTyyaNkQdPs7gTY1vxNnDeOx/WbSeO0T45bNYx5GnOt7XP72EYy9lkSPmF+kLG6RVUP/gN8TLzg== X-MS-TrafficTypeDiagnostic: DB8PR01MB6503:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ErzC9ZhD34YzQkqpiM/dwV9jtriF45hTurXFDJXCet1I1wkf+y9c8V+pDDEJ1CDJjHxSTHypirZMDxUobhC1jsVsgVdJiuXFQ0NZ0MdKgl06z/wYdpT03hx9AwErSS/j94biTdxrq1ekgXX899P3PvB9VfXa8k7KdjmJuUSqslo/hoEk6VXwuipMGDdBITG/6CNaf0ZgQ792Nd5THQ+MXRqGz7CrOacODKbTClnGONx2lFsBbpG4yiJ63J8AV7ty+v8gg8d6rsuKLoc719qH2FyIxbXem/6Ph5d//40Vc1zTPgxQhDfFSziORYBoMFD79Vi1Ymqp64C6sAfQXU+UDDemzlOKhlko+xDfh2Tt6JQIN9USDjyYA5Iiuyk+26up2Q6WJuJCutpVzqXIu4/7klTjHpzyKxOGiV3Atb+0p60D3a7FdH+CF49MTqSBgu6npcLXweelwqrJpEJCk8e4De7aQpZuexGMAZ90s/q3a/rFMfrSqDMg3RfpwuiqQBmCUswQ/WRT9cAfVLCCg4w46c2VfRSBezQ3f9YtHIZLybq/ybBnZL6tFGwbfz7oQaUxQZnmwDXcDB3W56VBurhi13227z9g7ZkBl2J20C9ZM7qxRw10hZMb7QrZHrjtFqBbADaQihi7fbgxq7DLEpUZFA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: FmW5fhty2bjugsqM3PKXDGS0nwVzg0Lcv6OYmfBao1yY92wnYOcXJNkSMjU2lOZvlenG/GRiaV3OpODTmys4fXnD/Kgpt85Tq0pTcn0lwsrRuw71PDa3MnYe7xBw6+J+7Ke3V25IN+v8+uUQHKwqvx9Dp7geDxCmvmvOgTjWNK+TA3gzVHVUkC7ZkBUdoOi9ihMUy4bnGRFhDjZbGnBkeiQDpGZb/CjQaRzQd9OhcgU2kWnETtJJ9NvzBOGF9e/L3OSdCfTgkWkYBjZ5unRWwQmmE29wj0DZREc96Ow5bcUbPFXvuTV/PbfWXJFd4srLK6uPyuTYLSnIlp0dXoIz14D9j0Bfhz7SkirOckQM/WI+w2oXTyHHx9txfduENaQQ3Yh5m/LECwsdJZpJHynlI7FAL5RZUVEc8QWXv6g1H79oywn1q9MTVja+8l3mlBB9k8qUHLHr70heaH6vnIrFFI+wPjOm6Wq9NQhdx1sapyzIzQbA5/xwW6iG6Ay/xT05ivdoaSzDOdU3xaEPlwMtRTwHayOPkLA61RNVRBeIRUtzN4Sw0yVDUhzT6vdPUl7dSlIpKkxDMAD+S6jvEKX+/H4qBjPeqrW6lqozSbxmUvNz6iSGiaO7/fSHU6GaaClmQdowaCAYIFSWM0uTXWtCMFUkr2J6gohY4XcMzkr1W5O+nwcNQSLTibIDArx/1f8VrMRPhIwCydQqqhHU5Zz0oDffi29KQ2vXjkJjxZWoLyjlGJzkho4maXVdvI8duV+1OLkR/AVkBAZOjGVfZpo5iwS4JsnfT1CgpYq06tRz/8ANoCibTAIbHnBWAC8d8mk5gKTxLzHdk2duOYGjmbFYpn1X76VZUDjBh+19K3lPqqX2K/1uy3Ga7IN98lb12PHA7GdzkvsPvMhgfJD6c6hYoeeVOdNF+IToR0ST9TVIzaxTs5GER0ZceLSmfqUs5OI1StWdDYwurixXwIAt1AcFXX1Hi97bJi9aLyxYgQ88/jJqrxKuwXqaJ7HD9h4rWFQN70oHBZCzb1CMIlk9l76fc/+8HbYN0mqdgmBIvNi99CKaPjjBahm+s2Hlg6dXqXEWij+nM+lJukMQtQJcFDWzLpb1QLWjrm8uSUJViqUdFWcDVaCv7Wt90jrKDFIie26CYtWBkcqVHRs13Fndwv7A4oR6j1zBIka6YMcvejTt7Z6DZUOuz5BwGIEchVCPNxq9mTw6EygGYbAfNubRUwnlm0zyqMtB/qcdANuFSBkV5qYhotPUCL58ByfoA+EZ49MYaeWeGZuHXLVb3Suo5gyrkDc2Uisbw+P8VBq2nMoAtRo= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e7c571a9-af3e-4621-1102-08da763ff5f3 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2022 17:37:11.0367 (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: DB8PR01MB6503 Subject: [FFmpeg-devel] [PATCH 2/9] avcodec/cbs: Avoid code duplication for making unit refcounted/writable 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: cuvSridQ4M/w Signed-off-by: Andreas Rheinhardt --- libavcodec/cbs.c | 74 ++++++++++++++++-------------------------------- 1 file changed, 25 insertions(+), 49 deletions(-) diff --git a/libavcodec/cbs.c b/libavcodec/cbs.c index 8c0a5b5719..f715e463a1 100644 --- a/libavcodec/cbs.c +++ b/libavcodec/cbs.c @@ -921,9 +921,9 @@ int ff_cbs_alloc_unit_content2(CodedBitstreamContext *ctx, return 0; } -static int cbs_clone_unit_content(AVBufferRef **clone_ref, - CodedBitstreamUnit *unit, - const CodedBitstreamUnitTypeDescriptor *desc) +static int cbs_clone_internal_refs_unit_content(AVBufferRef **clone_ref, + const CodedBitstreamUnit *unit, + const CodedBitstreamUnitTypeDescriptor *desc) { uint8_t *src, *copy; uint8_t **src_ptr, **copy_ptr; @@ -987,19 +987,18 @@ fail: return err; } -int ff_cbs_make_unit_refcounted(CodedBitstreamContext *ctx, - CodedBitstreamUnit *unit) +/* + * On success, unit->content and unit->content_ref are updated with + * the new content; unit is untouched on failure. + * Any old content_ref is simply overwritten and not freed. + */ +static int cbs_clone_unit_content(CodedBitstreamContext *ctx, + CodedBitstreamUnit *unit) { const CodedBitstreamUnitTypeDescriptor *desc; AVBufferRef *ref; int err; - av_assert0(unit->content); - if (unit->content_ref) { - // Already refcounted, nothing to do. - return 0; - } - desc = cbs_find_unit_type_desc(ctx, unit); if (!desc) return AVERROR(ENOSYS); @@ -1014,7 +1013,7 @@ int ff_cbs_make_unit_refcounted(CodedBitstreamContext *ctx, break; case CBS_CONTENT_TYPE_INTERNAL_REFS: - err = cbs_clone_unit_content(&ref, unit, desc); + err = cbs_clone_internal_refs_unit_content(&ref, unit, desc); break; case CBS_CONTENT_TYPE_COMPLEX: @@ -1035,51 +1034,28 @@ int ff_cbs_make_unit_refcounted(CodedBitstreamContext *ctx, return 0; } +int ff_cbs_make_unit_refcounted(CodedBitstreamContext *ctx, + CodedBitstreamUnit *unit) +{ + av_assert0(unit->content); + if (unit->content_ref) + return 0; + return cbs_clone_unit_content(ctx, unit); +} + int ff_cbs_make_unit_writable(CodedBitstreamContext *ctx, CodedBitstreamUnit *unit) { - const CodedBitstreamUnitTypeDescriptor *desc; - AVBufferRef *ref; + AVBufferRef *ref = unit->content_ref; int err; - // This can only be applied to refcounted units. - err = ff_cbs_make_unit_refcounted(ctx, unit); - if (err < 0) - return err; - av_assert0(unit->content && unit->content_ref); - - if (av_buffer_is_writable(unit->content_ref)) + av_assert0(unit->content); + if (ref && av_buffer_is_writable(ref)) return 0; - desc = cbs_find_unit_type_desc(ctx, unit); - if (!desc) - return AVERROR(ENOSYS); - - switch (desc->content_type) { - case CBS_CONTENT_TYPE_POD: - err = av_buffer_make_writable(&unit->content_ref); - break; - - case CBS_CONTENT_TYPE_INTERNAL_REFS: - err = cbs_clone_unit_content(&ref, unit, desc); - break; - - case CBS_CONTENT_TYPE_COMPLEX: - if (!desc->content_clone) - return AVERROR_PATCHWELCOME; - err = desc->content_clone(&ref, unit); - break; - - default: - av_assert0(0 && "Invalid content type."); - } + err = cbs_clone_unit_content(ctx, unit); if (err < 0) return err; - - if (desc->content_type != CBS_CONTENT_TYPE_POD) { - av_buffer_unref(&unit->content_ref); - unit->content_ref = ref; - } - unit->content = unit->content_ref->data; + av_buffer_unref(&ref); return 0; } From patchwork Thu Aug 4 17:36:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 37133 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1649:b0:8b:613a:194d with SMTP id no9csp536592pzb; Thu, 4 Aug 2022 10:37:31 -0700 (PDT) X-Google-Smtp-Source: AA6agR7UBL8KoRAJj1KNe+ErjqyETmn230p+ND7c9oaw0ldruWkRJs1ZPdkEFhb6GhqfScFU2rcZ X-Received: by 2002:a05:6402:190e:b0:43e:1588:4c32 with SMTP id e14-20020a056402190e00b0043e15884c32mr3089369edz.76.1659634650978; Thu, 04 Aug 2022 10:37:30 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id n9-20020a1709062bc900b0073082518a55si1374155ejg.363.2022.08.04.10.37.30; Thu, 04 Aug 2022 10:37:30 -0700 (PDT) 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=GQGFFk+1; 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 AE01C68BA09; Thu, 4 Aug 2022 20:37:25 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073091.outbound.protection.outlook.com [40.92.73.91]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8F24568B9D7 for ; Thu, 4 Aug 2022 20:37:18 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Gg/aEAk/qCMi25xnnz97YJe5UEiBeIrqJAP+63DBcpRcEHNiY0mcfzQaII2wN/H0kzRSmuiOT/uusku0+xz8FFS8IdeUkjUMhtLmG9wLBj1iFeILGdUmyt3EmV788ILhK8l7vl1s5Kqyliy9ytdo53Z8pry2/s1mhrQbMztFVgSmRZhYjfHRqiIbbR183XS6GFikQE4J/twKGEcKmN98j3d1RXSFXpMqiK1AeLGnb6MTGMgwHwWsoKqIJSDtfwNeu1yJdot866EmPvMQBfrOVTssMCKMt+RF9u7bAgseFS0KAaPMLfdz1BH0ic19kwBw5GH3mHv1H8/wGjrW/RQUFg== 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=ynVwG7DyGOp70pYKvrjWCf6WyPz8/3CD/4hm39xqqCo=; b=hZnpsb9uInkI6s/lJEBsrfp3Z/1qJ/hjquGdO2NcoSlVW6hE47xkN6K8K4qg6IXbjOvwYZEIvOEBi5NCFTrHda0Gv2drf5SQnW2UksaVgF02sJ/F7gDD3xMN2hVfsqRb5mGmm5lpezaYQTggup8JpJWoiVkK6xyiDk6SWLv1iEtLHSVMeY4l13Mn6gHoWK04dnHxYBZykLWg8uxMbkpyx+Inc5svQ/FfTilGWy0EUSLwMiLlTNOgzEyo5lwRe0xxyMsPpnb1O0IcrSARi+/OaPnm1y7M07Y6jncBz6EQoTPCZ0/2vvlira/8KGEY4gpoh9xEkQ1GtCiM3JtL3SgvoA== 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=ynVwG7DyGOp70pYKvrjWCf6WyPz8/3CD/4hm39xqqCo=; b=GQGFFk+1Jps5+fqbW2XPwps+lkWPJ+1K7EiHjyjuFRa6gCtGwUWY33ETXNdI/jKPNcyB1hjb7r0ssAwVoO1hfJXWzmjQYCM/sXi5J/MNrkUG5J8aofPC4z6PjyaG28SCi12AHMgv976ogd1uepuCpDEHN17gz5kWU8wHj/6s+1yE7fwp8eCLHP4Ipq8ehTcwtw82OCvKzNsuFmNrv/jUDV56iN3pdps8ogZ2WmuQp0E/dg2coLnm95E7SdDs5NAN7V05i0jDJ8K1Sgd/Eoq7dacFTw/ATmlqbEyUzpQhi+hBQoZSaW7P33kg5fxbtUf0PRKMZe/nxt55v2n5ez92PA== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by DB8PR01MB6503.eurprd01.prod.exchangelabs.com (2603:10a6:10:154::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.14; Thu, 4 Aug 2022 17:37:13 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46%11]) with mapi id 15.20.5482.016; Thu, 4 Aug 2022 17:37:13 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 4 Aug 2022 19:36:49 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [ICbK9LoyxzlzZ3Hb3J2xbdIyNaO+s2zZ] X-ClientProxiedBy: AM5PR0201CA0018.eurprd02.prod.outlook.com (2603:10a6:203:3d::28) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220804173655.1561196-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 54611baf-86fe-408e-96e1-08da763ff764 X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UIOfcU/WhyXx+8uuhyM+VSeft+tPVDDzy8sUIdzH2XFP1/tP3uKTUerXFWGFLkMmGI5yXgm4SW5m2avqksEts71ln3X0aVU8aHsmBIhw/IYI/YEhQ2YCS1cJHJgRsbMnvpzdKT6XB/+VNqltpDFTuMStFiIaxgosgFkVHYXrHWx9xDI6FBGeSQAndqxPZhmOXVMsiDh7mq2rzCkFhmNuUUgqyrExL1Mdk7psvnp9l6u7QG9zhLT32Jk58YA0RttUj1QjyUzZGiWWG4T9ZSL6ZCUWN/c1iNQ8UP0hoTU47RZbDWnhTHxhZAr74qY1pWDAxv3ZpfKcw00JlHesXYyYtZRJoiBJ+KEYkwlffyjPmTVFUyaUNiLn6FeLvXnJN2DZBI74WBUcp8fyRuLk1h6nBrED2M9eQCT+u7iryUAeR6J8uBJJIO81QXjif9RajzmynjywAa1Ey87LcGm+ASKHqy5MwoLCrtYfXh7BNVJ4V6JnR77BzYMWzJgH4e/BI8xOgEYHVaX8sILL9VGY5QP1L+FQtcWk2bNYkh2jRzlhhszC35+wiMDT2DshyxnUO3FALxQeOoPLaoiaQFw6vb/qY4CvIXst+hl6T/ONV+oA5yTlHvADewTzRyISl+VGd1DPWPs0xqVx+LwgjACKmOJNkzgUMjSomqTAdU1aRuXIbhbZboHAt3qVzzir7aq9pDs89qetdZbjrEREA== X-MS-TrafficTypeDiagnostic: DB8PR01MB6503:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YMjRWd4ejBdtCBF3/RJSu9tUGJvszKmionK7F+fL94QfvuWrRSu+sAy08++H9aJdkGexbSkVEqdfiPQqyDeYy5Laiwvc5dXZ8lTDgrK125FZ9Qp4yZTfWigMtnr5jl7OznpVTMoM6tiIJaHjaIHydQwXcimDJhbWwQ2Ra3FNaeL9sXbekVgr3bY6QS0h+D7v51++Qx/JmHs1sANfdl47QPUX11ZbWWjvYNOLqlbjGB0McZ6GcBq44B7j16UWKyRWeALFCJJaSACRhqlWi6Wnzg/1XRQzB7vlaQpBSvMC2ppnHpPHe66G6oNnIqyMB1rcWWK4cNYapdB5MqyHvwvVIzrhXtEezhmJNSgAzE2CB5ly5q/b9ZlY0+NBeebTX1lULjjP5HxfRz4jdFO+8DeOABrhd53QkHOgtNfX9v5AKSpTzN0zjm2JxJWeqJiY6Cc1wXJB1igCKpSFwIDxfsUQLF6+olnt7BJyvPbqPMKrAMfkpRkvdudF9rYC+CnuirtT6BsvrhfXuLMyYKgB5POD2bXyv+fi2irgiRkF676o/RuVWunPsvYLt2uVXxnD52nGqsROX/3BO9FcZ7HVIlrnULcUDCzcnj7luqjmYsYrA9JYOKzP2uNfHGvqLUSo4bnEWyLjCdmXti+i8vF0eQ5RRw== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Z52p2/z5uiDR0i2oSNxt+Uv/OG+7E1hVzQ2yns3zXa5YfwkF2TrtnhgrEARW6oq0BCxXtTomGqmRjkOskCLHKI3WQHk5uZzh9YxnHGDnIkibuV+0BZEl2a7oxi4OBsdcH066a+Q55mSP7x5p+8SS7Zq9CW6Kyh3gFra/ul15y18CK/CdcezP6bSg3CC+sOS3ihkuOosX9+sXGlRXXeV7GoKleBupZOGg0l08aOqIhn25sJwEiGJrzzIRCkPkKX+m5YOI077RrZHScQtAsnPFRASP2DFATWLWRPQkKu0YTTwc13zaX37mZVJkmo3HEWDkGogwjmgIykJHecaMjogWuE5vS964K5kuxdy/xd5wE1uFL9jOrNCVTMSGHgXW36rxPdsanClAZTkif1DBS5GEGdpSO/3MnGg4MKQ5gHLwjqxB6Z8t2EMy+syDahZE6/rspWfTMr4XQZajQdk5E4z3nfrrmuJiouOepfqrJAInS99Qb7DU9IQcjQeMSFmgoqOqw+ecbNkXim64lFc5Rq60BThE3ye4kKKtfPhYQ1FF/471mRvaiJcASrjCQI/+O5mC+75oITokOeSfREGdp9X9T+ye5P2vGzaOCOiaoDcZgygD4N4i8fcHhUZyCoKI72DxD9ME0RyMShXyXzwRBRZWazZrRZQtk3pvWiJkukYX0rVMAB/DHu9Kjvq2K4aVzkcm1HFemOSQ+mp8W8OQw2i5GGOQDPxlXa8+M8kt/TAKNacti8W/A4sgjaijEB12o7UUfrbMovqGqckClXlRFxFU8+J+j9CXN1WZBK4z17VhLGTEqjIBOmKTtuwr6HMD+nE1myGzJnpBk4/07fn7JYNRc4ZFzt4dleNDYsAh+3GxX10Hq9nYlpXccQhyukAfGTsraOQmgNLd0qUhmKYcdBnPOyWsfp9E3FLAxYXq2i75oCaQ2Jh6iYaEjg/3XrMz96j/3I+XDBGAd3XoRQzFxV3tJeNtMXh3W/j/ieOkTfIb5zbfFv01yQCCmrr7qglrFO04pCGeepHzmi9YGL0/ZXsc6VYg9hRZhu95Yui+JcJHIB5EprDoz4GKIP25hQvaGesQCl8FakcTgG35ChOex6oDudXOY6I6v4RjvHXMN0wY1AraoNLdGaJwHlUHQ2F68JHRiNMCSP0C/UtB1f2tUNGtKPCAfZjqHVUlk2nj3fK5rZf6aEkjGvj6WYNuhhLSOj5zXNYLCIbUwoEmW5Xoe6Xpu70FAFR7Bx7V5Ek7S1LWxVN5NiQMkVvYdVvi8mvvPFUoGA2F+EdtqPRv8z4rem3CorSz4EOR1qmptjKRbDp9N8k= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 54611baf-86fe-408e-96e1-08da763ff764 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2022 17:37:13.5053 (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: DB8PR01MB6503 Subject: [FFmpeg-devel] [PATCH 3/9] avcodec/cbs: Remove redundant assignment 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: wnnftBpv+RTB The code just creates new references without allocating new buffers for the subobjects; therefore the actual data pointer stays valid and need not be updated. Also remove an assert that ensured that the calculation for updating the pointer makes sense. Signed-off-by: Andreas Rheinhardt --- libavcodec/cbs.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/libavcodec/cbs.c b/libavcodec/cbs.c index f715e463a1..43329a14a4 100644 --- a/libavcodec/cbs.c +++ b/libavcodec/cbs.c @@ -955,17 +955,11 @@ static int cbs_clone_internal_refs_unit_content(AVBufferRef **clone_ref, goto fail; } - // src_ptr is required to point somewhere inside src_buf. If it - // doesn't, there is a bug somewhere. - av_assert0(*src_ptr >= (*src_buf)->data && - *src_ptr < (*src_buf)->data + (*src_buf)->size); - *copy_buf = av_buffer_ref(*src_buf); if (!*copy_buf) { err = AVERROR(ENOMEM); goto fail; } - *copy_ptr = (*copy_buf)->data + (*src_ptr - (*src_buf)->data); } *clone_ref = av_buffer_create(copy, desc->content_size, From patchwork Thu Aug 4 17:36:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 37130 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1649:b0:8b:613a:194d with SMTP id no9csp536666pzb; Thu, 4 Aug 2022 10:37:39 -0700 (PDT) X-Google-Smtp-Source: AA6agR66USl70O5tf6hzca8DrG1N5cTaqcTJHfu9J3T9cDuGloTmDwDnfmucDgtsnHqnGhwCPt1+ X-Received: by 2002:aa7:c713:0:b0:43d:40ff:5f16 with SMTP id i19-20020aa7c713000000b0043d40ff5f16mr3135486edq.256.1659634659570; Thu, 04 Aug 2022 10:37:39 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id x8-20020a056402414800b00435be2dc79fsi1299275eda.572.2022.08.04.10.37.38; Thu, 04 Aug 2022 10:37:39 -0700 (PDT) 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=M3uDvjaz; 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 A6A4768BA08; Thu, 4 Aug 2022 20:37:29 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073025.outbound.protection.outlook.com [40.92.73.25]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3EA7768B9D7 for ; Thu, 4 Aug 2022 20:37:23 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FASClGT9NEcPr2KCaWNZIWXGO4TZWXxJ7HcYz2QMppHqQLO8VQ1zhSnooHNBlxqZzW32cnw6pXB+19DaorJMAGLyRi4QdMFsDItJJDBIVoLoZCM3IuQ2z2G+RfMEBaUZqVuUL14iFLH+4KosqCbUU4Uv1OZWI+7jlV/57N5uPb/HLBWNpjfCP3EYGpa6L/SknFpV0JQ6AZGPd3B9VZIzfdhEFB7QtJWc9DrfTmm+faC/OXIfgZEvVs3u13UIOiIPcZzoSSvPsIfs71SFlWEgvhw1uzdYU4/P41ME0rVRilc+We2yhp5m3BqnhjDb4gB/dbLG419an6fvWlpGtklkKg== 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=Ncl7ssVexuggikjyO7d0/is99HTCpJ5qhJuBCZ8QPDA=; b=n6oUla5YLH2FsNzUfzqI++ua3W2yhFhXUAfJSNO5aHwx3kvX+MwdTHTLh0aHlI+utYcl0pFPtVKd2P9MZwdxcLKkKe/ADON+gignZFaGkF94Pgco8iqpQ4SJNU5fvnsQOrjsRLsyAKX9XFecGfCmMcdgq1acppAXcXwUg0YlCMkS4I2ydo4o1w1j6vrvsQEE7YJDDjIeR9vv81oxYE6ZTguJq/h72ybVxAei6PEyKBRihCla1TZfrYkjuPg+UE+2aVurcttJW5ZN0tGBvWBj0Z+wDx6sEhNcigOzfM9/AzLiTNmj+jivOhkRcBBFx0O6AuEB2Q88jKtkPu266ZFl9A== 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=Ncl7ssVexuggikjyO7d0/is99HTCpJ5qhJuBCZ8QPDA=; b=M3uDvjaziyu+JK96kWzkhrlS4v+gnZ0GW+z54vMcDIm5kZv3BGPAcCOdWzaWI4MinbwUoamgiOsi8hddz1qU4JW09pJg7w4nuvZ0/7NUQ04CYKZr/tLJD182Wd8sd30Kuvmkor7MIodx08G12ldcHQa33SO24J3Jwd9chhuagv9hbTddA1Z3/14/HNMeaArH1FNRdTomhwBznNLJUbB1uRmpNFh065jCubgUUnrZKZ/29hyHKaOfScAbW5Py2T6UXqJ3ylL9UYKnesx06tXqPPb5/tyTA7dqpDZpUiGmwXByiEMlVkndfwfHR6Vg2vfSBQh8V8sortQV82wp8PUVpQ== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by DB8PR01MB6503.eurprd01.prod.exchangelabs.com (2603:10a6:10:154::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.14; Thu, 4 Aug 2022 17:37:15 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46%11]) with mapi id 15.20.5482.016; Thu, 4 Aug 2022 17:37:15 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 4 Aug 2022 19:36:50 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [KdL9rxULfCSdxFc2uNRs0RyjoHeYAfvL] X-ClientProxiedBy: AM5PR0201CA0018.eurprd02.prod.outlook.com (2603:10a6:203:3d::28) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220804173655.1561196-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 11675321-1ed0-4cde-abe4-08da763ff882 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNVBLZe6CjjWHQcN+6fAcwmpl8vPY9KYsLkeUGaokcyalQ/bu+cxoxpYLv/X7aTnfzUKQfdKgQqYp3Sqm6UeMl3aSiodnuPklqbEkUBqBkfWXPzB+AGQRSYq+FCDM8ej8983mhCX4GcYvlVXogNfsr0lO1/2Re3zwtKs7YEbHcEju8BuC6i/N6a24HWmoZo+dtBV/R5zAebyrKkyDKvv6liDDDEcPz8jKFX2d9jmFKDD5DYLqljhwNnMZc9fLb/FV4pUHhwKwk+E2CQ6tGsvpinZfVGh6EDji4ZT90FAWJ1aBuIRjeeSC+jaYByp2K7Q5vP0byZ20WeFwKrOvPhG+oUBrI3QLYkrXL4RW2BZazHf9yU7W4AHazn26B6vkAzsQjl4qqR3+bSqpciMPU35JtjnS30dLuDskJ81K+ex4DqYX3PeuPkZc0AU9/hpSBSJB6FMVYXRSxFirD/pFaFiG3BLZIoWO/8ArCMCpifsehwW3saqPy4Sio0K+5hlCn1n2DwyenMDjm2EAEWLKdG7rIgdCIpYuUSoeX8iCik3mGgrqxDZ255ioxNt5Yfwb6rmsfJnuf1elk7J661LtITHuCBLPenGlF+sDY0AwOEbG3GQ3IpRrKNwtQVfCdNjOZvUqxhc6nbe6GFde1Vaqust7ZRbDl2nQrA9b84DJfej8jIC5M+/Ug9n/YxwkMNGHCUQckjQoDBHabvDN8YowWadUtFJkibj8T7yUqo= X-MS-TrafficTypeDiagnostic: DB8PR01MB6503:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +c+ZLkMRvq7xR+ifTL5fpQ2P6Rcf1+WSS3XhNS4vU5R/MB+aj6BsgxF6rXbVAyJl/Di9yq249iH7sHZr1sn21cPjyEd1cSuAW/mR/zivNAa7Ij0zPCHYNogKhy+Vi7FVm7nkPjkPM4vTA6F8LcjV3BR5YyAq8qiI4c7QFbTksDdzFMbWkUP2mgwp4SilWrmD9b5J+VUw1+lef5OsNF4WxnVdDg6p/fMcvt4o3oorZbPUfqmfPzZK/CTPpMgZMdiskZ47ztb3hgYjGqhv/7uD/RX0EvpPnCA59393ATF7nEedQaF3qHW+gJviSB6ah172tqSZqquErLdleqBhXWRjAZEhXpQEfslbKFaAs1GciwyQYCx0823avXqBbYzfEgm6V/s8eD6KzaJii7tE3fs6wwlzSCC7D4jNit27eICkQYuGJsoi55MSSyobQQ/9iZZIHL8n8k2WWII+GnblUJHoLD5+BxtE5twlP99vJou232kgR3MvY9uvVqQqgr0juIbA2QRvkiskc/iFIjGAhMerCnjtlWN+g7cFvqTVPX0MAB6Aeg7UEO0DU+eZlyLNVFPQynRZD9Xc8KLE7IMxDyE2RKls/ZqCVMl3tmJB51IjBkgQxR9XtMevHEo+tJggXIqnNqo9QZ+buoYm4GsW74Tl6A== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: maldLd64ufnVbwItiKw4kl2OuExB1G/7eX47eMtiiFqU7suz94ylQfF86lBa+pznhbqVokM5G5JKIKqMKWQPMEdrfdgNG/I+xtyO9lw6Y33wy23QdHk6UzOB4d0G8deOr8sTO+xyKJ46yyRyqYXd9v81aZ2yLId1wEj6aqJKTKVthbGZZ1rEDgCPFmSesPUm0y+zR7hZw9aeAsfmV9nSzGSgBG8YTvqpudkVgvY8uuoZJZAPTsbht9r1PqVqxHgncHm8eJU7QHKf5FzRieWWr2OXDH+gQGaUuDhtCZQesIlClNM0+EKQrnOEdcUlRInFgQ+/mLkGrmX3klq5YgTus8COmbbXt5l+9TivhKTgNi6FxL85AUx3yC3720K3XcakcqaJkDiLKF1NWuQHLxcylFchQvClOs8PzML0UwHhLBGTmG5vV/PgcNwd+rRZE3vQO/ukkXJWE7/JPCetdork1ET4J1hL4cPId1CdMcEeF6kdGF/or5i+uRWXO1bAhdv4Hupk9JIP9fhVOu+KRVPwkLCm6o5MnBR6e2yMgSjiRht5hmFpMUZTBlTiv/422KtNSCUp+t/MIX0bAcnaK1uKiNZjGyggery2sXYwNXPeHZbTeOx5fR7FwNFd5UVn0egUNrTqdzwXCho53EO+Ukv8IaLNIV8WNv1m51Dh5QEBZCEmd9KHGOxNdAQqqdWS6l0RY4yOcIj+i7mGgjkm5XOl9owr44+wYzEhOscnhBthPPfAww8Ldu12tab9uJN4n0qA389LIjfJbqMIExgVkllF3IytHjZnS+IAr0n0SLiVeDLKHH/AcIRXkszx6zAnEmeggcI05Y1VmIxN1qQziWRuR6OD3vxtYnMxPZurmRqJY7Z3xEQ4cFT0K29TosHeilyG6PDFJe/wXaB4dTZSp5rmTks5AGNDCyMFl+rD2bCq/4KkqEmVeQTzj92P5ZqPgj9X31DuSo9SZREPhEn24XWm62H6xmu2I+VuuEBlbT4QT4Iqu97KrCbdOLer57kTxQqvvS+pFaElSDwllR/CD+qsWIjJ5nj1onWev4Vvi9AJN/qxzBk7hi8+loYWCy/RpaFcczB7dbSI7CYaYuspmWvH9TLM7oStXopAkj2xSeiAGyuTr6ryKdCX/1CdUzE0nJaX0+a3d8bl7L/s80fsXv+1ZmPjHAYoljdLEPRWvBxNyWYKmW6PEjGvpjkC1v09ECm7mj3KuUBwOYAsz/C5dBraQC+FPLoUb0bwaeQ5kET3o2smCjTrYJmVVDr/DOMInxIAD/3phQTim2JsmURUaGEKg60WqD99eRH/8NtkF2Ic0Ls= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 11675321-1ed0-4cde-abe4-08da763ff882 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2022 17:37:15.3489 (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: DB8PR01MB6503 Subject: [FFmpeg-devel] [PATCH 4/9] avcodec/cbs: Use smaller scope for variables, add const 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: XRma65jjMh6E And also avoid an unnecessary indirection for src_buf. Signed-off-by: Andreas Rheinhardt --- libavcodec/cbs.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/libavcodec/cbs.c b/libavcodec/cbs.c index 43329a14a4..c81297ec93 100644 --- a/libavcodec/cbs.c +++ b/libavcodec/cbs.c @@ -925,9 +925,8 @@ static int cbs_clone_internal_refs_unit_content(AVBufferRef **clone_ref, const CodedBitstreamUnit *unit, const CodedBitstreamUnitTypeDescriptor *desc) { - uint8_t *src, *copy; - uint8_t **src_ptr, **copy_ptr; - AVBufferRef **src_buf, **copy_buf; + const uint8_t *src; + uint8_t *copy; int err, i; av_assert0(unit->content); @@ -938,16 +937,16 @@ static int cbs_clone_internal_refs_unit_content(AVBufferRef **clone_ref, return AVERROR(ENOMEM); for (i = 0; i < desc->nb_ref_offsets; i++) { - src_ptr = (uint8_t**)(src + desc->ref_offsets[i]); - src_buf = (AVBufferRef**)(src_ptr + 1); - copy_ptr = (uint8_t**)(copy + desc->ref_offsets[i]); - copy_buf = (AVBufferRef**)(copy_ptr + 1); + const uint8_t *const *src_ptr = (const uint8_t* const*)(src + desc->ref_offsets[i]); + const AVBufferRef *src_buf = *(AVBufferRef**)(src_ptr + 1); + uint8_t **copy_ptr = (uint8_t**)(copy + desc->ref_offsets[i]); + AVBufferRef **copy_buf = (AVBufferRef**)(copy_ptr + 1); if (!*src_ptr) { - av_assert0(!*src_buf); + av_assert0(!src_buf); continue; } - if (!*src_buf) { + if (!src_buf) { // We can't handle a non-refcounted pointer here - we don't // have enough information to handle whatever structure lies // at the other end of it. @@ -955,7 +954,7 @@ static int cbs_clone_internal_refs_unit_content(AVBufferRef **clone_ref, goto fail; } - *copy_buf = av_buffer_ref(*src_buf); + *copy_buf = av_buffer_ref(src_buf); if (!*copy_buf) { err = AVERROR(ENOMEM); goto fail; From patchwork Thu Aug 4 17:36:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 37134 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1649:b0:8b:613a:194d with SMTP id no9csp536745pzb; Thu, 4 Aug 2022 10:37:48 -0700 (PDT) X-Google-Smtp-Source: AA6agR5P0MV5BW0HRgL02mPr1YxFR+3cRtNlRqcNhqEDZweRHG6YheyTZWBLAdIczpG7+0l0yHqS X-Received: by 2002:a17:907:8a15:b0:72e:ead3:16d4 with SMTP id sc21-20020a1709078a1500b0072eead316d4mr2218280ejc.16.1659634668751; Thu, 04 Aug 2022 10:37:48 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id hr18-20020a1709073f9200b00730638d91a7si1461382ejc.405.2022.08.04.10.37.47; Thu, 04 Aug 2022 10:37:48 -0700 (PDT) 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=YcxLLNFh; 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 8167068BA20; Thu, 4 Aug 2022 20:37:30 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073091.outbound.protection.outlook.com [40.92.73.91]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BBCB468BA07 for ; Thu, 4 Aug 2022 20:37:23 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IwIKP2ooyOVb+c07ncOnnsHV7y2Ogr8UDV+ZyEPPuqSG88VF2SAH4NWqYHmjXXNo6sdyGyQq6hcjNuRQt/YoC0mSf/8bR+6mpA4sKWgvbkZC83kjwt5teJ6Jw9oBvjI8j0NYAMI+0tGwuiUxVc0B5nkc7qlT3mjSrA+GPVE2VwUhQFIK1+6JS5pWtSLdvOPXFYXEUlNNqePIuNMfLaIG95TigHF/zvoFZ5Ll8uYRWIFsTXe8WBQRpVO6oUl6xGd37zKN/aICsAFe6eIukZ9kdaX5y13LMIyd1AlkOMr1Cg825nrladWRQ8zVRbjMQ8lOv02ByFgKrT8IBBVO49mw/Q== 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=yTnk8I38a9s//hpKt1xnEIBSYNlD7BpBBc1LTmRiBbw=; b=QVmoG3OfnksvM3aj3FHCx7jQY+GcTrCyZsg2+7cPswHrFe+8Q3CHFsk6eWm5KD+Dc0APy+ju1aNp1woIDDS/9jx5OedDpAtMRUnMDIedjCcx1Ge3Rf29B0Yxwhemw5sPAXTzkdRhT4ZvCRFjO74yK1lVvp9x546YrRogU9mEtbtpdROpgf6BNce4m6ZPzi7nZ2hsrebvzf4v/yT4WAYGa/efSe/YOeKkL4hw090yKBrfwGynOyagJ2MKCpRWpCmkR8VFA4teYPSXGTVEv4IVbZu99N1oJDjbA1QGvDtB+lfRzh6jDoJuYuKW2iaq/dAmA+bI85kT2lIOf4ncaLGrVg== 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=yTnk8I38a9s//hpKt1xnEIBSYNlD7BpBBc1LTmRiBbw=; b=YcxLLNFhmA6ndJ2VJx3qbssgvsiLx3TVFuXdsMyme1DRgIAThr+9zAsJ2hdkObCLIIMZNYIWKhHEcMFw1VrqCvH2nMrBWh5WsxvKbpk7esOg7YHb2Q0+Craw14Drrq7yi+qoMyhdUbJ6iqgV+Cll/0lAK+Vkqlu/uljuqntxK84fLupn6jJtLMWfTJ18cNDz6KRk+BHLX4LhHWa9JCwdmf8SKWwtbuV4mDRV+R0CYGhwRSTVnyFlRFTT4SC2wmf9EEyykddqRJldsPAHydqR3TxoqDN4L3aCDLU+G4RJ4yNEMFcRA/S1Dfs/dKzqTdgQxwoR0kRUrp/jm2apfYmgsg== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by DB8PR01MB6503.eurprd01.prod.exchangelabs.com (2603:10a6:10:154::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.14; Thu, 4 Aug 2022 17:37:16 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46%11]) with mapi id 15.20.5482.016; Thu, 4 Aug 2022 17:37:16 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 4 Aug 2022 19:36:51 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [Y8FYcXijTzyOkXTBa5vWFjux7j1HVCW3] X-ClientProxiedBy: AM5PR0201CA0018.eurprd02.prod.outlook.com (2603:10a6:203:3d::28) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220804173655.1561196-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4d49179f-f7a1-4e1a-a1f9-08da763ff91d X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNVBLZe6CjjWHQcN+6fAcwmpd8ANkgQ9hSqYIHpmZvn+6f5xZ1SscrQYmBcK6V0dS1DeeZELt/ivJCNEJoUxHdXGo9noTmWP9K2cUbyB1lQTiCM4peaVNMvCzUjifYQRfoBnFKwhOnqsKsw2Vcvr8JaobnJeOLaI4Kq6OW+u/7nMGIgK0AJh1lWUWUB2HojWZvXdG2EuV/ws+sdY2nJHXwTPORarZ1Oh9KKXwkfnMXUrltUYuetjf6ra5lPsrcF6O01MfQ5RjdO1WotWBXofMhTrm8aC3RdQMe5xZAmIrLx7/9Nrc5t3T7CHLNhEZqixqbDUJe3VgZj7j3wGO0MXeZoa8jXyJSnGlSdboO4HO+6uLSYmewRrOPdEmS4Y0HC3bNcv4kq1Mv8GjMnUcLbxpEQfTpdrTVMTVHntFktehwAahXuTXTFo7FPYIk+LBBtfMYxmdAiargRogdCQQF5zm3JV7PkIlEGiLHR7Medn/YlJz8oC26m5oHzsesuREM6f9vr5V1GlQ69LXjkZRFvV3hyZMuuvlMnScYdX3Ie0Uuf6jfw56rTH6Gsom+6ba6+LC/CL/HCC55Q+kgnGd/va72Z1RVTDYTKVhQrYOjYzRYFmPbqGp6VoU2brjUi49ADTejMbq/u27h7VJUdZaUyU3fGl9unVyMGMMZLKqSbnK7u2QVmJCdetglR0aBCi4o1iE52KPazdk1s+r0SEh1c4YTLZWKZDLT5rMsY= X-MS-TrafficTypeDiagnostic: DB8PR01MB6503:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tDfVHq8YyYWmoq6OSxBuETPWA9EdaHi9GNyRdtKyGpw+5uUTkEERzl1m+1xQFXZHmyBL07GdNXnwMJWO/cEfM0cljQkvqi9I7MVlS9B2iIPuYGuZrwzRx+CjbZK54oW8dRICVrGseYqUV+BK3dkBaksKcCOvdzua5huHLcIYaNsoG1XvgLFLhGpS1kManNESGn16cw9NR2Jz6tjx0OANBEMmzhGnPFndeGMa2xt1cRnABz9Edakh30dVIXKFusR9lKpbx667YJXVpHonhbvCZ2aj/phgYAhJuzlAXlrk/UmuX/xwnPRQNx87INUd8rbFEVZiuCRKtYlm2D/vijHY70QNibyvgU5EU4pHaifNac/NEsvpyIXjFg6UHGHH++Jh+SUPBJozLhIzDtnNKa2lKv+kHAb14vPCoz7qamqTXcWOVVOq7c3QktKe7Fnu7M2qY2juDV3Wjgwo9cIGVR21vBsgZ93fW0mZ7Vt/pYnnvvQKMPouvEbYDtXKpXUZj1lGfNPtckX1NtkIWFc/cTzcUsHDZy6PTULqZDbrFj2lXpIz0mNCdA0Uui4qrUtVtIJ8qZ8V5RfC+vWMkKiT2/m9MIW9Jm5CAorWpl2Ucb0qRHaHdCuch7wmi9GqziRtVGT3huwbZU2o5hu9bLqzKGAMvg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Y+E/eVLwI+BmHS3Wlj5B9qKXJzys/FYhN5mBTQoua49tn+c1JcdjLfIUen1KknUkJ4g9n3QIlC1mijdi7GCA2xqvsjpX7laPBhbsVoe//3e6II2kRthAP//iEPgECYTcXo51MyIC+JMkbaO97iarKq01cqxhQZAqVlQAFZqUacUb7OO3zjtuyhuNvkp/2rgzLV8R2sHeCET3+qI+wIaYGSD6Kc4u5hhgkrI5CE98d/Q+nEK8NeKJctg+bV9iXTMsCtszpiiGPjXovTCI5Vrdy7hKh3MEOvOrj4p/vi/8W+TdkcTgiNquCWQJJQmj+BAQaQ0SOrHcMC2Mn6zS2M+ibKssXLDeUsOvmSmliR3RZ0KpRELQwFR1ffgnFC1SM3RVWMH1g0eKfGT4B+vQ5ouQzWO7FVNc8ylxiq79CMdglr3trflBurGad4nMyWMmCP/ujSEKg7fjFct5RsnIVaF5VCbEQ9+gFhTASe2prCfcF152aILZWHIpuYbE9121S+PczRy5/hY6KGL5NUzpKcoUJpGxf4Q4I/0pBN3rYH21vW1ciU+YjcsBSCHITznSMIJYtbpBuRqN/HDJReXRQjx5hGhqthtXS1K85Z6YuAXV+vFvOj8E5tNtldTHzlFpmR99+ufKHh/5F1ne2z3WQWPqpxVbNIuUaNeAhqVRTiZaguQuMdaTSuQKsZwYvCoGFtnI7s7XyBOY0NesD5FhH1CwE3TH8eYofPNSTgEPOIDkJTaLZRA+5oHBsHIORCsk/3tQtd1ydLUDShHRHGp6w9KBvkHLhUVt52+kA8tPaIMM2QUbzG9hTd/7fNlsG1I8t1klL68u7glLGd8hIXlI7+fJsqUlnNId4gYNZpz3BaAvTOWxWasYBC+bOBPip2LN0MzePHFLfJc++Ch0p5vW066ZmOF/xLY5pSfWSJZKuCo0SsroQWHzoRKod5ji+e4mNWzU5lRYEyCu45Kr7xbj7w8wzq7VDn3X3cRz/r6JPSCuXxAyQoekav7mrZYXTMBEoiD8ILqtVR1vWsC2PbS0raYDYnE2ER5vvghykBThjy53TIpDVP3eBVsmagq6EHGvRki7Ci7pgGwlRfIFCwq1ODcoiMlkc4iw1jIkMVr7NmnZ/kcZdVX3i/hAnK3/GtcYgHaqbEBzm1W343p+hKoU4QFAEFeahi4pMxTjgtc4xuS2lP6UoX1JB6vaPGZmoMBXkizHJv94V80Jmd+EUElF2orjzje3+AbCMmkEwMNHlw7izRZJJjY969Ia9N7YbuPxwycPXSHhX36KLOHoy3Y5SGQpXgtVQebBEVG6zujcbxUZhQ8= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4d49179f-f7a1-4e1a-a1f9-08da763ff91d X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2022 17:37:16.3176 (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: DB8PR01MB6503 Subject: [FFmpeg-devel] [PATCH 5/9] avcodec/cbs_internal, cbs_h2645: Add and use new descriptor macros 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: WRZzHTdlnyjy Signed-off-by: Andreas Rheinhardt --- libavcodec/cbs_h2645.c | 56 ++++++++------------------------------- libavcodec/cbs_internal.h | 31 +++++++++++++++++----- 2 files changed, 35 insertions(+), 52 deletions(-) diff --git a/libavcodec/cbs_h2645.c b/libavcodec/cbs_h2645.c index 12e38c80b5..117b609dc3 100644 --- a/libavcodec/cbs_h2645.c +++ b/libavcodec/cbs_h2645.c @@ -1396,18 +1396,9 @@ static const CodedBitstreamUnitTypeDescriptor cbs_h264_unit_types[] = { CBS_UNIT_TYPE_INTERNAL_REF(H264_NAL_PPS, H264RawPPS, slice_group_id), - { - .nb_unit_types = 3, - .unit_types = { - H264_NAL_IDR_SLICE, - H264_NAL_SLICE, - H264_NAL_AUXILIARY_SLICE, - }, - .content_type = CBS_CONTENT_TYPE_INTERNAL_REFS, - .content_size = sizeof(H264RawSlice), - .nb_ref_offsets = 1, - .ref_offsets = { offsetof(H264RawSlice, data) }, - }, + CBS_UNIT_TYPES_INTERNAL_REF((H264_NAL_IDR_SLICE, + H264_NAL_SLICE, + H264_NAL_AUXILIARY_SLICE), H264RawSlice, data), CBS_UNIT_TYPE_POD(H264_NAL_AUD, H264RawAUD), CBS_UNIT_TYPE_POD(H264_NAL_FILLER_DATA, H264RawFiller), @@ -1433,40 +1424,15 @@ static const CodedBitstreamUnitTypeDescriptor cbs_h265_unit_types[] = { CBS_UNIT_TYPE_POD(HEVC_NAL_AUD, H265RawAUD), - { - // Slices of non-IRAP pictures. - .nb_unit_types = CBS_UNIT_TYPE_RANGE, - .unit_type_range_start = HEVC_NAL_TRAIL_N, - .unit_type_range_end = HEVC_NAL_RASL_R, - - .content_type = CBS_CONTENT_TYPE_INTERNAL_REFS, - .content_size = sizeof(H265RawSlice), - .nb_ref_offsets = 1, - .ref_offsets = { offsetof(H265RawSlice, data) }, - }, + // Slices of non-IRAP pictures. + CBS_UNIT_RANGE_INTERNAL_REF(HEVC_NAL_TRAIL_N, HEVC_NAL_RASL_R, + H265RawSlice, data), + // Slices of IRAP pictures. + CBS_UNIT_RANGE_INTERNAL_REF(HEVC_NAL_BLA_W_LP, HEVC_NAL_CRA_NUT, + H265RawSlice, data), - { - // Slices of IRAP pictures. - .nb_unit_types = CBS_UNIT_TYPE_RANGE, - .unit_type_range_start = HEVC_NAL_BLA_W_LP, - .unit_type_range_end = HEVC_NAL_CRA_NUT, - - .content_type = CBS_CONTENT_TYPE_INTERNAL_REFS, - .content_size = sizeof(H265RawSlice), - .nb_ref_offsets = 1, - .ref_offsets = { offsetof(H265RawSlice, data) }, - }, - - { - .nb_unit_types = 2, - .unit_types = { - HEVC_NAL_SEI_PREFIX, - HEVC_NAL_SEI_SUFFIX - }, - .content_type = CBS_CONTENT_TYPE_COMPLEX, - .content_size = sizeof(H265RawSEI), - .content_free = &cbs_h265_free_sei, - }, + CBS_UNIT_TYPES_COMPLEX((HEVC_NAL_SEI_PREFIX, HEVC_NAL_SEI_SUFFIX), + H265RawSEI, cbs_h265_free_sei), CBS_UNIT_TYPE_END_OF_LIST }; diff --git a/libavcodec/cbs_internal.h b/libavcodec/cbs_internal.h index f853086fa3..314d54daea 100644 --- a/libavcodec/cbs_internal.h +++ b/libavcodec/cbs_internal.h @@ -181,28 +181,45 @@ int ff_cbs_write_signed(CodedBitstreamContext *ctx, PutBitContext *pbc, // range_min in the above functions. #define MIN_INT_BITS(length) (-(INT64_C(1) << ((length) - 1))) - +#define TYPE_LIST(...) { __VA_ARGS__ } #define CBS_UNIT_TYPE_POD(type, structure) { \ .nb_unit_types = 1, \ .unit_types = { type }, \ .content_type = CBS_CONTENT_TYPE_POD, \ .content_size = sizeof(structure), \ } -#define CBS_UNIT_TYPE_INTERNAL_REF(type, structure, ref_field) { \ - .nb_unit_types = 1, \ - .unit_types = { type }, \ + +#define CBS_UNIT_TYPES_INTERNAL_REF(types, structure, ref_field) { \ + .nb_unit_types = FF_ARRAY_ELEMS((CodedBitstreamUnitType[])TYPE_LIST types), \ + .unit_types = TYPE_LIST types, \ .content_type = CBS_CONTENT_TYPE_INTERNAL_REFS, \ .content_size = sizeof(structure), \ .nb_ref_offsets = 1, \ .ref_offsets = { offsetof(structure, ref_field) }, \ } -#define CBS_UNIT_TYPE_COMPLEX(type, structure, free_func) { \ - .nb_unit_types = 1, \ - .unit_types = { type }, \ +#define CBS_UNIT_TYPE_INTERNAL_REF(type, structure, ref_field) \ + CBS_UNIT_TYPES_INTERNAL_REF((type), structure, ref_field) + +#define CBS_UNIT_RANGE_INTERNAL_REF(range_start, range_end, structure, ref_field) { \ + .nb_unit_types = CBS_UNIT_TYPE_RANGE, \ + .unit_type_range_start = range_start, \ + .unit_type_range_end = range_end, \ + .content_type = CBS_CONTENT_TYPE_INTERNAL_REFS, \ + .content_size = sizeof(structure), \ + .nb_ref_offsets = 1, \ + .ref_offsets = { offsetof(structure, ref_field) }, \ + } + +#define CBS_UNIT_TYPES_COMPLEX(types, structure, free_func) { \ + .nb_unit_types = FF_ARRAY_ELEMS((CodedBitstreamUnitType[])TYPE_LIST types), \ + .unit_types = TYPE_LIST types, \ .content_type = CBS_CONTENT_TYPE_COMPLEX, \ .content_size = sizeof(structure), \ .content_free = free_func, \ } +#define CBS_UNIT_TYPE_COMPLEX(type, structure, free_func) \ + CBS_UNIT_TYPES_COMPLEX((type), structure, free_func) + #define CBS_UNIT_TYPE_END_OF_LIST { .nb_unit_types = 0 } From patchwork Thu Aug 4 17:36:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 37135 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1649:b0:8b:613a:194d with SMTP id no9csp536811pzb; Thu, 4 Aug 2022 10:37:57 -0700 (PDT) X-Google-Smtp-Source: AA6agR7kylvC2ceti+3O2ylsUzy/G03BcEwX9lJ3mqjskwe9t89BnpexYslT6Qky/nXlOXRp1Z/g X-Received: by 2002:a17:907:c06:b0:701:eb60:ded with SMTP id ga6-20020a1709070c0600b00701eb600dedmr2271513ejc.178.1659634677216; Thu, 04 Aug 2022 10:37:57 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id jg12-20020a170907970c00b0073081d6727fsi1354398ejc.726.2022.08.04.10.37.56; Thu, 04 Aug 2022 10:37:57 -0700 (PDT) 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=Kc3OD6p4; 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 6370B68B9F8; Thu, 4 Aug 2022 20:37:35 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073025.outbound.protection.outlook.com [40.92.73.25]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6C94768B9F8 for ; Thu, 4 Aug 2022 20:37:28 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ksp0cTZk2mwanWsUEUPbafuTvNZ0nhegOh/wdoRT75IaIeSarj/aIXLYq6Sf83F498yFS0wxcyfULABbfH/S11dct8I+oEc873iRHKsCPc8TQg7P7wXZla1b7NCLqxWrzqVaFcNp7KQk9P9zmBhnC3zXe3RJ70zlZb1nOIOftTH6cAz4vhXk7r6yNJZnug2qu/v//nn/AASSzYard+8UtxSWUevRRVwskdBQslGVTKek4krTuEMOAFnb9mU7W7fLswxvWU/JTuuBR+zEQERk49kntsh6wlc6DNaKiB1wDV4BnFbA9WNg6u+qEKjE1BK1Ykeeztrq7g/uNe/d1ygFpw== 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=kSoHahWJIbfmD5MT5HYbDOPwesNlvg9zV4P58UuABN8=; b=M3qZE7AmojUzd9hwr2a5y6XGIk/lC6yzzlD8qC7MmBsIe4AeHxQP6Do2fq6iCXoOKsyr3GxduMEcVVANi7eNZpcAYZBSMbR1Q2BW+1brXLg1hLK8kANZpakB7XF5EnC1JSSSDCoCqF3X7vKH2Gd+tt03Gjj63TgTzMhedVZ/LTI+Nq3MoNwh46gsjA3xlOxwEsT8vmhMLI5tpzX7FOQaBIvSF8pFN42XQ2ZFz/lH/KrzS16aNL1US24g73I0UZjHrGEp9WVm+hNraIIj41d+vsmgVR9g9Kks574NNqx5UbC4gCHnNsTW4xyA4O3LkSXByehb3yk+TD2r5UFt+m6v8Q== 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=kSoHahWJIbfmD5MT5HYbDOPwesNlvg9zV4P58UuABN8=; b=Kc3OD6p4D8t1VCLYqotvC0tpAe0fJYtYqq3T5zJ86DZsNyn6SG0pXxX6ICFd3tBdVDI3JsI/Azq24jmTrxxEF5BBuuWpCZinRPvD5+jU4BMfZSfFa5cwj9LEc7+chXk7fdSAUyp2ld+9xNWjzr4SNsm4hnbh/eWcqmtgaOgev+fxidiznslH/9mlhu6KUxKukEq15JB5gfehtbChbefuHJNVddm6pON60KHylVtOTt+UtR+Os15XSljKKN7TlVttFNSThEQp7mMIOLLy8Rv/AR1i/3te6u1aFQmHFbYjpNThLaQZmgA+b95bjOpgS8Q5JIB1BgevXW4jBGm5J2d9AQ== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by DB8PR01MB6503.eurprd01.prod.exchangelabs.com (2603:10a6:10:154::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.14; Thu, 4 Aug 2022 17:37:17 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46%11]) with mapi id 15.20.5482.016; Thu, 4 Aug 2022 17:37:17 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 4 Aug 2022 19:36:52 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [DMKpkvwEYKtpMHoyLJ/t2MlU5d1MDdDM] X-ClientProxiedBy: AM5PR0201CA0018.eurprd02.prod.outlook.com (2603:10a6:203:3d::28) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220804173655.1561196-5-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cabe8016-5a76-44d1-9804-08da763ff9b8 X-MS-Exchange-SLBlob-MailProps: dEG5jEBie8mQ1Nbr3MDquWuavSVdwHSdSw48DfofTHba7puomPvtqiV62cWCf+VePSLmEg9p/QlR2kdLQPMlqSwa3glt1w2zloBkFJN0R/oTbUYXm+JOJCw7qG7WXNjD6a+jz9o0erXxPQzeDpbt3AhKJnGDSNCr1Spva+xWdRuzS3zLVe7RFkyiEhFeBATH2F2uqVVFc4srb7aqzPVJjP2lEjNTb+EE1jpuE5rP/dHhJwEmFhu851Uyz+OZHm2K1bNoXRhKhZ1scU1aq1Odk1I1BNgqtWelU+wW/dlrCZOtsB/n3hErNk9xNFL7+az1xQ2If5dnKP3084qd1TkcUIcV/2ow44iH+STo9C1OVpU2Xvotx/R3LCiauQjNpCPxJQvJ153zTw2BK4LJ0o/XtfQcSLW/8y8fbc3w7scXJdIsOic/OrB62vwLLTBHvBoQSa4bXu7NdbPF3CJwiWmtB9qZJNSSdWO6MV22OgwQ2Q0WMdpUEVqIb6x73vhW2Km7LHMPel8traBFCCwov8OfOnqdHLO1cCl4FRgNyJ+3xBncTSEFFhs0w0eKQzExA+4KnaZAhEjf8EPcaWGwuAycofzVOZ7dyW5pGfx+TrVTp++/aj0jq64iwr3UKwoPTy2zamRQ9xZSByQiTYeS+42z/3dOIhF5nMH+Cxyol/LqXSqQBOYHIB8aOw== X-MS-TrafficTypeDiagnostic: DB8PR01MB6503:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zufq14ff2c+abSN7hU7DS8X7l/sd/KT+GBzNVVzMgTUanYzhMUG3pQHWJBlRTZaXSSUtu2d/0j+/AoQXtv6M7XYdnUpMk84nyKWbETKkwy2ec59QhZrEG556yPS3e1HPq2xMQrD5GpGfUOtHz31JCVMmJZGXTd3yLRfh1rdME13cxsMQKvc0tMHUfLbMocFf3KyEPVjnIepdRcS4rlWP0DyPFGO/q8vV1KaUzZ8IXZH7nTPEBvMNAJkVScqmdx5vH4fmcUCFfR+QYm2MKf6WxIjqdi/W2zAJPAnLz+piatMXDQ8cYqC1pkQnoDy4uSvAlzu/I8Jy0s538P27h4MnFcbQMYiUiqJmTLjxJojsKUPQ1POKZpG05LtGqtrpINoonGMqrfDt0ED4i6piafOZB0RSgJNvA9guBALvsJiWa97PLdSeW/sUCG2ZHafL8sgm8rEzj77vRxV5sHeixf0JHgd8qaOFQfdwt8UwJhbDYaeRFhY4jU/tx+fX5VbzEL3XFV8N2PTlszAmO3g+lbMoPNSUBB0pQmnfo3G4+ToFhRcKJh+4iBtd95oQy6oF8VxtlBNZloIr4whzAzqMZsoFDfmilKq3Xq1qekVT7Fr21hIM/VRVsA/zTu36hQ9C2rv3bXhtkpoMRGkJHWJgvi9PKw== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: macWlVT76qpq5Rz8vRWo73tmS4Vg9cZnPoymunqglb1HALH2u/7+/DzCllV19CNmmo/gxzP7FfdTz41jWEhURzz33Mvb69pb+3tBPRZhbkaAM1NF39Rwm4CJz74t/8wuQEMyvFAR9TtyIh+5x/aQked42u7uNpdeeuL4KnHXWNsK3EHAQ6VMMRxaNJC0x6sXbcIsEKyx7IPVKq0usmL1XwN9KYqo00umPPkfxIWRhUMSW+udkIk2fMijphgM8UqlWhvUqZ1IPLcJANAM0/t2/npPCGOOI6m9klaGsXjMSUAj3t4uxnTplzeBevp5JFcB3jcuCP8fKKw4tJq58KHQFhA4CVgH+UCjySo2F1TV5N0/iW+cRUqwmEbvQwGzSG8wLDvkEVIvN/zn5U6tVOTsxTPafKPPdl6uxqdzKBJnPELiYmpEo4BxSGJc3vfF1g18bN1kHVqht5thWgbi7psF+4uM5YhUlC6//uxgWG/vwKBk4vUvmCnRqp9tJMk2YnfEryFGplU+r15BoN0Y2DWTClOT+uN79biDF14Ypx+PJ652xi0iNWmzeslxx0BfjQsyFcmU/9V+LkPky6MTNxpy62fa48YL/JbLx04Dw6Pe1br4yUPDB4O35S7q8Cyz+tnJP30jKDd9cPxf4Uu0yghD0WRhIGcn3ClSrPi8q1gQeQL6BJiq8TKEAzoWh3oHu/lxlzGoBUynw1JdbTZIQfd90+HaYKNlruarBBInqVlcGMlFw0jis5jYSlxv/hJD+JwZ3nkWl4rrMg0PP0k8OAFRFeLH7FPt2JohD5PEJUe6UC9anT/F0yZhkAQ9Mfqx+1Eo3dC+FpQsWzvWH6WgtCOz3JCYejkvw7lUc6AFT1ZX/S/NbcxvA/Jly+8D0re/7f9D1oWRZsjiV/rWf8w5mfgtZf1APBJLeUCOwz34WpgkCFiS9nyiWmm8b7el5HHK/wm8n8NFrVhNi3Ad5fofX6YUOIP5X32FxIh2kpFbOl9FH4Y+cp7Yl99Cnj8zYuuiDuEDUTD7VGsKORo1PmLis8Z7aoVmvgcsQ6CIQwVf85Zs6YZjcBeska0Q3IX9MF6ZkY5VJMyTGfqLGsM9tO9yX0+x9NjNJm/jKS8Nm2BcKs1CZGcyFFxmI5HbOFf7qiwhVATZPTEaNzA+esho9+CYfzCuYwzdydl6siwtZmkvy7lyUUTVEKBQ/JWD9wNeTm1c9ECImzqFlsbDw4copc32YulIMFx+ZCowZJ9TmQfAmRWcqcX4V5bXbkA2w1xnTAJJtl+ykcXklOSGBqgC6OTNIURdoVZZO3rnKCPF5UVG1qz4gM4= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: cabe8016-5a76-44d1-9804-08da763ff9b8 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2022 17:37:17.3800 (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: DB8PR01MB6503 Subject: [FFmpeg-devel] [PATCH 6/9] avcodec/cbs_internal: Use unions to shrink size of descriptors 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: wLVdXTNMFz7T Signed-off-by: Andreas Rheinhardt --- libavcodec/cbs.c | 26 +++++++-------- libavcodec/cbs_internal.h | 69 ++++++++++++++++++++++----------------- libavcodec/cbs_mpeg2.c | 10 +++--- 3 files changed, 57 insertions(+), 48 deletions(-) diff --git a/libavcodec/cbs.c b/libavcodec/cbs.c index c81297ec93..57b57238ed 100644 --- a/libavcodec/cbs.c +++ b/libavcodec/cbs.c @@ -857,8 +857,8 @@ static void cbs_default_free_unit_content(void *opaque, uint8_t *data) const CodedBitstreamUnitTypeDescriptor *desc = opaque; if (desc->content_type == CBS_CONTENT_TYPE_INTERNAL_REFS) { int i; - for (i = 0; i < desc->nb_ref_offsets; i++) { - void **ptr = (void**)(data + desc->ref_offsets[i]); + for (i = 0; i < desc->type.ref.nb_offsets; i++) { + void **ptr = (void**)(data + desc->type.ref.offsets[i]); av_buffer_unref((AVBufferRef**)(ptr + 1)); } } @@ -880,12 +880,12 @@ static const CodedBitstreamUnitTypeDescriptor if (desc->nb_unit_types == 0) break; if (desc->nb_unit_types == CBS_UNIT_TYPE_RANGE) { - if (unit->type >= desc->unit_type_range_start && - unit->type <= desc->unit_type_range_end) + if (unit->type >= desc->unit_type.range.start && + unit->type <= desc->unit_type.range.end) return desc; } else { for (j = 0; j < desc->nb_unit_types; j++) { - if (desc->unit_types[j] == unit->type) + if (desc->unit_type.list[j] == unit->type) return desc; } } @@ -910,7 +910,8 @@ int ff_cbs_alloc_unit_content2(CodedBitstreamContext *ctx, unit->content_ref = av_buffer_create(unit->content, desc->content_size, - desc->content_free ? desc->content_free + desc->content_type == CBS_CONTENT_TYPE_COMPLEX + ? desc->type.complex.content_free : cbs_default_free_unit_content, (void*)desc, 0); if (!unit->content_ref) { @@ -936,10 +937,10 @@ static int cbs_clone_internal_refs_unit_content(AVBufferRef **clone_ref, if (!copy) return AVERROR(ENOMEM); - for (i = 0; i < desc->nb_ref_offsets; i++) { - const uint8_t *const *src_ptr = (const uint8_t* const*)(src + desc->ref_offsets[i]); + for (i = 0; i < desc->type.ref.nb_offsets; i++) { + const uint8_t *const *src_ptr = (const uint8_t* const*)(src + desc->type.ref.offsets[i]); const AVBufferRef *src_buf = *(AVBufferRef**)(src_ptr + 1); - uint8_t **copy_ptr = (uint8_t**)(copy + desc->ref_offsets[i]); + uint8_t **copy_ptr = (uint8_t**)(copy + desc->type.ref.offsets[i]); AVBufferRef **copy_buf = (AVBufferRef**)(copy_ptr + 1); if (!*src_ptr) { @@ -962,7 +963,6 @@ static int cbs_clone_internal_refs_unit_content(AVBufferRef **clone_ref, } *clone_ref = av_buffer_create(copy, desc->content_size, - desc->content_free ? desc->content_free : cbs_default_free_unit_content, (void*)desc, 0); if (!*clone_ref) { @@ -974,7 +974,7 @@ static int cbs_clone_internal_refs_unit_content(AVBufferRef **clone_ref, fail: for (--i; i >= 0; i--) - av_buffer_unref((AVBufferRef**)(copy + desc->ref_offsets[i])); + av_buffer_unref((AVBufferRef**)(copy + desc->type.ref.offsets[i])); av_freep(©); *clone_ref = NULL; return err; @@ -1010,9 +1010,9 @@ static int cbs_clone_unit_content(CodedBitstreamContext *ctx, break; case CBS_CONTENT_TYPE_COMPLEX: - if (!desc->content_clone) + if (!desc->type.complex.content_clone) return AVERROR_PATCHWELCOME; - err = desc->content_clone(&ref, unit); + err = desc->type.complex.content_clone(&ref, unit); break; default: diff --git a/libavcodec/cbs_internal.h b/libavcodec/cbs_internal.h index 314d54daea..4030b76f1c 100644 --- a/libavcodec/cbs_internal.h +++ b/libavcodec/cbs_internal.h @@ -60,13 +60,16 @@ typedef const struct CodedBitstreamUnitTypeDescriptor { // used instead. int nb_unit_types; - // Array of unit types that this entry describes. - const CodedBitstreamUnitType unit_types[CBS_MAX_UNIT_TYPES]; - - // Start and end of unit type range, used if nb_unit_types is - // CBS_UNIT_TYPE_RANGE. - const CodedBitstreamUnitType unit_type_range_start; - const CodedBitstreamUnitType unit_type_range_end; + union { + // Array of unit types that this entry describes. + CodedBitstreamUnitType list[CBS_MAX_UNIT_TYPES]; + // Start and end of unit type range, used if nb_unit_types is + // CBS_UNIT_TYPE_RANGE. + struct { + CodedBitstreamUnitType start; + CodedBitstreamUnitType end; + } range; + } unit_type; // The type of content described. enum CBSContentType content_type; @@ -74,18 +77,24 @@ typedef const struct CodedBitstreamUnitTypeDescriptor { // the decomposed content of this type of unit. size_t content_size; - // Number of entries in the ref_offsets array. Only used if the - // content_type is CBS_CONTENT_TYPE_INTERNAL_REFS. - int nb_ref_offsets; - // The structure must contain two adjacent elements: - // type *field; - // AVBufferRef *field_ref; - // where field points to something in the buffer referred to by - // field_ref. This offset is then set to offsetof(struct, field). - size_t ref_offsets[CBS_MAX_REF_OFFSETS]; - - void (*content_free)(void *opaque, uint8_t *data); - int (*content_clone)(AVBufferRef **ref, CodedBitstreamUnit *unit); + union { + struct { + // Number of entries in the ref_offsets array. Only nonzero + // if the content_type is CBS_CONTENT_TYPE_INTERNAL_REFS. + int nb_offsets; + // The structure must contain two adjacent elements: + // type *field; + // AVBufferRef *field_ref; + // where field points to something in the buffer referred to by + // field_ref. This offset is then set to offsetof(struct, field). + size_t offsets[CBS_MAX_REF_OFFSETS]; + } ref; + + struct { + void (*content_free)(void *opaque, uint8_t *data); + int (*content_clone)(AVBufferRef **ref, CodedBitstreamUnit *unit); + } complex; + } type; } CodedBitstreamUnitTypeDescriptor; typedef struct CodedBitstreamType { @@ -184,38 +193,38 @@ int ff_cbs_write_signed(CodedBitstreamContext *ctx, PutBitContext *pbc, #define TYPE_LIST(...) { __VA_ARGS__ } #define CBS_UNIT_TYPE_POD(type, structure) { \ .nb_unit_types = 1, \ - .unit_types = { type }, \ + .unit_type.list = { type }, \ .content_type = CBS_CONTENT_TYPE_POD, \ .content_size = sizeof(structure), \ } #define CBS_UNIT_TYPES_INTERNAL_REF(types, structure, ref_field) { \ .nb_unit_types = FF_ARRAY_ELEMS((CodedBitstreamUnitType[])TYPE_LIST types), \ - .unit_types = TYPE_LIST types, \ + .unit_type.list = TYPE_LIST types, \ .content_type = CBS_CONTENT_TYPE_INTERNAL_REFS, \ .content_size = sizeof(structure), \ - .nb_ref_offsets = 1, \ - .ref_offsets = { offsetof(structure, ref_field) }, \ + .type.ref = { .nb_offsets = 1, \ + .offsets = { offsetof(structure, ref_field) } }, \ } #define CBS_UNIT_TYPE_INTERNAL_REF(type, structure, ref_field) \ CBS_UNIT_TYPES_INTERNAL_REF((type), structure, ref_field) #define CBS_UNIT_RANGE_INTERNAL_REF(range_start, range_end, structure, ref_field) { \ - .nb_unit_types = CBS_UNIT_TYPE_RANGE, \ - .unit_type_range_start = range_start, \ - .unit_type_range_end = range_end, \ + .nb_unit_types = CBS_UNIT_TYPE_RANGE, \ + .unit_type.range.start = range_start, \ + .unit_type.range.end = range_end, \ .content_type = CBS_CONTENT_TYPE_INTERNAL_REFS, \ .content_size = sizeof(structure), \ - .nb_ref_offsets = 1, \ - .ref_offsets = { offsetof(structure, ref_field) }, \ + .type.ref = { .nb_offsets = 1, \ + .offsets = { offsetof(structure, ref_field) } }, \ } #define CBS_UNIT_TYPES_COMPLEX(types, structure, free_func) { \ .nb_unit_types = FF_ARRAY_ELEMS((CodedBitstreamUnitType[])TYPE_LIST types), \ - .unit_types = TYPE_LIST types, \ + .unit_type.list = TYPE_LIST types, \ .content_type = CBS_CONTENT_TYPE_COMPLEX, \ .content_size = sizeof(structure), \ - .content_free = free_func, \ + .type.complex = { .content_free = free_func }, \ } #define CBS_UNIT_TYPE_COMPLEX(type, structure, free_func) \ CBS_UNIT_TYPES_COMPLEX((type), structure, free_func) diff --git a/libavcodec/cbs_mpeg2.c b/libavcodec/cbs_mpeg2.c index 33bd3e0998..1c9519cdaf 100644 --- a/libavcodec/cbs_mpeg2.c +++ b/libavcodec/cbs_mpeg2.c @@ -392,14 +392,14 @@ static const CodedBitstreamUnitTypeDescriptor cbs_mpeg2_unit_types[] = { { .nb_unit_types = CBS_UNIT_TYPE_RANGE, - .unit_type_range_start = 0x01, - .unit_type_range_end = 0xaf, + .unit_type.range.start = 0x01, + .unit_type.range.end = 0xaf, .content_type = CBS_CONTENT_TYPE_INTERNAL_REFS, .content_size = sizeof(MPEG2RawSlice), - .nb_ref_offsets = 2, - .ref_offsets = { offsetof(MPEG2RawSlice, header.extra_information_slice.extra_information), - offsetof(MPEG2RawSlice, data) }, + .type.ref = { .nb_offsets = 2, + .offsets = { offsetof(MPEG2RawSlice, header.extra_information_slice.extra_information), + offsetof(MPEG2RawSlice, data) } }, }, CBS_UNIT_TYPE_INTERNAL_REF(MPEG2_START_USER_DATA, MPEG2RawUserData, From patchwork Thu Aug 4 17:36:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 37138 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1649:b0:8b:613a:194d with SMTP id no9csp537091pzb; Thu, 4 Aug 2022 10:38:24 -0700 (PDT) X-Google-Smtp-Source: AA6agR4+gGlxPzzm55d+9w81+Pg0m2O6P4Z8KtjS9VTw+/jIbBdkq+GTL2dVZeAzuG3NrM9bS7ja X-Received: by 2002:a05:6402:518b:b0:43e:70be:97cd with SMTP id q11-20020a056402518b00b0043e70be97cdmr3159734edd.388.1659634704240; Thu, 04 Aug 2022 10:38:24 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id dz18-20020a0564021d5200b0043bd659930dsi1779595edb.523.2022.08.04.10.38.23; Thu, 04 Aug 2022 10:38:24 -0700 (PDT) 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=V1ykru1X; 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 0AAC868BA55; Thu, 4 Aug 2022 20:37:38 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073091.outbound.protection.outlook.com [40.92.73.91]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E92E368B9F8 for ; Thu, 4 Aug 2022 20:37:28 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M8bz0gbikfSKloBEZAIs3/9IssBQf/c6mBlsTo0ntOucO8bwNg82Z5WMLKVRmyHvPFAJlmeXCPSwkizAqUYE1uNOBDsGR2r6wpkTwW85GGS8+cPdLywW9arM21/KFEHXUoLCZmxh5N1K64poqzfMnLRy0e/MYWJMtgejtW0bNvNnbnhoX/lljDP0OQa/dCxkOr4jKQy57TnJ/rjKAv73WZt32J7wXxlzzo5Q3p0GLNU0AsS796O7f3tpmXeVjxjSwTmXYTfmVwXzDhl4aNTdLN56xYj/t0g2T7AK2uaL/K4tbshPGX5/YCs1TtY42El7xdijQCYkDcp8MEheEpOJZQ== 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=K3Cvor1mp/VhrrmONO1u0r+ZIozE8/BN8Q5rIQzZZvo=; b=cbLpZ0axc5Wa2oeQkZ/lzMk99RtG2DR7Q2VqqWO2byToUHSvoKqpfoMsrHWKlLETIB4b2Qsq/wQuQcy/kp3hDWZrTqn2z1+9BdAoYUcpyx4KAUgCYHy87K1pdpR7bQOkq5NBavIIiNIWCTy8qrJIssKHIt8ACvvUb9ryEkK4i/HYQvxDxiioFwmqKqdK02Gfchs95n18T1dppFO0KIse6jC9FGxMvKoPFs3tgNN8xxbnyYcdZiSKddes90Ap2xtw+zomNawIhyN8FDSINY8EyX5URPKBpjpta998DMjZLMFVkfFI13VlutiVnFtZoDVoEqZpjidbrE7drk8NJvZgzw== 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=K3Cvor1mp/VhrrmONO1u0r+ZIozE8/BN8Q5rIQzZZvo=; b=V1ykru1Xm8YkndyCvXkojiFVMsai7oePZZaMDzYc7UEKKqw8ogrgO41e2n58eLLGr1hkb07W5j3DtB/CaWrMHck4dJt58wxvwouSn0kU4P/HgdoNhxDVfrhZCQr0SNg2eEn16aTw27y1zyETR84y5QcS1r8VMgVY+gTxz6O8DdgnNphdclA/zJIrB46cM6smYnp5LlrHUizSQN7Twax3W13E+suoAedcLyXq/jhGtReZSGWQ5H3WdlZ6W+J3xT8Gkp8nONsNWVU+FHqFHjA02QEDHdAqMhpOMKsYt8y2VZJ79h3hyp4pVgcHBAhFZ+VVhhQNoAOaL4vN0235EolVmQ== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by DB8PR01MB6503.eurprd01.prod.exchangelabs.com (2603:10a6:10:154::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.14; Thu, 4 Aug 2022 17:37:18 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46%11]) with mapi id 15.20.5482.016; Thu, 4 Aug 2022 17:37:18 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 4 Aug 2022 19:36:53 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [wxcXohokA1b7b2xfFPuqUDx5ZpeEANNC] X-ClientProxiedBy: AM5PR0201CA0018.eurprd02.prod.outlook.com (2603:10a6:203:3d::28) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220804173655.1561196-6-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bca11b5f-12da-4f6b-a09a-08da763ffa66 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNVBLZe6CjjWHQcN+6fAcwmpZHZmCAsfuk2arYV+5D+55OXQJTmsznIt6nVN6eMv92H+7XqTRglcyU917KwujXFaZr2vXm/eSXt5TKIa69L2n0oSyOnaX1TbuBNFWKzSP/6IlvLkecuDvwy69nKTleWw0LpP7fnaz4u58HZGhb4n+zEq82/Yr1OGrntcv4jshTAxOSclcPHF4AWXM7NOX2HitBvFwLPSdUQNgdFmZxjPZBWkbFLFLHQR9C+J9XzX0yLVRtV+ij2M8x7aozcPyFZwzJJtOjG13TlRMLpGj0og2FJCZ9uXMRFvw8+74ZKju3iqHphrR7nanMNiEd5sHA2xczDlqz4UNmZz6i4icHvzzmf/i/veRlJa2Dbaq9By0pykCZj9AxoFZjn2eHOZc3MuerDJIfJkcK7+uEeIcQ991QcsKiSRyAJ/2Q4kKA9MyS1pnpWcCWZ1zVz4qOdmk1liz2oYT3HH9qTtM3W8ssHlWtg2xYYinYlJS6lhLqREEU4GZSOx3aF3fR030pMKUqeD9ve3DPFHiCn7jarJZfhRl46ZoV58dmYC95I0nLiibmsk4u41uqo/ivN5nhU5I3HpZj5H71uxXRefyHw7wtZY4+b2uBzFLR5o5p4EO5GtDghEiHoyFlTSWGsSl5/Z3JNBzfLXvPDQbICNz6yoRH3u83S3Beb9bsVJFP68NUC+jMN4hbxpy4SzXhaPghwFFCwWomVsx+Cer7k= X-MS-TrafficTypeDiagnostic: DB8PR01MB6503:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JokuPVeaBNfXML+GXFcIRU/p5lqCgvVFIZCDTVFd0tgF9vzVhX5x1SX/UkhEwySSPZh/bDyJir/Bld3RQg5eDYKfPEBVQ7XrbEFy7GJyu+lp7ctR9m1tgb0NrXAonB2nGr4VjA736jbIk4HmxZtFz8j9HqwT7APlDgQ/xj3663nX8YVxVx33vIUU3fVeMwmGrE8wgXlHcdp0oXKvUbKzCkQinifgZ8x9sK1/hJqYc5dYQvEh5WzTfjEym3KptmcjS9AcxucG8OSiPl5KuN0ZF59CK1Q8fMKtB7RmtGT7T545JMhurf+oHeOC2kyLKZ3/9a3CsydYGui/ZZacBEzoifrAS1pNJYEXE8WQtYeegf7ab4/j/mSROZ3gze6LuvEJoh0fQSSvFmt3+Y6GVkonBic8PJ/Po5yz83R50EkydGAe2YfAFqQYOFnpVc+5pBQ2GwgT+8xYilWoiS23emiGjJXHRIHJuiQ6mfhLP2cMrcwpuBQrMPMfYj1fWipmFLQGDEAfJubsi8ZO4uiaMQDPSIHuLO568aD2T8YLNVBdkfBjdLtxitp2pwm9nMm4GqXK88vOwpGFAAf5/7hzP3vsCwNvJCck8u/yQiE4DZkhgQunNJ4uJ6/IJvSw7xU+6Hw2DZcghbULVN9rqfPmfebXCA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: c2hypbVXfSy0S5lxM/cCESPjB66H9ZxMevcw4Bv2CY5RpHdIhhPnZj2P07pYtrSxZ1uKp9kiyjviKG2cZtnfCaz0OR2mig/OAgZ70mR5fD2KeDPcy4tOAdlZSy0/xluzhXvkQWT2fde0Y6+kQM5SXd10ev2Xy7nWP/VgraqYgjXpkpgbNbD7FLxftUfiyTErDn9pFxPbE36DsFi233uAcWSpvgBiyi+qC8FO2SUgvI2chc6usQeawKlAvIwhQXXQnZlqvCrJ4q9VLiwjWVkb8fxFFWA7NJXbENyevH25AJM0+AUApPuikGn+HIVhpQPO5FB3AFfXLLKNVhCfKyPVFg2zcNMaGSOe5xzpuSKRFhASVGi4bEFa7L+SW3jaHwBmcOKOnt8Qt46NDinn25iXcVS//OU5WWI2M7qgB0LTnhK5bfCEB9TfYjRnnr5bzKoKzR+Yup4MFPuu/UUy/tp+S+kBR7lfXnRifp4aKeocI3xbCnHfArqamVxf+0dwjLAVIvACfuHymkkXMtjkWkV3KMhqbCh0bj/HX5b2Ex3YzEEFwDFOHxJi6f66VIJVq073AgDdqtv9KotcsOL77FLoQPWpC6r9NgJ6CNCpGR7W6CqCvwgXMlC8YqBso3w+2PkMzSSBmZ+hUaFH3e7prkooZjWIrnNuRZbMJCIiO5NrHUXlFAoM+OcfR3D7t6VViBwuv4T9S4Y2HAMhglzb7gqKm/IuE7yCwWzeUc4c5yG12aXrq9KEViS8DX8sXZXOQitaxXXGULa1jL0dnL1HFDW6WXx5WOobZHxOcaKy2n3lVS5heIbAiKZoPcxwX2du+j8bb8FCvqxBCnk9EAtN6woNdZF3xJjrkpczXQskl1RqfH9JZcChb1a6WmDhDcjcA3Ti4pVS0CvCLDaOorw00omEXaR8lm0tjG4RmwwDf91w+jlH6/nFQmdDIBJDtrfLTh0o9tWdisdpHe3b/Xd37EyZapN7lfqOj1IbnFJsHm9fMpozIrZSEhBAXhReyC/pp/tPVtgc0uhUMn91QwBzlkuBblRrG7c/SZ+XHMft1nzTa4bWpyrzAq2P1wDAorfsWtqturvb0rCHCfCFKawzN+RMg5GRkSJJ9/jTk7KMzMisxKWUE32umqRDubsblMolEWrfEVuHiKYDI3h2bt2qJ+Z0iMaaobMEJnd5pq1hFQewN33BfUnhlCtF5aVQ6uSyqs3sItXbqvANAfnSg7o/brGL4yz8bYvB0zThYj5pJaK/OJNWTxImu6PYvJ/yJB4KrgLplzCwO2aNCCB8vjZvCnxWmhvUm+ddZ6w7QijaYbMoZYs= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bca11b5f-12da-4f6b-a09a-08da763ffa66 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2022 17:37:18.4737 (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: DB8PR01MB6503 Subject: [FFmpeg-devel] [PATCH 7/9] avcodec/cbs_jpeg: Use table-based alloc/free 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: S/4OSsiXRKlQ cbs_jpeg was the last user of CBS that didn't use CodedBitstreamUnitTypeDescriptors. Signed-off-by: Andreas Rheinhardt --- libavcodec/cbs_internal.h | 7 ++++ libavcodec/cbs_jpeg.c | 76 ++++++++++++++------------------------- 2 files changed, 34 insertions(+), 49 deletions(-) diff --git a/libavcodec/cbs_internal.h b/libavcodec/cbs_internal.h index 4030b76f1c..5ccba3c901 100644 --- a/libavcodec/cbs_internal.h +++ b/libavcodec/cbs_internal.h @@ -197,6 +197,13 @@ int ff_cbs_write_signed(CodedBitstreamContext *ctx, PutBitContext *pbc, .content_type = CBS_CONTENT_TYPE_POD, \ .content_size = sizeof(structure), \ } +#define CBS_UNIT_RANGE_POD(range_start, range_end, structure) { \ + .nb_unit_types = CBS_UNIT_TYPE_RANGE, \ + .unit_type.range.start = range_start, \ + .unit_type.range.end = range_end, \ + .content_type = CBS_CONTENT_TYPE_POD, \ + .content_size = sizeof(structure), \ + } #define CBS_UNIT_TYPES_INTERNAL_REF(types, structure, ref_field) { \ .nb_unit_types = FF_ARRAY_ELEMS((CodedBitstreamUnitType[])TYPE_LIST types), \ diff --git a/libavcodec/cbs_jpeg.c b/libavcodec/cbs_jpeg.c index da7ee808cf..2afeecfa79 100644 --- a/libavcodec/cbs_jpeg.c +++ b/libavcodec/cbs_jpeg.c @@ -82,27 +82,6 @@ #undef xu -static void cbs_jpeg_free_application_data(void *opaque, uint8_t *content) -{ - JPEGRawApplicationData *ad = (JPEGRawApplicationData*)content; - av_buffer_unref(&ad->Ap_ref); - av_freep(&content); -} - -static void cbs_jpeg_free_comment(void *opaque, uint8_t *content) -{ - JPEGRawComment *comment = (JPEGRawComment*)content; - av_buffer_unref(&comment->Cm_ref); - av_freep(&content); -} - -static void cbs_jpeg_free_scan(void *opaque, uint8_t *content) -{ - JPEGRawScan *scan = (JPEGRawScan*)content; - av_buffer_unref(&scan->data_ref); - av_freep(&content); -} - static int cbs_jpeg_split_fragment(CodedBitstreamContext *ctx, CodedBitstreamFragment *frag, int header) @@ -248,41 +227,26 @@ static int cbs_jpeg_read_unit(CodedBitstreamContext *ctx, if (err < 0) return err; + err = ff_cbs_alloc_unit_content2(ctx, unit); + if (err < 0) + return err; + if (unit->type >= JPEG_MARKER_SOF0 && unit->type <= JPEG_MARKER_SOF3) { - err = ff_cbs_alloc_unit_content(unit, - sizeof(JPEGRawFrameHeader), - NULL); - if (err < 0) - return err; - err = cbs_jpeg_read_frame_header(ctx, &gbc, unit->content); if (err < 0) return err; } else if (unit->type >= JPEG_MARKER_APPN && unit->type <= JPEG_MARKER_APPN + 15) { - err = ff_cbs_alloc_unit_content(unit, - sizeof(JPEGRawApplicationData), - &cbs_jpeg_free_application_data); - if (err < 0) - return err; - err = cbs_jpeg_read_application_data(ctx, &gbc, unit->content); if (err < 0) return err; } else if (unit->type == JPEG_MARKER_SOS) { - JPEGRawScan *scan; + JPEGRawScan *scan = unit->content; int pos; - err = ff_cbs_alloc_unit_content(unit, - sizeof(JPEGRawScan), - &cbs_jpeg_free_scan); - if (err < 0) - return err; - scan = unit->content; - err = cbs_jpeg_read_scan_header(ctx, &gbc, &scan->header); if (err < 0) return err; @@ -299,21 +263,17 @@ static int cbs_jpeg_read_unit(CodedBitstreamContext *ctx, } else { switch (unit->type) { -#define SEGMENT(marker, type, func, free) \ +#define SEGMENT(marker, func) \ case JPEG_MARKER_ ## marker: \ { \ - err = ff_cbs_alloc_unit_content(unit, \ - sizeof(type), free); \ - if (err < 0) \ - return err; \ err = cbs_jpeg_read_ ## func(ctx, &gbc, unit->content); \ if (err < 0) \ return err; \ } \ break - SEGMENT(DQT, JPEGRawQuantisationTableSpecification, dqt, NULL); - SEGMENT(DHT, JPEGRawHuffmanTableSpecification, dht, NULL); - SEGMENT(COM, JPEGRawComment, comment, &cbs_jpeg_free_comment); + SEGMENT(DQT, dqt); + SEGMENT(DHT, dht); + SEGMENT(COM, comment); #undef SEGMENT default: return AVERROR(ENOSYS); @@ -456,9 +416,27 @@ static int cbs_jpeg_assemble_fragment(CodedBitstreamContext *ctx, return 0; } +static const CodedBitstreamUnitTypeDescriptor cbs_jpeg_unit_types[] = { + CBS_UNIT_RANGE_POD(JPEG_MARKER_SOF0, JPEG_MARKER_SOF3, JPEGRawFrameHeader), + + CBS_UNIT_RANGE_INTERNAL_REF(JPEG_MARKER_APPN, JPEG_MARKER_APPN + 15, + JPEGRawApplicationData, Ap), + + CBS_UNIT_TYPE_INTERNAL_REF(JPEG_MARKER_SOS, JPEGRawScan, data), + + CBS_UNIT_TYPE_POD(JPEG_MARKER_DQT, JPEGRawQuantisationTableSpecification), + CBS_UNIT_TYPE_POD(JPEG_MARKER_DHT, JPEGRawHuffmanTableSpecification), + + CBS_UNIT_TYPE_INTERNAL_REF(JPEG_MARKER_COM, JPEGRawComment, Cm), + + CBS_UNIT_TYPE_END_OF_LIST +}; + const CodedBitstreamType ff_cbs_type_jpeg = { .codec_id = AV_CODEC_ID_MJPEG, + .unit_types = cbs_jpeg_unit_types, + .split_fragment = &cbs_jpeg_split_fragment, .read_unit = &cbs_jpeg_read_unit, .write_unit = &cbs_jpeg_write_unit, From patchwork Thu Aug 4 17:36:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 37136 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1649:b0:8b:613a:194d with SMTP id no9csp536887pzb; Thu, 4 Aug 2022 10:38:06 -0700 (PDT) X-Google-Smtp-Source: AA6agR7xXp/c5oARS6Wyqb/ix8tBlpLGTyuaD/lkUej95yh6NVdP4bWpwTuEghajv/BP/AIgxeyW X-Received: by 2002:a05:6402:149:b0:431:7dde:9b59 with SMTP id s9-20020a056402014900b004317dde9b59mr3128636edu.339.1659634686581; Thu, 04 Aug 2022 10:38:06 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id s2-20020a1709066c8200b0073061fb686dsi1213449ejr.343.2022.08.04.10.38.06; Thu, 04 Aug 2022 10:38:06 -0700 (PDT) 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=rSfXhKum; 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 54F8268B93A; Thu, 4 Aug 2022 20:37:36 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073025.outbound.protection.outlook.com [40.92.73.25]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B324868B9F8 for ; Thu, 4 Aug 2022 20:37:33 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cVLHAAhxMAzb4UoupaCTcRbj8MtFK05oF6wqT0orMCSdMj1Iv01o3vELMnrU0nu/9H9uCe0buHfvkL7Bh1N8ixzhezlYfGMADSq0GZ/JRBY098HrJVyqGC0dstUz7nKVZYmOg159Uq5GYTPGJoBxPwuvHgrRZc/3jYHgwcv/Wr4oET5iw7wzBepTOMeUSdISq2Cj9XPL9DPuYRFypQdd7hPvj0oiK0zcZ65/bVTvmliqdWJ9/8dWFJSRDs6qwWcjPWYZzhQ4l7vb8ldzA1xSl3F0V2LiugGu6pD14+4YeN8dkTqwDw4N4XNqJKiKpKFPsZhkz5P15GIYjgi3CGXWQQ== 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=SeZCHjp9ZGbF4SGXrVNrBcg84UY39jhfj6Cpkb4Pqc8=; b=EsziJMbBZJ3PFpTFSIJYHCVelOF56xjnHQnVqcK8WGzM/+uaB7e6q3N8yKDb+/hYPduS+UpGrCpnzfJxt34404wgOb041jHJwRAmM21U8TDqsY4AFSicWRjLF/Oyr/Ulw5LEDMjLpoTMex8kv0fEG9Pnk7OtycDt7RV6SgxBDSD4LAxsWHXimuCmcqXWa9xFpdyPIvGIxmh+qBsHdjZV5ey9eumMoOZubD8LpeUexN5B+QxrE/EGIiXP6UXxEeVVjQ7KiFXJsOmflns9Ph92p8ylDxCyTMXmfMhN188E9GRfIMTQAu6APVXzBvPN5S0icjPv6GUKppF03hD22QK3Pg== 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=SeZCHjp9ZGbF4SGXrVNrBcg84UY39jhfj6Cpkb4Pqc8=; b=rSfXhKumy88QKq3eNAsRtS0G8UhsXClOjXOQopZpvYd6iR4aJbbrcrdMvsIRYZcJZwkI1O+vji4ulv6Il/fRnvua/ZIVNmHqFFJe9wDx6G16cL7mBuxy5gW7bv7NNZMzNArIJb6YGexvoyOrZiSqi4GtdcQyfuhLy8IvXh6zTVxiT2IZPlxwluDjzX1sp7uJKBb/JqmEWShF3YdQTR3iF8NFCtW86OnPgf+5rDNiY1mHMM9j2+5ftLMhKmZQ+uee41qSHYar9vL7tRo/4g79tSfvCa+EVBwku9s51fKuGHpJj0u3LDsJ/pnhJJ51TFPwBiNReie0E0W+mUdqbyyWoA== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by DB8PR01MB6503.eurprd01.prod.exchangelabs.com (2603:10a6:10:154::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.14; Thu, 4 Aug 2022 17:37:19 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46%11]) with mapi id 15.20.5482.016; Thu, 4 Aug 2022 17:37:19 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 4 Aug 2022 19:36:54 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [j/yLdUBg9lBKR13k7OI1hJhKIpqQ0xvL] X-ClientProxiedBy: AM5PR0201CA0018.eurprd02.prod.outlook.com (2603:10a6:203:3d::28) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220804173655.1561196-7-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 77af1872-5356-4b47-96aa-08da763ffb01 X-MS-Exchange-SLBlob-MailProps: dEG5jEBie8mQ1Nbr3MDquWuavSVdwHSdwdGDVTR/qZK8yEEwqz4y3G8uJHXzIs/mPVSjupUC3RUGuCzR6JXyfnHtSFWbIdSX9mvjyTbhML/a+JMhk+bFchZunyqes8sZrOix7LqbaKOhNHiRyzJuLpMyszFMnr790nsN1NZ+XTkMZjXbqPdysPs94PbVz3yCaRWg6KeRaUZJ6S8a7xmHmxbw97K+XDKhv+izObO3zO0OoM9lDoBW6ZmspzWgRQz/5TkzypdTHXH+1EUU1/HTqEushQJOoBRzWHCsaOHMyJ4Y6a48Ol9u2i/Hr2o2/WZC0wwJtE/mpLtYLuvz3prgn91f8OUWeBcq2kb19//PZP2aYJ7cq+PxhuzppFVSFLABu5QptHa0+FB4y6HBoUTiHdC6OeTLle16VVT+7J3Y8Eh7hv/9lP0McRmLmhOEI8c51/N7Y1gcTkKF+/PjxJxDd+pPEoJGCuxQkxGJHYZLvugRZfXWscYmXbQSc6wT8q4ZZX/l1yJd5rVGm3LqHRyqwPFDZqveHiZ0YxwBBzWDR6sEPvecCrRrkSDabwlKOm5pqgA0+V7HlRzINbf+jqu+2qH2f4fLw6cdjzPY8NKs/ikQz2Z391vVO+naRUg9w3J4zzITBQNDjFsHKC/IYeuTh6euXOmPwS0pi9I0RE+R3DGkA1hwNges+A== X-MS-TrafficTypeDiagnostic: DB8PR01MB6503:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6jKqgah/JRcn+rT+gFa+/m62k3K9+byT8gr7fcRmV1Co3UU+ZuVk9ANBXVm1K8evnGZU+5Bj72SlYyLA595e32PaEcGb9A0gVgM6StO2DlxLlW2AiI8hx+LAu06maZVoL+Rw0/ROwik48X1ebG/iK/SSMVNgSku2k4pk3gLqo19MiS2nCEET/4iEDpHkdmZ9FfnVKTVL2lHmgKZl4lv+WVKfwWS0ATe7MW/Q2KL59DhWimLlcnRKxLcL0MGRy43GHY7RqIv/qu5gg2j7y45FS5di7W8S5RLmDf9Q/fsn83K/Bv1HanJPCQWL4PZbGIB0fFVdh+IEbf0KykMLOqDZKSI8iYYSExxbyedpTo5kiI47khdXetz06jLZd7CwkAfvT+4JuMw5j+IHHE80oz7MYfKi3Bpu1UCWXkQN8aDcV7rTljQMc02yhOEO/uFpmvSiYm4qpyFX7evE/z3RGJL1I37WAYMS6jLj5MYcBUB95qDwRwxm6gkoKg0t1MxJ3M6XZ8KX5G/X2cG8+ieu7HIoJ2UR8EmV80TV3mvDL/bMPQ+M+hWfZxuggV39fvku3PtX5QkJG5C3CNPs2+Vsf0nJLTRQO2E2cDrdE1WMz0ki1GGglU7APFv28hyrzAkBvy96u+XLROof7GR0v/S193/WjA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: H/34qk90GUVWNklTLsDxgS/G9QGbOTBP1WcbCep9gDpYGtinkVk8pf40ge0iS+AWMJRgdYk+wPzfwbE0w1e2x8r1wRuaQehl+tDa3hjn6qlMN2ZGzp6NmXLmPcZAEmQDIeJmSlcyqKai6aAump8vEebRfLCLBIGM5OwNg9X8XituF0Ib8JFvaO9SKKczDwsg051ilCyL00Y4xMqZRU6mn878ZPvDhyNc/tQisPzgLSArLoGS4DZU88/IWBkwTpna7hR92bpJvBBwAld8eIXYc+/k5WB9EDe1o3TGgMBVFUn0C97aQl6ipzQOANR0QMUSam6S+pjWbFCBGALI0NoejPcH9hP1n7RPp5x6V9YKamv91UiBlkW1wP9v/YX0uAfptA7fMsw4mexfni607rAuGMn1GGgxdUG6lA3xnoEOiWBs0IAuF7UGa/aXHCcxInQZNNICb9PvQe33pOafVOUJwmdG/vyrU1iWkSebGlHA8YH+ZEE/DTgtG/sKoWFZUGrbJ/pzc6Pu0exSy+7EOgxxHA+nANfcHyQyMyhjHOdjhLJQzFNnHP4FoUyKwFdPSBxHZUZ8QnW3aF7wGrnbw2lGoM6J+iMK/xe+omWYC2bFILXQ3rfcjzJgcYb9SnkhM3ZCv+zzcr2noMbiB6gaEmkgbfdxt2svf13KlYlSSXN+I7uxL3gptDISl7NaM3nh12Fc63utgLpunIqL/DSGxpiKqCmoTybW0q5TlSlgPGIIfXomnNCaBwo09Cyz/d9WG7FCx2lQW2wP4mIWbG5VX8lFoEHXg2S1hO3oG7z+jJlrPESaxDpfTirRn08w69Dl7XVz3oFlSzqoTbaiILy5CsVEx3qLd9BtZcqfx0wBqo4K1bW06/ahiqsKAz929d97szf+nNtHTa+ZMqufBplK+wAmcBB6ptuYTV7ZPkGeeTfZ10CMXeIcmJK6SWUc0TXlNIDNVwk0fmVQBukvN5RBDcwbpsncYrkLj+tPZUxLMI+R5zIdCSVyo8zoAgdzaclAthMxoEfrAfzQ8dTtzhi6vxwMvlA71t3QQ3cUSYqiYA8CFEzlf/1/ILFHN7Iuq3SEZXHAB0wO21rK2EdqsHXIQ42v5gns4W9R9mact0lvCPflwg0Tj+IjMQG7JBFxgvhdu5gLbHyuaig3lDKyvzSZhLYQn4IrgYkd0Tb94UnA11jMSCLPay8eG5teh58ZATQsxWWcIfJ9e61+MeAwVMn/tKQbYqpp5p9MSvWvLk1QbeLqC2h1MM6LKOtxWIyU5v/2NoJaiMm/KTQjIKrx3T+EsIzczTC6K7tTViecjEbW31aVt6M= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 77af1872-5356-4b47-96aa-08da763ffb01 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2022 17:37:19.4892 (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: DB8PR01MB6503 Subject: [FFmpeg-devel] [PATCH 8/9] avcodec/cbs: Remove ff_cbs_alloc_unit_content 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: pRRF1QhDuXgy It is no longer used. Also rename ff_cbs_alloc_unit_content2 to ff_cbs_alloc_unit_content. Signed-off-by: Andreas Rheinhardt --- libavcodec/cbs.c | 24 ++---------------------- libavcodec/cbs.h | 13 ++----------- libavcodec/cbs_av1.c | 2 +- libavcodec/cbs_h2645.c | 4 ++-- libavcodec/cbs_jpeg.c | 2 +- libavcodec/cbs_mpeg2.c | 2 +- libavcodec/cbs_sei.c | 2 +- libavcodec/cbs_vp9.c | 2 +- 8 files changed, 11 insertions(+), 40 deletions(-) diff --git a/libavcodec/cbs.c b/libavcodec/cbs.c index 57b57238ed..07ae658a4c 100644 --- a/libavcodec/cbs.c +++ b/libavcodec/cbs.c @@ -695,26 +695,6 @@ int ff_cbs_write_signed(CodedBitstreamContext *ctx, PutBitContext *pbc, } -int ff_cbs_alloc_unit_content(CodedBitstreamUnit *unit, - size_t size, - void (*free)(void *opaque, uint8_t *data)) -{ - av_assert0(!unit->content && !unit->content_ref); - - unit->content = av_mallocz(size); - if (!unit->content) - return AVERROR(ENOMEM); - - unit->content_ref = av_buffer_create(unit->content, size, - free, NULL, 0); - if (!unit->content_ref) { - av_freep(&unit->content); - return AVERROR(ENOMEM); - } - - return 0; -} - static int cbs_insert_unit(CodedBitstreamFragment *frag, int position) { @@ -893,8 +873,8 @@ static const CodedBitstreamUnitTypeDescriptor return NULL; } -int ff_cbs_alloc_unit_content2(CodedBitstreamContext *ctx, - CodedBitstreamUnit *unit) +int ff_cbs_alloc_unit_content(CodedBitstreamContext *ctx, + CodedBitstreamUnit *unit) { const CodedBitstreamUnitTypeDescriptor *desc; diff --git a/libavcodec/cbs.h b/libavcodec/cbs.h index 5583063b5e..ee21623dac 100644 --- a/libavcodec/cbs.h +++ b/libavcodec/cbs.h @@ -363,22 +363,13 @@ void ff_cbs_fragment_reset(CodedBitstreamFragment *frag); */ void ff_cbs_fragment_free(CodedBitstreamFragment *frag); -/** - * Allocate a new internal content buffer of the given size in the unit. - * - * The content will be zeroed. - */ -int ff_cbs_alloc_unit_content(CodedBitstreamUnit *unit, - size_t size, - void (*free)(void *opaque, uint8_t *content)); - /** * Allocate a new internal content buffer matching the type of the unit. * * The content will be zeroed. */ -int ff_cbs_alloc_unit_content2(CodedBitstreamContext *ctx, - CodedBitstreamUnit *unit); +int ff_cbs_alloc_unit_content(CodedBitstreamContext *ctx, + CodedBitstreamUnit *unit); /** * Insert a new unit into a fragment with the given content. diff --git a/libavcodec/cbs_av1.c b/libavcodec/cbs_av1.c index 1229480567..154d9156cf 100644 --- a/libavcodec/cbs_av1.c +++ b/libavcodec/cbs_av1.c @@ -878,7 +878,7 @@ static int cbs_av1_read_unit(CodedBitstreamContext *ctx, GetBitContext gbc; int err, start_pos, end_pos; - err = ff_cbs_alloc_unit_content2(ctx, unit); + err = ff_cbs_alloc_unit_content(ctx, unit); if (err < 0) return err; obu = unit->content; diff --git a/libavcodec/cbs_h2645.c b/libavcodec/cbs_h2645.c index 117b609dc3..e0c617e81d 100644 --- a/libavcodec/cbs_h2645.c +++ b/libavcodec/cbs_h2645.c @@ -702,7 +702,7 @@ static int cbs_h264_read_nal_unit(CodedBitstreamContext *ctx, if (err < 0) return err; - err = ff_cbs_alloc_unit_content2(ctx, unit); + err = ff_cbs_alloc_unit_content(ctx, unit); if (err < 0) return err; @@ -821,7 +821,7 @@ static int cbs_h265_read_nal_unit(CodedBitstreamContext *ctx, if (err < 0) return err; - err = ff_cbs_alloc_unit_content2(ctx, unit); + err = ff_cbs_alloc_unit_content(ctx, unit); if (err < 0) return err; diff --git a/libavcodec/cbs_jpeg.c b/libavcodec/cbs_jpeg.c index 2afeecfa79..5921d624a1 100644 --- a/libavcodec/cbs_jpeg.c +++ b/libavcodec/cbs_jpeg.c @@ -227,7 +227,7 @@ static int cbs_jpeg_read_unit(CodedBitstreamContext *ctx, if (err < 0) return err; - err = ff_cbs_alloc_unit_content2(ctx, unit); + err = ff_cbs_alloc_unit_content(ctx, unit); if (err < 0) return err; diff --git a/libavcodec/cbs_mpeg2.c b/libavcodec/cbs_mpeg2.c index 1c9519cdaf..04b0c7f87d 100644 --- a/libavcodec/cbs_mpeg2.c +++ b/libavcodec/cbs_mpeg2.c @@ -204,7 +204,7 @@ static int cbs_mpeg2_read_unit(CodedBitstreamContext *ctx, if (err < 0) return err; - err = ff_cbs_alloc_unit_content2(ctx, unit); + err = ff_cbs_alloc_unit_content(ctx, unit); if (err < 0) return err; diff --git a/libavcodec/cbs_sei.c b/libavcodec/cbs_sei.c index 141e97ec58..50a513f592 100644 --- a/libavcodec/cbs_sei.c +++ b/libavcodec/cbs_sei.c @@ -179,7 +179,7 @@ static int cbs_sei_get_unit(CodedBitstreamContext *ctx, unit = &au->units[position]; unit->type = sei_type; - err = ff_cbs_alloc_unit_content2(ctx, unit); + err = ff_cbs_alloc_unit_content(ctx, unit); if (err < 0) return err; diff --git a/libavcodec/cbs_vp9.c b/libavcodec/cbs_vp9.c index ae7f88a8a3..184fdcade6 100644 --- a/libavcodec/cbs_vp9.c +++ b/libavcodec/cbs_vp9.c @@ -489,7 +489,7 @@ static int cbs_vp9_read_unit(CodedBitstreamContext *ctx, if (err < 0) return err; - err = ff_cbs_alloc_unit_content2(ctx, unit); + err = ff_cbs_alloc_unit_content(ctx, unit); if (err < 0) return err; frame = unit->content; From patchwork Thu Aug 4 17:36:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 37137 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1649:b0:8b:613a:194d with SMTP id no9csp536996pzb; Thu, 4 Aug 2022 10:38:15 -0700 (PDT) X-Google-Smtp-Source: AA6agR5lTRgQHmxVBnvuqRaOi+Y1XIUpfX0EHQjS2Jdkq49kBbTGNEP4FZjnse1TIAspNx+92VuI X-Received: by 2002:a17:907:60c8:b0:730:9efe:ecbd with SMTP id hv8-20020a17090760c800b007309efeecbdmr2138802ejc.90.1659634695352; Thu, 04 Aug 2022 10:38:15 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id go18-20020a1709070d9200b007308a195633si1182742ejc.965.2022.08.04.10.38.15; Thu, 04 Aug 2022 10:38:15 -0700 (PDT) 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=bihpeBrR; 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 1EBFA68BA10; Thu, 4 Aug 2022 20:37:37 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073025.outbound.protection.outlook.com [40.92.73.25]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E0F2B68BA2E for ; Thu, 4 Aug 2022 20:37:33 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TAXYs0BJeyLnfbGOjspv5EDOXYbk/X32lbsWAxd/iijF5/2SHZ9/O2oD9ME9APYfWYvE8a/8qwBc1CXnYET2c1k+TyB/jOacZ5dnToS1P4RiRtwlos7H2JGG4gXPpz/SQlFMz+llubIGADMIqGMK809qgZHQNLI5jNJmGMFp6WF8I6/4aXvqtY5glTshp/d8b/tXBtxfkVcVQ6Gw+dhz+cG+odatnvmMjjPUXXuNEYHfyShamjd0gppkelU6FD9QpFRcIKL5Hw5g3YEFi7ee8vyICeZtJ4khjrNF4fZR6riDvN3WPPviSThl9kSjg5CsA92K17wWBfqoHojB4EkUiA== 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=ezIGgesyX9TZMnnJgwZnJVth9gWIuMqIuRIQx7NFXUE=; b=ejGpVf4HS4hn4Kouauicl3r//B8blKUMLf485mtN0qf46W/9m2SaEA9GNiAFZbWvZXNRCq21Pj689dxba0NHuHghdmg+jdqfzTEP9eAiKE2mCSLLJenw2NVAFXfvJrelRM/Ctdsi8lfZUIbKCPUShCteS2pmgotAukj5tivMSUr7nvlGz46ZMf4pqULFUBaVs+lZ/xCYa7DaRn05OC7FJ60u3PuhpSxAiRozj9yWYjyyldHjQeiw/s8p4GJnvgC7/HFbynxct7P4U9iUgnIIioPyIfJM/9ESRoLtepITsJLBxbC4PlRV1I+D1YcQ6FbtRZoHVcJmJ3thiC4VFppTYA== 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=ezIGgesyX9TZMnnJgwZnJVth9gWIuMqIuRIQx7NFXUE=; b=bihpeBrRD1aiuIadddi13OBYWO2aoUn1cvXpPzbyuOJVTJWL0/GEMMHCpcQLdJRpMZh1U0aRo8tioGIlYX2Zw1lA6wMK+vjHvBjx5yeHKI1kYCGzKMVwYQeE/38x4QgmIePu3VsQnkyd6BOWRGqCYcXrG9/BNmqDeY4ycUV3DnvEP7G+oWGxY7FF7CybmPiPGc6kyw8aI4bJN9S+7esyzMjL58TpiZieG3rhtDUY72tUqENRz3pxDiFGULXb2odJ32ei7ZM7QwAgXq89bZhwPqkBmC2+E7MQh2Q1rPBvBzUBw8kr/WH75Q7YGa0KZDZbeUfo7SRNX5n5DqynPbwAZg== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by DB8PR01MB6503.eurprd01.prod.exchangelabs.com (2603:10a6:10:154::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.14; Thu, 4 Aug 2022 17:37:20 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46%11]) with mapi id 15.20.5482.016; Thu, 4 Aug 2022 17:37:20 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 4 Aug 2022 19:36:55 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [yV73PG85pzJ4YZv1M4C7L5J/CMxKs81P] X-ClientProxiedBy: AM5PR0201CA0018.eurprd02.prod.outlook.com (2603:10a6:203:3d::28) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220804173655.1561196-8-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4aa7e9ea-1165-4fe6-2a67-08da763ffb9a X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UIOfcU/WhyXx+8uuhyM+VSedXN3wwJE5YqbfHbv6Ba6TbfXBd5Crw4V9eDikwb+bZ2eA5v92QIMzizyc4R+C7wdRuLTr6jH3NjFmI3BL7mmVydTJx1bcuc8GS+9sG+JLNO/O+Qm+0OlHuJ5enOE8xZkBKSDvXK+xrJfGOMynaukarjl+Sx/4C4qXNjIvoBZHSLo8HB2XWPD0HSUzU9XokKgYBYrfyJqD/auJbjJhU8C3q0LNtzl0q6Eok28YlLcpchvOiN104WdQ67lmQhmRIysRUlXJyFRufbN10rX2Z39MrzNipkrKPGWHIFh8vpwKwi0qA3vXlbXyScj8Gj8D00KXdgNmip+l597jrBXYz28KRPVqx9q14yTYvpYI2CiVrMwb8QZF57p1nkIM7gINfvE53GxRoQQwkhKrwgGt8g3/2arU0/wgcly0xmbq8gExsqfVgf1txRthErkVzgWPkppTY7hNRXo/WxBV1TjhXccjzn/rr+8x/glEfiAbIS/Hx+r8GoBOYHWp+bqMyV4G0T4Siri/VKtpcZ7HFVWYDh3DCIyEsCwXPU5rLXyRG28i+dvfsL+dnnbu3HedSmWftEKBbMvVwV5iJjQE8xeFfiQp7DFulVCoRClTCiAWNDMoNjPdOA2vLHSdjT6vL56M0kHRPDoKNlimzkStKMBFfxdJsRQODSbqbDMjJAhc2WRO4qfy2Y9JU/7TQ== X-MS-TrafficTypeDiagnostic: DB8PR01MB6503:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /kj/IMd7QLUimt2sV3zLiP5Ap3opJC7/pP+sV4sVL86d0KqSeg2ehFn6WBoqwdXZDE7vVJ83aAzwSDpvm/azFPCw2ke0/MZafWe6HP8F5SdY9NVdgF0OJbSTh7wdA+Epl2RWtgRQhfplSny3IiRdbagwxRLsW1jJDhM4XTdDewTZ0hcKBRk5oZFwU+pDdNuRcpVTVKOQhSyJ4qa0i8L+KbkLw/ml3WKXOlDeYtU9JeMk1p2ybA9KRdjxRntUKZymFFSrVxWX6osWlVOF7gDUX655Ia1TPAJxN2EwB3MladXRVetfrlVz2xYXBXqMBSCG36HxawRQTJoY+WLHxpbA0eJeaFGJUjta74GD/6EKDXOnrf7he57GAUX3O699PR4pKsEzJ1Ww6J61tJLOvFbOfpa3kNWK6UXIHgIhmQgCZ8UBeVc79rhU1V3KgxPsfEnK8h1vSvlj/WwqeBtPeZ5nqNOjxiPFt2gWaAb91cmbXXhyduHDCA5OtyufjWtSVqbDX4nYqvmP/XrcbhHn8cGbAyyNDveGk4WEhi9FZjWf9hySFd7bMoTgH43Y7iOboSOaRQ91Jn8qI/azicY7YkgFRFcIYV/cZEqWAsjG1bu1oFsbpFmsThOpykPS8Bja/1Z8xkSrHx/09ZNe1sti+ujuQw== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 8hn88gttSMNd2AWUfwEKDcTArzdVxwHpH6ZUSwhABlpS0UAk2Qt3824xkCiP/8aNw0sb0iQHT61gOkPXHm7dW4YQLylq/Cz5253KetYIFrSOwZ+FoSWGTvh+FUGHPTitJnQPXicSCS3lcnIcdJt57lIkWyBU3JcQMBAP2sqsDssgkaevHpF+l+7bbz6+60Xfqx5KntHvp8fmaAvYQ2y41cmumY06XMRcCc1kFgYXJU0s7WM4SWFPQOgBa5mcO6LaQObQ1aButJ9zqmxRN4djVUf0MCgIYtQ5FzUG0pDLn7pvmFlBbImVnFVSpyqdzv5J5BVg9w42oatHWsBhHo6Ctu0znuDSawr4xr3DCTFSelbvNX08pz1Jf3fpS5FjnL830aYWkd9IuKNHD7iwTbT1ILL3t/Lu8h4RYxMZtUTZWQuRTng/3RqujdhYUqlAVT5AkHwjx6pdC5eZOtnkmCSIJ8R81vx+6YQDev9/5tH/jdcAJAOvQpO8Z6I71v+TfVNtonECBgBIWy8Cki1Fg6YFY60cG8wi3eJf88+OaP+Q4di288LOEZYn/89rMerQQhWKdr/UtR98iuEHjRdnSIB+V3hhIAElSWhgVOrU51jcRuW9iDqI9/v/KsNPdWn/GONc9GCYbJzG6nlsFQpojRKvw0V5dsdXlBtNl4SmfkeaScvRjWeH2dbFTFg/2/a02mjnCXn22O+/ygLwrAi4A8+ifruT2K5HlcJ9LecabQ7Alkt1s8obbeo91/PBLhUaEDrxOku0RGF778BONEChrFRFFOdQKvZ7JseYU5E/XL42SbSW3aICkNzlZrq2sl7BkallulOQGV7LLfejsRDRRt0ymffhe/AATzHJaRiqJLJRb/AtTA1lMbFODQy/eaX41h8PvB3PUK01B0S/lX1ABqmMOaF4VPyDOLFeHITTxvFAqB2r8Ouu1IcP4JMOROpp/NONAlZBZF/BvPI41CUIMtYXExEwW3A/kEpFH6KDMOvScqvsn8aABJKVl7f8vglz/kUcUJKd/Wm49fWeU5KcB1S3Ydw3e7T73LR+n/Qcu1fe2U0EJ+UWTv63umWJTdXRZZ28jbu/gxlQRtXvUuKC7LZOAzgzgIq47hQ6by63YlKlTSQLl0WysPpukzNahKP9BwMEOXtg1vjRt4dF8VgSU+FvNrJfsYV8FGJSeJndBmFF+nHwC1NCpwn7VQRg7EYxkaKWd3EhYwx3AO6i90Bbie3Ah0XC2EhOJQsMT+rmMvginfko5XOhgNhHXDnDpViNLCt1qQcJYQvIdqz5s7VqYKUNiQHWVHVP9rVNVx/AnNPd6cA= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4aa7e9ea-1165-4fe6-2a67-08da763ffb9a X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2022 17:37:20.5360 (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: DB8PR01MB6503 Subject: [FFmpeg-devel] [PATCH 9/9] avcodec/cbs_h2645: Remove always-false check 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: Z5UHACejqr6W The functions to replace parameter sets are only called after the respective parameter set has just been read or has just been written; all of these functions check that the id field is within the appropriate range. So the checks in the replace-functions can be removed. Signed-off-by: Andreas Rheinhardt --- libavcodec/cbs_h2645.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/libavcodec/cbs_h2645.c b/libavcodec/cbs_h2645.c index e0c617e81d..4ee06003c3 100644 --- a/libavcodec/cbs_h2645.c +++ b/libavcodec/cbs_h2645.c @@ -666,13 +666,7 @@ static int cbs_h26 ## h26n ## _replace_ ## ps_var(CodedBitstreamContext *ctx, \ CodedBitstreamH26 ## h26n ## Context *priv = ctx->priv_data; \ H26 ## h26n ## Raw ## ps_name *ps_var = unit->content; \ unsigned int id = ps_var->id_element; \ - int err; \ - if (id >= FF_ARRAY_ELEMS(priv->ps_var)) { \ - av_log(ctx->log_ctx, AV_LOG_ERROR, "Invalid " #ps_name \ - " id : %d.\n", id); \ - return AVERROR_INVALIDDATA; \ - } \ - err = ff_cbs_make_unit_refcounted(ctx, unit); \ + int err = ff_cbs_make_unit_refcounted(ctx, unit); \ if (err < 0) \ return err; \ if (priv->ps_var[id] == priv->active_ ## ps_var) \