From patchwork Fri Feb 11 08:50:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 34223 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6838:14aa:0:0:0:0 with SMTP id bz10csp3025390nkb; Fri, 11 Feb 2022 00:51:41 -0800 (PST) X-Google-Smtp-Source: ABdhPJyLjTlNzW6eGVgHXwCE5lnfQZKHmSFpGxqziAC3r/TwKzA6mvQV0igrjhxvLuz0Vurzbs7b X-Received: by 2002:a05:6402:50c8:: with SMTP id h8mr771395edb.144.1644569501255; Fri, 11 Feb 2022 00:51:41 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id q20si10293039edi.320.2022.02.11.00.51.41; Fri, 11 Feb 2022 00:51:41 -0800 (PST) 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=AxG25R+e; 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 31CA568B21A; Fri, 11 Feb 2022 10:51:30 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-oln040092069068.outbound.protection.outlook.com [40.92.69.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DAFD068B1E0 for ; Fri, 11 Feb 2022 10:51:23 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ck1/SrZ+7kOLHju1Ig7FMZz+3RahCrdOktLHaNGq489Fig6QuqAFxiNBA5sy0hL65atZaKycWXgmp+IMQRxhO8LXLf2ImxXILYOCsGKN1w2pxfy1k6lpAjb4vnVY8DFKPLLCqOkSXMC690Y/wW/hG6I4mATyRIYqx4YkrCUjX6e1LLwM2TXny5t8k5W1PcvafdSzZGPLMWcjqTD6oIl59f9M+cYdqLRaSbr8a2Q+ywqrNCr8rODFzAUfYeVUFdyLBcleztILtyM2pz0RKa82tCBRwyrVvgPlgFGm05087bGQaTrY+AnLjGzEDOgGbfI/ZEJZyYBWAXDJaS+WT8/fkA== 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=6En9Q0RASXbZFHrjKpcn+WgJm9obKHIaoE7xBKNOaCQ=; b=BZHx7/lwnv526nOcyaYiHk39wpPHuzTbeo1qPACPncHv3jDE4DxmZo3DwtacFlKpc9OE2RIpe3M2E1oErFe47EC6Ud0om2rC2ck9c/bWMpogk6xERVfia2j/jqFdgLoakF5GMDIpW4/F5Szll8dKYYsc5gYXQt9KHl9k45A9yvfzRsKHCAPhJ2sz3uBemFizUZzt3W54dtCJ8Ul0KMeTIA+Hy4RljBZa8mpWAXiPamf0wy9M4Aj70SPtbPjQXgZqAzjgw0Ir4qdDhZpNwebnKdBIMiJ5820PiuWNADjxDJLXKEpppKTffJmdZi9OqxC/qxKW0s5kKnUGeCWf0z3B1w== 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=6En9Q0RASXbZFHrjKpcn+WgJm9obKHIaoE7xBKNOaCQ=; b=AxG25R+e+gzNHxOA4JZ0+mo1Uv5Lq41IZlgzy68CfvZ63tefwn5ANED4U69m+V3CQ86QRr6LdWVnnBTcNs+k+CNAoaMTyxFW8w+ek0lH6P64DnmCQk2UxkxBAb16dNoWZWNuEeOq8jYQB+HFUW91g2L+ZYjIyEBbwhCEF4kdrI3fDb94WFkketcoIr6OC0TjA/+zXaNxEgUjqAHcTfYo50KylHi1RTA6RTHQJzQNyeUxA7ZCHEoMcVpuix+T/bIq6qZlgSYv1g7yCoTg11MyyA2Ue1o/bd/Y/0fod/BmlnBtcsw5mfI4Kqx6nU+NDm7/M07Ns7hD0JwoW1z7TQIAqQ== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM0PR03MB4884.eurprd03.prod.outlook.com (2603:10a6:208:fe::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4975.11; Fri, 11 Feb 2022 08:51:13 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ac56:2ff4:d304:ab22]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ac56:2ff4:d304:ab22%5]) with mapi id 15.20.4975.011; Fri, 11 Feb 2022 08:51:13 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 11 Feb 2022 09:50:59 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220211085101.1588296-1-andreas.rheinhardt@outlook.com> References: <20220211085101.1588296-1-andreas.rheinhardt@outlook.com> X-TMN: [VCGAHencs3IQFPGVCdm/4Bp5Cg0hXotx] X-ClientProxiedBy: AM5PR04CA0003.eurprd04.prod.outlook.com (2603:10a6:206:1::16) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220211085101.1588296-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e3dc73a7-bbd4-4823-3450-08d9ed3ba88d X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiSJybpSSbCo5zX4av1Jyrl15ewi5Frp7UR5GnVqRyHG4WsXN4S98FcphW38NeoNjUkJMm+c+Cci8lGJ8/BvplOR0pbUqkpD+pFikPcR0iGopD5k3pK7HuHmvTCDbnYVJRR4vBOCZaIhaB2NheYiPm8tXUlzmg38BLnz7g0MPZhnsVpZAMZkQoOfjHHRZJh1eXnrXGEUNDgr1Dn2Sq0Jtu4TIceF1z0VOcJEdAG9rYt/StiF5buw/29LvzvYIdu+tZrzgpj1qzS8ehag/nqrRDu90nTIPIt1eRKxZUSC2vZfm3HNrLAjkCWdqLDB8nQwuYc5WUfMhT/x5/BvPIE6NYNXRRZREz0i3GvoZAqE0aUHh+OsmXA9e6by0rWkeFT+0aTd0PZ3a0KMZuv/z+xaqVBvtC0+k5OynrSm3gOscCPAeODBZx/DBcmsPlYpolQieGL/+ZReGuzqoqMoLE9z+1km5DngB0zezYSlYdRMUTnpwUpGnipth9N03PC/+g7t5mcSF4ZtJ0sjXbCHyTVS2ybfQZ3kwPz8qiJ6pQRx2SyZ3xtDZmsbCOO9QJtHw5Br6XV0+nZqi4pe0SB5Oc38etx8ETHJU8wQm1/tkW7HySlRlz6YfOp4ilrzR9tD3pTljFcFsnVU7N1KZUyFc3hH2DZN8mhwfsuqZoXwc0w5kJV1YLiaQPmoaSb0sGNag7B8mrmiuxNLjRfoMAOZMufFjhNJVgm+Bw8zfnbDvNKJka56ZVyj2Ugo4WNU0aqWgKwF8qw= X-MS-TrafficTypeDiagnostic: AM0PR03MB4884:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: aqj9Q0heHORhq654V1epuaMrlffJPkuQei80cFfHEMObfi3S3QGaCr9QzF8KTgrrKR6gQ1QuqJ2sef55CW+PHyJJyvO17B69U/YA9kddT6hu5LmmavzeMrfRLThzc7PuHS8Ul+5Ez9EEjS+JoKMiKxhcaQqnft7LneKdP6d6V8C8THDUAAhbB/X3hT1qW/7KGPPHRXYaL5pyxZ2ZjSyWTGcyYQV+muS6uMKrR8YYMs30M4Y4oOKwTLjKWPQcm5bTvI5tCYY//xFvRqVceV1QadmIpqOAKYkB8pXmy68/U7jwkPEGezXypgoVNh4cBuSQGn2UV7q6hv7zVBpdG4n0hGaGCb7uQbkXXzoO/O0WkwrkwxDErs4/rLF+SOTYgmnIxOFFS7CUyec/LteD8wzRTDpiABdyLl8iiVSHQLm/71xqWbElPHanR3bhDFL9C5YqYM+q6jvzboIKDDDBwpGBtIhySvz/5bw+W6isO9hO+EbaTEcumio/wD2JHwmPnoENdQnl2J0HwxFEaxeP5Dm4Fqhfc5sHJyKYi29pL2GsMxFH3DIPH5WYuaUFVKpvLrESzlPQJ5xlQTa+ZxbXm5GGng== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: xneTsMWMGJpLoOWO9HIuMcoeACe9DdVPWbRwsXoYysGRs7TTGrkrFKcnsN7jxw9sMLc7YzexpbJCoRTStamcSNe+P5AlB3zvZGjyGHEmuWx+GAAwvf+xr4XH4FmID38cj1C7SE3bUjywlWWEwZHz8xg9iQDXR1Dp+Jp5E/DT+KhF+P/ZdOGimu8KJYUyGczr3Pu+kkhLFVozOSLytsTA3JosIDZw+Grv6Blr8GVLryhYDnI+dKaReD6SDsEDQuYCWe28PDuhEd0eLyzpw6IpS6V7CgIP5LPE4NAed0Xzip2JH90Uev+KuQKeDmJ2oEc7F1Uh+560K/645jVe+Owp9TSKFyTwaOszhKgWCr3a/B33vVVGWwSZ9IqB2CEVAlnuRrNlY3dCNh2aV1iOxUu7HALSehXaO+IO41D9OguEIxP4bCfyuTnkBiKJTCw15N5BoWk+6y01b5n5zdqF3eTGkCgU0QTW8vTqy9C/v7SazdSgpIwrMhc3s7UU1H7QHFe9IWTU1Rks16ugRKfXl8vkkDS4qKgGbK+gqSJCnYfqo9BxH6tzGiXiRABRJ29MB010rjG8dFVWXDrLSV60TcbX9JIr9L1kvjDPbFILjFrbtsoVDMZShBylOkbPGAWYN/9teh9EI7rXwIkmjrC55nDLQm7g3LqJITAakjSOepzK/EpMqv7rwxRx9SNPhObAEUulcMdD7PxyEFyDCGBKjJyzDdMmLKV4q9qLgV85Ahy4UPa0iJtrAaP554XpzX8GZzhsjnNhTRjyWKriZCyXPJx3E6wrbgavnf/FTbqP5m78dW1IJauomcIvsjr94rlceMkHRCuhLTLS9tGa95eQ1q2oz43SU0Y087ZVkEMMx1SleEWJUCSrNzwE8z/wutzgf8uXxIVq7xDEyV5iLQatCzkCwVovBW3XSvvxCoD2ZM6bqFGyQyhWObpfZtsjj2S8SzEizXde/m0DmHeobPiYeeGBOg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e3dc73a7-bbd4-4823-3450-08d9ed3ba88d X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2022 08:51:13.8971 (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: AM0PR03MB4884 Subject: [FFmpeg-devel] [PATCH 4/6] avcodec/vp6: Avoid code duplication when initializing VP56 contexts 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: RBI3j3qDREKZ Signed-off-by: Andreas Rheinhardt --- libavcodec/vp6.c | 51 +++++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/libavcodec/vp6.c b/libavcodec/vp6.c index 3acca16f3c..ae8e223349 100644 --- a/libavcodec/vp6.c +++ b/libavcodec/vp6.c @@ -637,57 +637,58 @@ static void vp6_filter(VP56Context *s, uint8_t *dst, uint8_t *src, } } -static av_cold void vp6_decode_init_context(VP56Context *s); +static av_cold int vp6_decode_init_context(AVCodecContext *avctx, + VP56Context *s, int flip, int has_alpha) +{ + int ret = ff_vp56_init_context(avctx, s, flip, has_alpha); + if (ret < 0) + return ret; + + ff_vp6dsp_init(&s->vp56dsp); + + s->deblock_filtering = 0; + s->vp56_coord_div = vp6_coord_div; + s->parse_vector_adjustment = vp6_parse_vector_adjustment; + s->filter = vp6_filter; + s->default_models_init = vp6_default_models_init; + s->parse_vector_models = vp6_parse_vector_models; + s->parse_coeff_models = vp6_parse_coeff_models; + s->parse_header = vp6_parse_header; + + return 0; +} static av_cold int vp6_decode_init(AVCodecContext *avctx) { VP56Context *s = avctx->priv_data; int ret; - if ((ret = ff_vp56_init(avctx, avctx->codec->id == AV_CODEC_ID_VP6, - avctx->codec->id == AV_CODEC_ID_VP6A)) < 0) + ret = vp6_decode_init_context(avctx, s, avctx->codec_id == AV_CODEC_ID_VP6, + avctx->codec_id == AV_CODEC_ID_VP6A); + if (ret < 0) return ret; - ff_vp6dsp_init(&s->vp56dsp); - - vp6_decode_init_context(s); if (s->has_alpha) { /* Can only happen for ff_vp6a_decoder */ s->alpha_context = &s[1]; - ret = ff_vp56_init_context(avctx, s->alpha_context, - s->flip == -1, s->has_alpha); + ret = vp6_decode_init_context(avctx, s->alpha_context, + s->flip == -1, s->has_alpha); if (ret < 0) return ret; - ff_vp6dsp_init(&s->alpha_context->vp56dsp); - vp6_decode_init_context(s->alpha_context); } return 0; } -static av_cold void vp6_decode_init_context(VP56Context *s) -{ - s->deblock_filtering = 0; - s->vp56_coord_div = vp6_coord_div; - s->parse_vector_adjustment = vp6_parse_vector_adjustment; - s->filter = vp6_filter; - s->default_models_init = vp6_default_models_init; - s->parse_vector_models = vp6_parse_vector_models; - s->parse_coeff_models = vp6_parse_coeff_models; - s->parse_header = vp6_parse_header; -} - static av_cold void vp6_decode_free_context(VP56Context *s); static av_cold int vp6_decode_free(AVCodecContext *avctx) { VP56Context *s = avctx->priv_data; - ff_vp56_free(avctx); vp6_decode_free_context(s); if (s->alpha_context) { - ff_vp56_free_context(s->alpha_context); vp6_decode_free_context(s->alpha_context); s->alpha_context = NULL; } @@ -699,6 +700,8 @@ static av_cold void vp6_decode_free_context(VP56Context *s) { int pt, ct, cg; + ff_vp56_free_context(s); + for (pt=0; pt<2; pt++) { ff_free_vlc(&s->dccv_vlc[pt]); ff_free_vlc(&s->runv_vlc[pt]);