From patchwork Mon Sep 25 18:04:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 43901 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:2a18:b0:15d:8365:d4b8 with SMTP id e24csp1403663pzh; Mon, 25 Sep 2023 11:04:42 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGjKPTyJNAw2/OopHAhTWU8sJw25+cQWXtcLDKibhhi5NE8vqOWFT8mfhDgcaz3DB/DEAlE X-Received: by 2002:a17:906:cc5c:b0:9aa:e08:9fb7 with SMTP id mm28-20020a170906cc5c00b009aa0e089fb7mr6155127ejb.76.1695665081722; Mon, 25 Sep 2023 11:04:41 -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-20020a170906bc4200b009a21af200f7si9314559ejv.993.2023.09.25.11.04.41; Mon, 25 Sep 2023 11:04:41 -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="LdMsZf/J"; 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 4E72968C9F0; Mon, 25 Sep 2023 21:04:11 +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-he1eur01olkn2036.outbound.protection.outlook.com [40.92.65.36]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8CAF468C9E4 for ; Mon, 25 Sep 2023 21:04:09 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=haidh8ny3m8xGfqP1ep6e6FWoEPmt4VnVklfSzO+2hpwHCbqD9jGfSXUAsbna5K9Tsidj5v23iIlJnsA4Ue6+34PLpiupZRcLxN2HLtioNvmzahD9ayUcCsWubVJbaO3bo13r7kjvmMCqilVEwU++j4KAOkntNVftmSd+5pAbeMXFNUi9yui1iMDAFo7QhWzSTc+y7Dr7E7LcjDGPaHuBUUharLczfHAyvHE9ot/Pb0XgSDqfs33s0KhKevnvOxixBgePb1R7eeZRcuswtvojgcDpPwuJI3WMmAZGuFtOEa3C5xffFxHNbqBSSimhQQVYX6hZjdJxLzlhyNlwryOjA== 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=s3xK22IbhPq9QkDBlAMuhXhGfiRrmCaAxxAwHfSffgo=; b=Eby3mWxcnrzx1LnGfwACGjYAXr6tufu8Q2f9KAFIQcqEUexakwkYmnSPdaUqJPBlk1LjA7fs4BUCvSSQsi0jLhdU37TBMd2KyRVahQSw1uLr9HT4p57i0MgiMvapDExWf6PwitfUxVpTV/zHatQA2s4hLDuZmNc4CeqeNKSJrzEuvp8GYLrUMdaguzECztWLYiOVpaMVQXQTTGY5Nv8ORmu6eTsu50XNFvZG4pW67pAU65V/TYgHF3jgRpcm1g0k7ySphTNG6e0nhMsitPW15DtDBkCjxwwgww2fqMv8Y2xDuWSBFLwwZxqmNYtH/qQ0ZwIeJyw7mBWFQhZU28GDGA== 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=s3xK22IbhPq9QkDBlAMuhXhGfiRrmCaAxxAwHfSffgo=; b=LdMsZf/Jxi6G9sXp487dBEU2npeZNQtz+Tdrtb2oiwsC6NPy8Y8w92Z7sZixRxgGy6sM/6D2Q9qWlqsjHhWIlHjbAVqMxGZnD3lNWsyl8huui1SU6xk3kZTDdezL6FMnZihnpoBUDDZkiPxZxYv1P09wRwPX3FciWAXC+81PUW+Pva6WxPauWGYIi/QrXDDsuIk82NHFyHLhV2gQeDgAnIdViRi1alRzB95C4+UUJKctY9kterCQfWRvvfWnWh5/aatBvDHXp1ZlpDPhjEOAk5zrdgu3zFfOd4lmsKtanATl56Ufgb+/KZF7t1EUlOOYme+SqAUY+bgKOzZMkX8pcw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU2P250MB0271.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:270::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.28; Mon, 25 Sep 2023 18:04:00 +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, 25 Sep 2023 18:04:00 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 25 Sep 2023 20:04:55 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [Zf7kU99vX9ebHGqdDkpYoMPk8m39RNVB] X-ClientProxiedBy: ZR0P278CA0083.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:22::16) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20230925180457.2060101-6-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU2P250MB0271:EE_ X-MS-Office365-Filtering-Correlation-Id: d7991728-4dfa-4f02-4480-08dbbdf1cbca X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: oKPXQVaThUovXxcQT8sn29d3sEvAbsz0kaUcERzXK6s7+Ao5aszYtQVuFwQ68NsL2/3ZtzYn/ryDOHX07f5Meooz7IVcDD36IB3gup/NYmfjygDgvLnmQhzBfYW0A+4IVP1MEcupwbeRk4YM/6jk2JERuUG2Cz3BJYxNUlM5rvXBx8d8m6Vf1XchNbUH60CYvZn6lmhM002+atrfvwpyt9I9CDQxMrfETkerwzq3Kwg21+0hJigOc2s8TirDvElZlnAODua5LnmI3FGF5bFpuOs/ksx6xMWy0VHPNqMPVdfJhzx7ft44peojnw965bJGUGuSEzXQ6dUc+B08fB+LprJYNKZp0r+CUgBiG6ngFDILBCnFKkkdXZR/nF6s6OVgTLO1N4ZdtMjzp3eSbL+YgWsknl5xbvmtmTVMcQxFHHfEvwc18rq09EvtGU33o2lW01jBy1ZU5SN105STdniejMhMyWzrjx8Dr4X5CijC1r5fslWTmdPN6R4qrzbEpDaUXjXyrLZh5ZvfJ5HBf9YAEuW7WY5I5wJNBbERU1TbPsThM8EuOWVtlW0Cl74IRzbgYhZae3+D3XTL9E6PnDWfuNQd2IzPqWLXYS0oscmOwtFEWL9TV3vzw8dK/z37Fwiu X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: gjcd35fdl4+9dJYD0ezhRxFAgevmWQa28uxpouPHjW6z0FLSXwpj+o7L06L/RSYZPrze9HZDKfrdHEX+tBKnFMRBSWqJbR6nYdjtF2v2Ts8i0W6SvE/h8XJFYL1AANXGnf4IQ7XEDfa94dFtMRdYUDyiEh3BaWebSekuKyGchCeP6zMSYEp4W/y/dYlYtiH7Xchcwjhk1uuwB5U3wR2U48PvgmLsoH4TkAuU73Hd96p821kiBJhhxCcktHyObcv6QC5vg+sZl9RehzdVnYVeOXw8jsYrDnASoX7+Uq4rnDShq/WQQHigHBb3SeQ7u4IR7jcXM+MkXdiALsp5aXsVuTpTLyZh01psQwBlSnZQfMzn/lqg/IIRI6Hbf+KwfpvGss7w3d/r+TsPzHQvqjWzFQHKrl9Ezyq3NSjls7d47keLsTrC/8CETXnllmTXuAJrIz1EOBIHUN6402M7gaVjU4uJK0Mv7g3nvlVE/edSKmgQdXtpyb+G64SiWHVr4DP+Hb+iSFFTbxVyxy3/XrnOTbftqSEQzmkwZzcY4pyIDOQ1hnrg8bFoHQfTh+EhUFbKW7p5APxUCuMiV05yq/t/Ewbnf+7BPldrjCmy+WbSR2m6fO5ml8d4TdvtHfrPGuC7k7Thaj668UpNNKFKjfreTElBJKy3hvmcuaLlfLmwX62D26w8f5ytKBgwtTbHLbmzfKvAQvwXpB/gxHNpiS11a++Jy9BgXDeaHzc6oqCezibSKHsasVYIHOfMDTcai+pXe7nnahqfO/F13v+v23UI7kf1KBJToRcXpKw2IPgSjVTiC6fme7XXw16uMXYX5H6mWl19qE09lclyF1BlH1SC4YhHrOZ1Nwa1YFiF2o2JjwcYD9J6WXN9gYbi1tDMRpD9SU3gDy9ukUbvrJ0N/gPOU754M/hmW0hiDOA09/YJQ0ljh6VqQemmABM9ilGdvGP3HdVDlgcqT+dHHj+3RZKJU+yeURg+ff5RlMkaSl6FT2jciwVH7tK1i6CsuyNb5QIvxiFzB2yT4c9zIbRQaYU13HI6WRnmTuK+UAohP8do+BiXG08YDpQBmqav2zVGtZ9BT7TnzT+mgrvaie8LuDR087rQNp+8wXtqblmb1EhJpbyQmqUyEmfJ1efms0yiaTjrgpBNJN7wcQUZp+bC4LJNzcHDcYlbFDXV898uwQTLoNf51NpQdAkYVzCV7PQCSBLMe2DwbyAzj/enbh/De8FKUlaFyYNabjUt5ijpBhewUoXh8SgqOOixGS++s9ByMyvo X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d7991728-4dfa-4f02-4480-08dbbdf1cbca X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Sep 2023 18:04:00.8973 (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: DU2P250MB0271 Subject: [FFmpeg-devel] [PATCH 7/9] avcodec/snow: Move decoder parts out of ff_snow_common_init_after_header 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: SPB+Rq94F0ax They are not common. Furthermore, this file is pulled in when linking checkasm and up until now, the calls to ff_get_buffer() and av_codec_is_decoder() caused all of libavcodec to be pulled in as well. Besides being bad size-wise this also has the downside that it pulls in avpriv_(cga|vga16)_font from libavutil which are marked as being imported from another library when building libavcodec as a DLL; this breaks checkasm because it links both lavc and lavu statically. Signed-off-by: Andreas Rheinhardt --- libavcodec/snow.c | 15 +-------------- libavcodec/snowdec.c | 11 +++++++++++ 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/libavcodec/snow.c b/libavcodec/snow.c index 09f2d60f47..90197976fb 100644 --- a/libavcodec/snow.c +++ b/libavcodec/snow.c @@ -21,7 +21,6 @@ #include "libavutil/log.h" #include "libavutil/thread.h" #include "avcodec.h" -#include "decode.h" #include "snow_dwt.h" #include "snow.h" #include "snowdata.h" @@ -476,27 +475,15 @@ av_cold int ff_snow_common_init(AVCodecContext *avctx){ int ff_snow_common_init_after_header(AVCodecContext *avctx) { SnowContext *s = avctx->priv_data; int plane_index, level, orientation; - int ret, emu_buf_size; if(!s->scratchbuf) { - if (av_codec_is_decoder(avctx->codec)) { - if ((ret = ff_get_buffer(s->avctx, s->mconly_picture, - AV_GET_BUFFER_FLAG_REF)) < 0) - return ret; - } - + int emu_buf_size; emu_buf_size = FFMAX(s->mconly_picture->linesize[0], 2*avctx->width+256) * (2 * MB_SIZE + HTAPS_MAX - 1); if (!FF_ALLOCZ_TYPED_ARRAY(s->scratchbuf, FFMAX(s->mconly_picture->linesize[0], 2*avctx->width+256) * 7 * MB_SIZE) || !FF_ALLOCZ_TYPED_ARRAY(s->emu_edge_buffer, emu_buf_size)) return AVERROR(ENOMEM); } - if (av_codec_is_decoder(avctx->codec) && - s->mconly_picture->format != avctx->pix_fmt) { - av_log(avctx, AV_LOG_ERROR, "pixel format changed\n"); - return AVERROR_INVALIDDATA; - } - for(plane_index=0; plane_index < s->nb_planes; plane_index++){ int w= s->avctx->width; int h= s->avctx->height; diff --git a/libavcodec/snowdec.c b/libavcodec/snowdec.c index 489c09324e..e77dc8ce8a 100644 --- a/libavcodec/snowdec.c +++ b/libavcodec/snowdec.c @@ -455,6 +455,17 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *picture, s->current_picture->pict_type= AV_PICTURE_TYPE_I; //FIXME I vs. P if ((res = decode_header(s)) < 0) return res; + + if (!s->mconly_picture->data[0]) { + res = ff_get_buffer(avctx, s->mconly_picture, AV_GET_BUFFER_FLAG_REF); + if (res < 0) + return res; + } + if (s->mconly_picture->format != avctx->pix_fmt) { + av_log(avctx, AV_LOG_ERROR, "pixel format changed\n"); + return AVERROR_INVALIDDATA; + } + if ((res=ff_snow_common_init_after_header(avctx)) < 0) return res;