From patchwork Mon Oct 2 10:52:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 44093 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1204:b0:15d:8365:d4b8 with SMTP id v4csp1315549pzf; Mon, 2 Oct 2023 03:51:23 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHlNylIBq+Nikc98L/rabXVsWefqevRIZoCGNAHoHzH8FEYTe9vDM6canURkLdV92DcPegE X-Received: by 2002:a17:906:51d0:b0:9a9:dfbe:ca88 with SMTP id v16-20020a17090651d000b009a9dfbeca88mr9857099ejk.55.1696243883607; Mon, 02 Oct 2023 03:51:23 -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 f15-20020a170906138f00b009ae25613f4asi8868453ejc.269.2023.10.02.03.51.23; Mon, 02 Oct 2023 03:51:23 -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="Fo/Z6eo5"; 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 61DF368CD2F; Mon, 2 Oct 2023 13:51:20 +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-he1eur01olkn2098.outbound.protection.outlook.com [40.92.65.98]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7D0F468CD2F for ; Mon, 2 Oct 2023 13:51:18 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Kf//JZYVznbfbGNzYfwGGSeJMGTf5CrQ0cd2qz2xLy1+xGkVkePSk40x/kICmwynj284WIPI3uVUdIu4d1Sse7BQ+ye8L7txaUIqzH5sgbqGd8aRiP7OUr7ysv/VjkOC9wQFG+rcSLm5T9qv+EcEePoHXZkX/AdOjGMnEX/z/4iHU34w08AtkrmTJctxKQBtt/ru3BDn725UmT1r3cJn0fsF5AI8x/QQHJvRDFbzYXtKkda8OlSmkhrVvzFxBkhGWSDSHY4GYQZLECVc9RF5EDsg2sFaBz1Y+bN2NdL5F/L0XWVmUmSEmoEJ3YvlwVVm2PnJ3DuFwd/XCE7lEzme4A== 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=RliCPU9uIab1uwiE/yiHq5JBigVCDMHXxq3MV5l6AUg=; b=cAd3m5FaDIBd+dwSrQBe4uIgR+Oaagur9pC+RtHryuRV4aOlGb+49mJq8o7/ATO5BveNkX7QARrBGWNAigyI1mkcVTU2+rXJ9MgYmbYw585ehIWTfBkky8jPZP+p47SGzf/uz2p4l4s/b/16z5JjnrHQCI7VxmF7LstfQwop5zmlGOx+3lgPdERqPePr/5uclj0aNl1AmUTrnar9ni75pW3wJBYj9qyEuourUGRSn68IWqcBIGQTn+yeaj3zstKuVTMmAobuXuPJLaUaUixXNZh6kcpLS2ps/qsV12NdDQHeB0KwM8EwR3tsVyRcHVMSOiwIxIk6uZBM7PnNHYEIIw== 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=RliCPU9uIab1uwiE/yiHq5JBigVCDMHXxq3MV5l6AUg=; b=Fo/Z6eo5Ug0oYfvk/5zqhFZwqlc+Ce91vX91c+YgIJeXpAt02apXJm96bFnLPxeyiUUlTR84erHQB7KbYululZHSlatdAdTlVu2HPCzBo0dlrpQEBGPdxT7X5LQL1DIFzjcF4cCYpRFzQamNiOHqz1nyRTLweoqu71rr901fee659lP4Ij5ZeDCeHUrroFUhIB7mJl8BO1vzg69LJ0KSYvTrXu3QkikXMJiYEHMsxLPvQqr6OdDig2g04sUz7xi6v43rAHoDZlZA81A/MtVz/4YqBIWEK/AT2fN5sW/ae4IxeqId2uP/5/aXy3mB8ErGwgCA2JMRgFVyy57uJcufyw== 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:17 +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:17 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 2 Oct 2023 12:52:01 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [hMkScxqrgEEmBkE3mXYjy5IBb9VB30sI] 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-3-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: 7f9c052a-ca3a-4533-8060-08dbc33580fd X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6I2k8I79IKmBzzjhSsQSKS4Xi2cR9uUJCc/Y82ev29F5ETt+sBa/wxValBWFdMaw5N7ESvhORrKW/1IJodR37UgvStSICYkdbciJTTa2pbDVHy90mnD3ctGpw8elYVXuFfl+WMfZEA5PflL8bpmuEXa5801sU9KwUNI/RUn9GdOuctAGlfZeZWfkpmHz6GyEoD6ot4RghbEvco/OI7DNTcwubNIbXELS5evCzEhs0Sck404xg58Reergp8C2cE3t7MC7NANMDe2dBAlR8/cXraon/JyV5sK5CHX0v/z7/cX9npRIX0+Z3R7K0JcC3HjRKEn4OWPTHq7hTGMRQkhKPugX+ygIEiGHtedSBdqbwInNM6k6PUeDwNOb/exjwalw5jUzV0UtvrBNolfRzxDpvnmnTSX3yhzWBXkJsPNwmtNZsfBDLd4zzI1RvAZXgy3q7IZJTUjdNacRpVyifP4Sk8lsXKGEF9gxgArflLC19Cf78Ii73QaH7b2TTQUJWZET+Z2QUQOWWAI8vr2ETfTBUENqoyW7ZW62Kcs3/kT+S32eQEYq5qsBRZn3gsANsJA4WRH5m4DaBpreRdgsMH0gPUyTz+Yt6MrGQvfNF4tW8QijU1JVs0vn0gDxR/80xDlo X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 8jniyJbY0bnHVc5W2cwxif2cXICRPfK0EhsxjSvUqOH+CnH0IofZ71BSWf5LhXcR27pjVUnRbNRdCV35Zf/QgRGDHbPPLwlgsDTz1Wb025cOc+0YwgL7NsUc2yPCbMBirU6vTF+vM4KjKgye7Pr4eJb+Yg76BuJoQiuvqXVwfLTi3+Prwb5vRCCdpwt3DDH5Dao4QK0pIeM/DmkOYNAFw4KBOS7Rj7xJFcH6zs++pzVg+0zP/Dl7qw0pzc7/YhT0tYOey0kxXZcNiiJWdpY++fpUf+8AtoAf92HTrwagcnufIWMYb6IzvUDo4BuTFd1FbD3B+WFmX/pGA4gF04k/orGyW8OZDHcxzg9PO6Ygk/r45NgBDAHrA6uITlA1oBi/evYuTROFVc4+bOi2NnZUASJ5/QUJ68A+Dvqcqt1tF/e8oRmyC4RcQ7yV6rsKf5MnFJX5s7swCl+5vqXdFdlwZNveL8cNZDdKpFpsx5bV2ytgWWF0DZRhijkfxUxTFr4JcmgziIRb21VqQOtDRX0RmK6NKBGZCPmGoHmn2zXkSTXm8cDnArnVuSw5nEDLM6aa1iZJj1AY7ZXIlAY9ZZyLPtwxttKOdYWwZMnXtJtBsOBB69E81HoYu9ckX3Alj1bxekz+wUL7StO6/QTyd6pMsqsEwfzzeoA58DrhYlR4qPHS5UKsLkkJ2Xjpaq3w6Wzq1iupmfa4cG6jIxzhPH8IqSQ/r/LOd5glk4an+O4GBp+wVnM5FnAmDfxtW2myEnxQwgORkaU6RR38CLivWlF578DqlALqSNRRlU/a6GiFilhHOZljK/w5xU0MQyPyaOxV2aX4SoVzlvYSeZzWI8Z/p7GCntjf5b+ndshID9cIrjz8wK1HJKv+6/Fyck+oSaTO7o5eGe1VIn0iMjYOo6EBr2d5rWidSCroXZwn2H5Wy5/Y2W5PHC3ulbRnV7mzu1K8K15ZktUnv4DQj8zqc0mIraC3MQl6mbbDj1BS7GeNGmg/zDQzY3mQUwRT/tV0LYmEovptXtJCCrdI//iIMUqbkhPE92v3TVtQsOmOXcI6lOF/xpiNVtQYXqP1DukIq8Dp9mc3XwjneYICbqZLljUngRJNktA3pn4l/T3Um3yoiLh83F0jTfMCN3+4A+D7yO9cihOtt6wZlJslcrsuq7L7k6rArOljE3UeCvhBNAzGKPfMU2q/ASdkpgfphf66aydxDNXbilf2b1opmWI/KOChXx9FmxPuC3yw+JkNRrFBVL/XAJDS8DRFfC3tfmwn3lUC X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7f9c052a-ca3a-4533-8060-08dbc33580fd 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:17.0226 (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 7/8] avcodec/mpegvideo_dec: Always initialize IDCTDSPContext 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: sP59cCJLW3qv It has currently not been done for H263, H263P and MPEG4. Doing so avoids having to initialize the IDCT permutation lateron when decoding packets in order to be able to parse a quant matrix; it means that every mpegvideo decoder always has an initialized IDCTDSPContext after init. Initializing is done generically in ff_mpv_decode_init(). Signed-off-by: Andreas Rheinhardt --- libavcodec/h261dec.c | 1 - libavcodec/h263dec.c | 5 ----- libavcodec/mpeg12dec.c | 2 -- libavcodec/mpegvideo_dec.c | 2 +- libavcodec/rv10.c | 1 - libavcodec/rv34.c | 1 - libavcodec/vc1dec.c | 1 - 7 files changed, 1 insertion(+), 12 deletions(-) diff --git a/libavcodec/h261dec.c b/libavcodec/h261dec.c index c41b96c3c7..6cdf11f822 100644 --- a/libavcodec/h261dec.c +++ b/libavcodec/h261dec.c @@ -94,7 +94,6 @@ static av_cold int h261_decode_init(AVCodecContext *avctx) avctx->pix_fmt = AV_PIX_FMT_YUV420P; h->gob_start_code_skipped = 0; - ff_mpv_idct_init(s); ff_thread_once(&init_static_once, h261_decode_init_static); diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c index 9f63f1a7cb..544d32b682 100644 --- a/libavcodec/h263dec.c +++ b/libavcodec/h263dec.c @@ -128,7 +128,6 @@ av_cold int ff_h263_decode_init(AVCodecContext *avctx) avctx->codec->id != AV_CODEC_ID_H263P && avctx->codec->id != AV_CODEC_ID_MPEG4) { avctx->pix_fmt = h263_get_format(avctx); - ff_mpv_idct_init(s); if ((ret = ff_mpv_common_init(s)) < 0) return ret; } @@ -459,10 +458,6 @@ retry: if (ret < 0) return ret; - if (!s->context_initialized) - // we need the idct permutation for reading a custom matrix - ff_mpv_idct_init(s); - /* let's go :-) */ if (CONFIG_WMV2_DECODER && s->msmpeg4_version == 5) { ret = ff_wmv2_decode_picture_header(s); diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c index d2dbcd5b61..c0f1e8763b 100644 --- a/libavcodec/mpeg12dec.c +++ b/libavcodec/mpeg12dec.c @@ -1057,7 +1057,6 @@ static av_cold int mpeg_decode_init(AVCodecContext *avctx) avctx->coded_width = avctx->coded_height = 0; // do not trust dimensions from input ff_mpv_decode_init(s2, avctx); - ff_mpv_idct_init(s2); ff_mpeg12_init_vlcs(); s2->chroma_format = 1; @@ -3048,7 +3047,6 @@ static av_cold int ipu_decode_init(AVCodecContext *avctx) avctx->pix_fmt = AV_PIX_FMT_YUV420P; ff_mpv_decode_init(m, avctx); - ff_mpv_idct_init(m); ff_mpeg12_init_vlcs(); for (int i = 0; i < 64; i++) { diff --git a/libavcodec/mpegvideo_dec.c b/libavcodec/mpegvideo_dec.c index 3f173a9feb..39d1282252 100644 --- a/libavcodec/mpegvideo_dec.c +++ b/libavcodec/mpegvideo_dec.c @@ -54,6 +54,7 @@ void ff_mpv_decode_init(MpegEncContext *s, AVCodecContext *avctx) /* convert fourcc to upper case */ s->codec_tag = ff_toupper4(avctx->codec_tag); + ff_mpv_idct_init(s); ff_h264chroma_init(&s->h264chroma, 8); //for lowres } @@ -82,7 +83,6 @@ int ff_mpeg_update_thread_context(AVCodecContext *dst, s->bitstream_buffer_size = s->allocated_bitstream_buffer_size = 0; if (s1->context_initialized) { - ff_mpv_idct_init(s); if ((err = ff_mpv_common_init(s)) < 0) return err; } diff --git a/libavcodec/rv10.c b/libavcodec/rv10.c index 6abceade4e..fbecfdae9f 100644 --- a/libavcodec/rv10.c +++ b/libavcodec/rv10.c @@ -420,7 +420,6 @@ static av_cold int rv10_decode_init(AVCodecContext *avctx) avctx->pix_fmt = AV_PIX_FMT_YUV420P; - ff_mpv_idct_init(s); if ((ret = ff_mpv_common_init(s)) < 0) return ret; diff --git a/libavcodec/rv34.c b/libavcodec/rv34.c index e9660bb457..152c62fa07 100644 --- a/libavcodec/rv34.c +++ b/libavcodec/rv34.c @@ -1498,7 +1498,6 @@ av_cold int ff_rv34_decode_init(AVCodecContext *avctx) avctx->has_b_frames = 1; s->low_delay = 0; - ff_mpv_idct_init(s); if ((ret = ff_mpv_common_init(s)) < 0) return ret; diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index 449d2fea5e..a4f2d30e22 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -431,7 +431,6 @@ av_cold int ff_vc1_decode_init(AVCodecContext *avctx) return ret; ff_mpv_decode_init(s, avctx); - ff_mpv_idct_init(s); avctx->pix_fmt = vc1_get_format(avctx);