From patchwork Mon Oct 2 10:52:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 44094 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1204:b0:15d:8365:d4b8 with SMTP id v4csp1315605pzf; Mon, 2 Oct 2023 03:51:32 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHnn624HMQw7C2bT9Y2bFA1iOLNUMVSuJP3bXTuVkKdMqyiPMeaYnvLhuG1N8S8laZqvIcb X-Received: by 2002:aa7:c245:0:b0:530:97b5:49ce with SMTP id y5-20020aa7c245000000b0053097b549cemr8688138edo.10.1696243892041; Mon, 02 Oct 2023 03:51:32 -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 d2-20020a50fb02000000b0053457324642si9130582edq.228.2023.10.02.03.51.31; Mon, 02 Oct 2023 03:51:32 -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=VhtarhZX; 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 860FC68CD8A; Mon, 2 Oct 2023 13:51:21 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01olkn2029.outbound.protection.outlook.com [40.92.65.29]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0D69868CD82 for ; Mon, 2 Oct 2023 13:51:19 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FvPCUIS/AK4d/8moaCXFJ9p5Hrc4kalqzNafgfe5ms67qRkNHyydrJHq6U7s0tSxxbUyo/M3vVy2x5Rg4gTKaKWVopR7eRlZ/+1GV+gHSSDIrB5RnfaVL5GMmq2lBDnpoMECz1CauRofhUJjV6z46BDV/s5G5UQaUdQsEgMyRFJRi+tmxJjruaW6DZCU+Plcoxe+Eb9v4ol7mIyYSn0AMojBo/L6jTA+cjM/NXZHgQk6BEce9WD0Nbg1yIBs6f6aYEkO4MafuiivyH2pJ1EuuO0P+j56jBjRnbMC4M2Vc7fTcebToJAvse+LUIm4kAuAEECCvSy6Qi4bS3TY3KKXiA== 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=rQ0qCE2nhJRwoj9pN8w7QadhKBJUvZAQllvPBL/t61s=; b=KwL28w9my6h85YgcJxaPsX0hwUvtF0qCSYCKkVSzKOCn/4+i6zHOdg75xZb6/ihpI0pT+A1pGbNZgmtM8JfjBSKUC4OA9DbeQsdyVvJzXmGFfIxK9+VrXcOiavdpVwPNip6oAx8kL9DGhBs2bsBXtpmZvkU1Qh5a6oz2ABy4iarZpiT8N2cT0pg+dyEwWRmj0M/RjUdCo4fe6u6XxK8RdfX28c/r7WJLZaKlQVaTUvfX9GIYioHfy5HogdWBWIFjHNNSHfUPjDziG0UmfZC74vOU8BhZOCTzc6tHJ7WV8OIcXrWRu4AZA4Lku8OFhb4Q6qBR/Ylj5rbZb3dXTtKjIw== 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=rQ0qCE2nhJRwoj9pN8w7QadhKBJUvZAQllvPBL/t61s=; b=VhtarhZX+LYv2vOSgReLtjROteN4cgqAe+64t+2JLl+L0j09hwPw8B7/SZPG5uWfv9y5eijxlAK4inxl9zqs1LLhMXiLtG3Y7FHSfEjvJ2WbC0vfftIqnEJtJ0LzT3/xwgG/Ahq3jlYSE0C5ytikDEUSiCVY4Ou9QjOLQLM1yNQv0TJVCJYjejynEae2UySmVitMbBm8B5kdA+R6EMWtIDaMRMqT8+kgJ0F1Mx2lx++AJms3rdjvMjmrdo0/kpaZNHxOUIJPuCb458XJAougBunDJiLbo//E/IXdoX7XiBtgpNqQYpijcAMqOQZPGhkQrKG4SeEnLPjY5p0c4ryX2Q== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AS8P250MB0203.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:37a::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.30; Mon, 2 Oct 2023 10:51:18 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa%3]) with mapi id 15.20.6792.026; Mon, 2 Oct 2023 10:51:18 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 2 Oct 2023 12:52:02 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [X/qyeg7ojL6iGYNq0z5t2GQsxB/JHX6G] X-ClientProxiedBy: ZR2P278CA0015.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:50::19) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20231002105202.835642-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AS8P250MB0203:EE_ X-MS-Office365-Filtering-Correlation-Id: d3338ffa-b584-4974-8e50-08dbc33581fc X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: l7pxQiXiNaBNJhBr1eVD87TiI7aaaUSAWf20g1nwN3P8YZpjtFu7XYBtA1EJl3HoRjImuTz0+D9bQ830IGQF6tC3zLra4NmbiWI8BAXZ7NlbMbJcXWa6DOBW6plMuezqKagIeipavQkeflEUZh8ECaqtmHH2zH1YWOOo29+fy2LvI771DpEJ42dxbH/JQIwcUCPKa9QHR72n8fHhAULoVzPImLRK5kY+3ZCCDhlpDMaxUFpmlpAo5KndkO3j10LIcn7UU6Z0CkN9EkeXG9gVxC3/6cRz5A3t4ieOi7CAdPvbX8KIVhe2EvPVoRmFUxhb6iqRWOTR8MbByBClSrUTbGnXEylARhqISPFcsmnh4IvtRPqNbi9vQs2t0WfvpM9eKEPwdp/xJ9HZ+bFppkbpm3Awkd9TAPKwg57/V14NyDT+mWrU2Kg9DJZfsuc76+koLOseXx4i1DQ5p73I2xEeAcdjlzD4PDaFBuIG3BXCj6MSHnXRBKFdM3I7oFXTry6WPCc6p1Etny8wWAZzHLirThT+qdHIKQtTw2Vj6BC+RrA5lPJCHaBVkUOrcq56tABfObWw3IABGhJiXr1oQznyzjav+voJDCCePIbrCALrPXF/4LZV+fwl1DHaHU+5TKOB X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: v4PnALV32PgkNM2fHcHldhI/nGXO4JMCOIL1Z/hQj/IxweYrpXOPF9jrrWYFHIUNiIGOR/160bqW4ixG3TJS6pG2o33JjW9gXlXxKHczbVuBO0ATanf/31ERV/AycDVyxhCh7pQXGKhRxSqLjA+QCVWj5fV4VCI9VdZIx0wYjpi6thKdh0wKfXqGmcZpji1MS0hPIxAZXquu1CwRRvHshXMYLs3lVu02ctG2CHohBHGkPJOC2EtJX0NDd9FBgNI5R9c2EeUxJ+eqaR0nm38IGXr5b0I3HacW1VZUEtCeeRpv4VFbphpxW2JtyJgClXEcuJ1JTNKoWCHkLHZQcKx18/3/ZcV6KyZS2303K9afOtulcf1wsp651O8bBNm7BWAE7WAruts0NJCcqYfpizwU+NIse4np/uloYRS4GcFryWhYur9WT9wHx3sPLv/EsuxHaqH70yrMmPTZ47Xw2ujoK0VlEmX7nanPDCQDZfQcFLXazGv8iX6AQzfOMb+euRjFVRek0Wo2s5Nri3N9TpWoCYoLayjEyNvT16ziJLEHqHfS/sDD1S2R2rzGUqjn+41KcwIG7aC+OZ1pmWplnHx9dWWSyjlnhY91LfBAyDxIpObhrHpT3tAcyj5CvojKVkljs/NjtAlDEGoiSQ6XdndMZ4RoIYf0Zz62u4KnyxTUVP4jn+odX1rOV1raW/7ME0y4a7v4qvQLBTw+IrJHY3SgdB8cFVVAelcX9VlVoas3II4VpaElXwPyvjty43V7WIzl9itSmYvHjtBuz1RB96co6BjZ53wnPX28VGqhNZ6FxlZrmspTV2fRYIY2karubxfTf2Iz2iDPCYejgkFtb7XAxsDP7rSf5jxdR5gS0bYt4bx2tP6uF9F4x4qArzhJB6mDPFMbFqBxQmxpNS0Hva3qu9HIe06Ie3kwOJZWrtouEJQh0QnsSVHWuqQOCuYLVcyEP5PKxsW1cpMDa+VoRDXwY526+mn9M5/5dwXSOaGticTdCv0A09OkcxNrnKtN060VhwZs8PNJa7Ij1CLOsh442M1hlstEKRQvRmq8+f1m7bsUeTiZkg7x1ThEKd09zu9vCc7MiwxAbtRUU4f090BPoGrd6rllX+iDNfYMx/inV13O9pIwGdMjmHezvYXKfKCukAT4sL97d1qr24U869eJNfoS+bNd8xnutanC0y0JhjCDRfEKC0lIr4ZVEw2WM7/q1ah0fddm5hs3FpetVg9IezKUvGSOWCI3/BLkzxKJK5qm+1yjDGYqcUygs5nHqKBH X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d3338ffa-b584-4974-8e50-08dbc33581fc X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Oct 2023 10:51:18.7399 (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: AS8P250MB0203 Subject: [FFmpeg-devel] [PATCH 8/8] avcodec/h263dec, mpeg4videodec: Parse extradata during init 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: b7hYLgy7J9Oo Possible now that the IDCT is already initialized at this point. Signed-off-by: Andreas Rheinhardt --- libavcodec/h263dec.c | 7 ------- libavcodec/mpeg4videodec.c | 9 +++++++++ libavcodec/mpegvideo.h | 1 - 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c index 544d32b682..eb1d87a2fe 100644 --- a/libavcodec/h263dec.c +++ b/libavcodec/h263dec.c @@ -464,13 +464,6 @@ retry: } else if (CONFIG_MSMPEG4DEC && s->msmpeg4_version) { ret = ff_msmpeg4_decode_picture_header(s); } else if (CONFIG_MPEG4_DECODER && avctx->codec_id == AV_CODEC_ID_MPEG4) { - if (s->avctx->extradata_size && !s->extradata_parsed) { - GetBitContext gb; - - if (init_get_bits8(&gb, s->avctx->extradata, s->avctx->extradata_size) >= 0 ) - ff_mpeg4_decode_picture_header(avctx->priv_data, &gb, 1, 0); - s->extradata_parsed = 1; - } ret = ff_mpeg4_decode_picture_header(avctx->priv_data, &s->gb, 0, 0); s->skipped_last_frame = (ret == FRAME_SKIPPED); } else if (CONFIG_H263I_DECODER && s->codec_id == AV_CODEC_ID_H263I) { diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c index a8dd57bf6b..c8d4939259 100644 --- a/libavcodec/mpeg4videodec.c +++ b/libavcodec/mpeg4videodec.c @@ -42,6 +42,7 @@ #include "h263.h" #include "h263data.h" #include "h263dec.h" +#include "internal.h" #include "profiles.h" #include "qpeldsp.h" #include "threadframe.h" @@ -3831,6 +3832,14 @@ static av_cold int decode_init(AVCodecContext *avctx) ff_thread_once(&init_static_once, mpeg4_init_static); + /* Must be after initializing the MPEG-4 static tables */ + if (avctx->extradata_size && !avctx->internal->is_copy) { + GetBitContext gb; + + if (init_get_bits8(&gb, avctx->extradata, avctx->extradata_size) >= 0) + ff_mpeg4_decode_picture_header(ctx, &gb, 1, 0); + } + return 0; } diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h index 55828e6102..d7c2f57682 100644 --- a/libavcodec/mpegvideo.h +++ b/libavcodec/mpegvideo.h @@ -114,7 +114,6 @@ typedef struct MpegEncContext { int input_picture_number; ///< used to set pic->display_picture_number, should not be used for/by anything else int coded_picture_number; ///< used to set pic->coded_picture_number, should not be used for/by anything else int picture_number; //FIXME remove, unclear definition - int extradata_parsed; int picture_in_gop_number; ///< 0-> first pic in gop, ... int mb_width, mb_height; ///< number of MBs horizontally & vertically int mb_stride; ///< mb_width+1 used for some arrays to allow simple addressing of left & top MBs without sig11