From patchwork Tue Jul 12 10:27: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: 36756 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:6da0:b0:8b:e47:9dbf with SMTP id wl32csp1909148pzb; Tue, 12 Jul 2022 03:28:37 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vl2Y18Zzukb9bOKY66adGUO64wSn2mO3SK5moD6IJC7us/ajOTqvdKXStR4Di97iIO6yJ1 X-Received: by 2002:a17:907:2bf4:b0:72b:3336:ca9e with SMTP id gv52-20020a1709072bf400b0072b3336ca9emr18391602ejc.341.1657621717294; Tue, 12 Jul 2022 03:28:37 -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 v8-20020a056402348800b0043ac8673d94si12878875edc.614.2022.07.12.03.28.35; Tue, 12 Jul 2022 03:28:37 -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=KAiJPYF0; 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 C84B068B8AA; Tue, 12 Jul 2022 13:28:31 +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-oln040092073026.outbound.protection.outlook.com [40.92.73.26]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F3EC768B486 for ; Tue, 12 Jul 2022 13:28:25 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ejXVSVa2D3kXCI6DBPf6iXaGiGrTZOfrSm58vuoiJb8HyMGGeB/HXOq0E7D1hEgpRJ5LjgyGfgTHjNPMvMUWOSP4y2CVlLrTnZaIXZA6HXUe46nk9y8SUUMWTJJrFX7qZQGEn7KnmoHGZDzNc5vwYZtUpDHQvmdefC6niiX6MhJJCMiFDRa9dHHjDudg3F8inKPBgSlBvfThI35Pl2NLHsBy6ok6VujCWdps2nM3xbz6b9XqkoA4swrCsvlVFwOaDGtH29c76agML3c/oV9JQZeM7wODq5Fmq/jRoMaTm6plHkAkAhgFLF4+vPZYmY2Qxdlu4+y6MDLXAvC1oCTbrA== 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=e+ZZ+NhZJruYPNN9xiNBwiCvHyJjLCROysG7CI8IhPA=; b=FxpUDHdl6BzrVoihI1NiUO1mAqIDBTzXGA/f3E2s2cyH1SCk28rnfjLZwh1iZt9IxtVbXeLsyjwtjAwHnccDVD99ZboGEHZZRTE0M1JONfVJrBO5T/Q/L858ICHJZ4FgG0781Y/CrNqd4JgIFHelXf7YfnHsDlbkxbjZETQXRr1OwqIy9wAf4Wk/qCsWskbQVy22hXWH+VSr1181eGgSxKwPBQgmLJeVoy0V6kh46rTTrLpSJ2oj4nsOQv+9GUXMVVexSFww5rQjYrVUCKmBm25ND/5RHqpWqrVz1TdgKAlQuo902GgNnozW7Dc0FYO4dlVayQC5b50k4DaSBcb2Zw== 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=e+ZZ+NhZJruYPNN9xiNBwiCvHyJjLCROysG7CI8IhPA=; b=KAiJPYF0oShnlBaYRcc90zToBAOQ+2pWtPskRY3JNBrPaEKgxXSn58iMDKVrI00+IFsDmG8ZYorhV6BOIlg9uA+xRYJiUSGt13u6MJgirZQVheup9y6a/sHTUq8mp41ORWuvOY8v5YtXcZ7ZxCW792uwsU3NswwwWte0O9G1hDOKcgHsVe5h48oXTN1OMFhx3xXNCnCwPU7Akxp1vmcfiWvrhUNcar+NhaPkhbYxzjcKB1WKqGfqi/LfQapM/YhwLBUgyJeEgv21HmLIu2fhlgsprsr5d5898gNz/uqEF+7d8bbwOSFSs26QV8DUqKey770/E6tWsDJXRwj8Dv+hEw== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by VI1PR01MB4814.eurprd01.prod.exchangelabs.com (2603:10a6:803:92::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.25; Tue, 12 Jul 2022 10:28:24 +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.5417.026; Tue, 12 Jul 2022 10:28:23 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 12 Jul 2022 12:27:48 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [XS6dUN50p3/XeGkSCot3fbqceVRPVidm] X-ClientProxiedBy: AS9PR07CA0048.eurprd07.prod.outlook.com (2603:10a6:20b:46b::15) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220712102751.3784996-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 724c3e82-56b3-4e03-0ee6-08da63f13fdc X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UIKRQhccSdu4SStA0Iuks+UmrEAqE8h2bg+60aLs8LL8ewSZqy1xJHqojXjNe19S/zuPzmMd93yQBiT/ON4oHHLVinSBUjC2rOHJP28ELe+FGjS8Qjz6Jl+Ft6sZ1KCGGzUXJI2D6UApLbt5DvOMlwq5cbzaUEvLJ2fHB/6GRkR3+/gF//NY80R1uyBpa/TmLpLs2UNLX7fhwdDqaL0W8KO/mInGI3iigiHOtPZONDpL4rtsZSdp4VKQl42rKg7vi057mxmXDrXAqUBQMIA+psuUcWE+xuzkij8MYP7sw+vsBdQrStpulaJBOfnxlP5deGRyr8L+ZHQ5A8PaI4eLGA8P+egG6eLrdLAFHcR4bwRGsWX2GB5P61JWclEQs3INcECpqFdsIoKc1ZL9yFRE519bSusU/z04jZF2vcR9iQO5TpZScRNGxHYSWl30eCwYb4lpacy8NxidICV6DV8Xlc0z/fmBhunWHDUjLRwtcI/TYPMiTABXgIGICjZ8ZEqa63zYxzG16FhSbpz8tHB0757rwSSSLR+W+FPOmcgtM14ondX+KfscdocqOuVVDxe1nK8frpxf60eALkS8DtO4qs0BcmazislacakjTY+AbDahAJ6t5HmeC3Z6f5DXTBWZIHLjf4Wl/PXgqr/Wd1w6SQYFYSMgWCeOqaoBqCxAtP6CdDwsBgJ1Z5B2uhzBDle9YBY+37beJAgew== X-MS-TrafficTypeDiagnostic: VI1PR01MB4814:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: g+1gJZtVfVrHNAtSo7+03QwaUGB5n+p9CwQewOV7EjEvN17rVgBsgkA4q33NSzJuY4r0Zb0huGKu1U+M3RUtSuFcJ4CyJF7+ESlbjwZ+C4KufGuq1Y0pCNNN4AWhV8owI65Qwj+gQUzjnfFC67soZSt3jaKqkgsNY1Ekdi3k2xzSvOLEd04tmpWCfTaGWoKTRzhtPx1N1oe1oZ8ay+mpYIcC0/6AXNMVSYOhly8WZJp3vL/Ufn1F93ByjxfetPfQzq9WBqDhoSI/vG/CWF2ZlV/OgokxVGhddH8p97Me5mLGkv9F0UukeWUPDlBdy8Qq/HsB2u0Ck2CTBFNv8Df9xxtThrQp6EcoGxj+p0P817WhbQfuF4FtdwlINxjftGlMNgvy0BxC+qsENqtedbDF32eyl16gnpLYYxJ4QB+4qsij3o2Vsae0bN7aEGmkw+3JoA1tZKVGmepZsQcFacPkZOVjT167z7o2Z0/Mhjzqk6sYFthcQmmPCqD2sfvGUjQLO+YhR2F3QhsTf86MiBK2MWTm8b/r9LjVexDJKBod+ILeUuVt1vkBAgUC6QxX1KS4vM+AaWXEONSYohW4ZqL+pvUrI1MkMV44tYLzoQcu+8GJYksz8q761s4pgwF/AlC5FmU0FiOeSdcgrRo7oWUQCku+aH3l78MkcIqO+u4NnacFLPFks4IUlGYejLair6CwP9fkuBtjop3v6P2d2DVuZw== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: KIvhRsd3TCEEUHeZwJLV4yermwarNqFFN7v4P+nBxu/Qxd3eVAh5uD+tTBjZb6a87nnsyq1kZjsAZc9OOhzXq1EhROqA6LWT4dahx1w3MN9U8V2AEChLISwnS/hO21mgjwpwA3448I6iwh2jK2DGPnu/Tb5ccBYhKQ5SqrsDWuwTW1V4Emq+22cYouegGsfPRiT/BCnhbZereHBBhluOM44R2csizpVtJLk0/IZLLAjlp2QrrkUb2axvtABQmfGKEHZ4msiGLMUQ3VuvYUye7jUGbtJVoDo4FzAe3aQoqBl+5xSCTm6bpoCuGsH94z5tDY1CXn9+VgmfL0woVc3CFiphbp1kPg9XhQRCsYqNRVKj2deDBBkuivuyCw0jayx/Ck7bE9d+dZXwdCtvZ9rCrANqBTm97NMM31VOzc4E8xR+mbWHUmfKv0MLb5rqLwxbJChhOzJK7zgbwAmv1DmwuWTSRTbCfabbGWvmsPhMF2B8xNV8fXPIE0B0rQqGKwF5IOiGgkklcfJlSWFlulzozXqc0UaNZfaHHG8aTiiVWeoKGYnXJg2Yhbh3vrrUT8w7lVFNe5cmfBmXmKQtITLaTXOHo7/4iT0oF7qMTLROxT4ayBqmOkj3Mp7FA5BXljOWYbgc0h/kNUTptiuAZ5vACKQg21M+ZAYXBUtx1zkNVW3ZrMQ31u0Ds3VoWjSxSxqVYiHmaV9z290oGrrnSkj/flHEYRQszvGtx+1CS3F79SlPY7gE4oSM7EofLjJFciVNUe/MKqUF0cliTAD24dLwYoRC7agTOupsaWhEmKTQtrXQwYgZXXW6Kv8frZtrZa4lMqIzILk02EjFwyj/GinyJxacV2KTvstVL2fgyM14WqzDX5aBRvhcCO60MJOFyMeqm++7KpwWUK07Do9Px9mLQj3wyi1UTMbPo50yavHX2mKUJEQWEXjulpx4aQuMIRQc2Exj3Cmrnql/aMKuaC8fgExc6SfY64VhbkxEYeCaTh5E3S7HyUoLfchSHbls61oAjtKTKOZLjiFqTyt6mcSeqsatzw0FpB/ewc9jogKIAfNjDXew3iqbXyjxc41P9Gf3PPBGsYoM/H/aROoq5UCVgk1dK9EnqWSqoo24tENxkOsF3XDt7LCMc57QydCUuBQJYFLPcN+bsmTKO0rDSsrG/hmh7IKZZVBs5DCdcj72cVf1rGBQqFuzaUKqJ/OFsqInJku+/eNv9ce0S86ZZ/XWeTjgvzRN/PGE1cbEkzGlbi9Er4eB9mX/gA8JUBXgYj4SAwmsg0hFJQXmrt59jjMuWLbFhp1w/QIXKVvUvaLIOFA= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 724c3e82-56b3-4e03-0ee6-08da63f13fdc X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jul 2022 10:28:23.8500 (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: VI1PR01MB4814 Subject: [FFmpeg-devel] [PATCH 4/7] avcodec/iff: Pass extradata and extradata_size explicitly 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: QcVxqZgHCEFf This might be useful in case this decoder were changed to support new extradata passed via side-data. Signed-off-by: Andreas Rheinhardt --- libavcodec/iff.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/libavcodec/iff.c b/libavcodec/iff.c index 13912e9133..453e910982 100644 --- a/libavcodec/iff.c +++ b/libavcodec/iff.c @@ -201,20 +201,20 @@ static int cmap_read_palette(AVCodecContext *avctx, uint32_t *pal) * @param avctx the AVCodecContext where to extract extra context to * @return >= 0 in case of success, a negative error code otherwise */ -static int extract_header(AVCodecContext *const avctx) +static int extract_header(AVCodecContext *const avctx, + const uint8_t *const extradata, int extradata_size) { IffContext *s = avctx->priv_data; - const uint8_t *buf; + const uint8_t *buf = extradata; unsigned buf_size = 0; int i, palette_size; - if (avctx->extradata_size < 2) { + if (extradata_size < 2) { av_log(avctx, AV_LOG_ERROR, "not enough extradata\n"); return AVERROR_INVALIDDATA; } - palette_size = avctx->extradata_size - AV_RB16(avctx->extradata); + palette_size = extradata_size - AV_RB16(extradata); - buf = avctx->extradata; buf_size = bytestream_get_be16(&buf); if (buf_size <= 1 || palette_size < 0) { av_log(avctx, AV_LOG_ERROR, @@ -274,7 +274,7 @@ static int extract_header(AVCodecContext *const avctx) if (s->ham) { int i, count = FFMIN(palette_size / 3, 1 << s->ham); int ham_count; - const uint8_t *const palette = avctx->extradata + AV_RB16(avctx->extradata); + const uint8_t *const palette = extradata + AV_RB16(extradata); int extra_space = 1; if (avctx->codec_tag == MKTAG('P', 'B', 'M', ' ') && s->ham == 4) @@ -389,7 +389,8 @@ static av_cold int decode_init(AVCodecContext *avctx) return AVERROR(ENOMEM); } - if ((err = extract_header(avctx)) < 0) + err = extract_header(avctx, avctx->extradata, avctx->extradata_size); + if (err < 0) return err; return 0;