From patchwork Sun Oct 30 23:56:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39067 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8e01:b0:a3:a294:714c with SMTP id y1csp607691pzj; Sun, 30 Oct 2022 16:58:29 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4IrH5BOQ7ad0h7k4buH4xJblqCqh2lFQHA8C20CvCRGLlgmIi3QQrxdusBqvZkJng9YBrG X-Received: by 2002:a05:6402:847:b0:453:944a:ba8e with SMTP id b7-20020a056402084700b00453944aba8emr10769193edz.326.1667174309447; Sun, 30 Oct 2022 16:58:29 -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 d37-20020a056402402500b004613ae68ca0si6217495eda.442.2022.10.30.16.58.29; Sun, 30 Oct 2022 16:58:29 -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="Xp/R3neF"; 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 364E568BDE1; Mon, 31 Oct 2022 01:57:24 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2043.outbound.protection.outlook.com [40.92.89.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D8CB568BD70 for ; Mon, 31 Oct 2022 01:57:22 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KPxd95rGW41gef+JIhCpMMOlYpHYE4NXd63Wd5AYAQf9PnrXl63jMhaTCAVbAEMiWVYo6DXfvgUHHnvPjHiCpiz+vd7botT+Ih63f3cv2pFMLN7hH4/BqCEhb6qyuZM2g4T+Y3YnEAPdK7uKtVLQtstBHfqgxEBFGN00I/2ppfILtu1qhZDCuX2c0+XNaL+g62613Bw6lqRjOYdO4+iTop0GTlhYSGO1P70hxGTyXc6295jCq/6LRoYtsuzL6AsI4EntotNbp/qxDRXdVaEZQQspnZ8kWolzb0hd2uf5O5fDEPkUrLn4XOB9udfdAsBZOT6odS/Ts/sNiv46kAvBrw== 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=9qodF1mEn8s7yeoebeZgCShobiqjdfew+FwLZkRppe8=; b=BhzqApuO3klM0Ln/RrvYGgIGeqk6j4ZYPeXN3nAuNo2s1RCO8J3TUr5SyiymVq1eB2pbcXOd/DsJUfylkBaRRj72OMhAVnU9HEEosAKCyNgfmGDw6njUCm8ifGrBFOpbV9PtSQ4ladzMAaZrL0ZZ9K+fWsz3dJwQFCscVmHRkuzKoDx6w4ys2DHc0oics40sGM2Lw42xpVGrinN+kpBsigoBRYw1YAE4JHfnIg0RPGSZGzK7oRBvJpfRbcg7uRWzJds9h3mgV1kqQf61Hkgg4XqOqLX6Rv9vZ+22DlZZDDCNF/OKgZ0fT6+VooSoMHdHuU9JKjTYvVD2lvdYsWoKqQ== 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=9qodF1mEn8s7yeoebeZgCShobiqjdfew+FwLZkRppe8=; b=Xp/R3neFXNuYWI90ZqhHzQ0h6dcVG2G+ItfQxlYJWobtH9hTx/bSy2d0QGxn6EcHos5+C3GeblRQDpWAlS4QicBKzRWVlM6O198A9tDhEW2sNgwHoJ+FJSiklI5goq2NsjAwogXBWeyFY81TXSmP+DJ8wS6gHT0l7Nopz8l90yEBmVSk0HV8Q42HYBIX9jm2+mHr4BAbMRehXNKQjfudjdHTP3QkRBK0NJJ+h7K9NqeehxhTmVJqLhTNKM1pxBR0H9w4VkvWIMGP8hHZpHKiUHH1asEdt2SxjAMMcBsYJB7WmM1XGFTQZxSR0u4Hasa0rxjRbS/lzoiQIsUSxibEOw== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS1P250MB0453.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:4a9::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.15; Sun, 30 Oct 2022 23:57:20 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c%5]) with mapi id 15.20.5769.019; Sun, 30 Oct 2022 23:57:20 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 31 Oct 2022 00:56:27 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [X+RVVR6lYaAAGTwGCgsgDX0Nm1faJNk3/zo3VFZgTH8=] X-ClientProxiedBy: FR0P281CA0146.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::20) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221030235631.11750-14-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS1P250MB0453:EE_ X-MS-Office365-Filtering-Correlation-Id: a5f197bd-7ea5-4c9b-b19b-08dabad27b65 X-MS-Exchange-SLBlob-MailProps: feAVlmA1hHUtv/+vbWUiI2RyUx+OiJqDt2ULMsGULeQBpMUH6RVR85mw07o6TO1Qz+kJ7N0h/KSv4KDyQJDscOC1CC2mQFsqweBT6lRweBT/Ln8ESce1+FSq1/u4j/UMeBWBoIT5I28ErO11NK0va/vmHVgCnVp26xIVeOyQKYjgvcA0n+CFeVElyx6Y5LhDVU/Z3Fb5YhloUeL7l1rsg0q2F8kv+AqVHTEBDydX8j/F4zwzgFpbpKL9zse/urvxCkbDKh0tu2mu1B/POiIXVOdOqcP5rTT/kMMAb4rAOm4TC+XwI/ivs7MSVO4YdU6w+Bb44muas1mvky8XewqTpEJWA8taJKqWv2MzAxxR/TlXZlWqhsmdKK8ZGD5ZRGAOOM7G/K+9OplQGMAON3e3t7/s/e9chr/yjzzOD0KUgbPiFyEjipc86a5KOiNC1ucksBmtLP7KxgK8hmT7+XvZK8g/KMb53a30k48rPL72dLWpLmGho9+2cpKk4qu87OEUFDfb0IROj6ecJPNl68CusK3dNXPg1l+KL7MX0XPIU8N0hoMKxN7YURvUe/9rbTWFgx8YDbo6IuxSIHZYtS7vtPcxJSox3oXoZjs7Gkq9nKU+IzVlf1hO2dOa2Gl4oMf9c5quzsATUOncB8ymhh8NQ9r+eJxXa796xLxJXXvcwAyXi+8qqeCxLAhksxBij2TUxMWL0qZ/5Ao6pp2G9wDC1Q== X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9bomUddiIpjgMh4JtqB2gHHo2SDG1MfyY8E5TiU+aR4QKRPXpU6KDMgwhNfsmyOWIxs292wE20NLb9ArJPg2OyiEzbT70uJNkas/eakMPDUZXgVa3dpdWV0A2brJmFY5g7nBqVdF4K2QPVKhPl+vnMPHNDmX4E0lRPhtf9f6sML23Bbp+mgDPXaxYgzaUBd/6h08osVtQguBwnW+Eg/gpc/SWRwvzPc/wpt318Z2edIrVtmXnh76py2nri6J+VjzOZlTDI4uNJAF1VSgsW4SYn2Q6a+nlIXBIpt0DbUhD3DDc0bqJSHHHFITHvZxZQ1NCwIev3JuVx7x8CTRetnJ10tP6WZBcFY/gGidyppNyvi+NLzzhPW09pijfgRRhyJ3ukKE+j6vAgQ1+JIGxJwCJcY8CbBqoT9bO7P3iqxamxDSh9K/vFNV/r3KueKYp3jz1t5pArgsNO6LJzyliPdd4aI1qFdi7hzm+FWs2cpolObkptl8PszjxuiwvPZlmT5tCBCGg5eUKepH14ZT5aiiEj+VqIxL4P2/cfzp8stG4wHnSGFdMQb+PFoLLE44/58rSAn/52/hrmJz9Hx0k4+aYYWXYdZM+Lcsq7lOZLnFjVz6gJPZTU5rQWXiVuMZ/VxBlzS69ISGI58bwrUt0pONHwvZ6EmynctKTAD6WVZVoQcrcgPi4D6jqWRdvCrCOwr3 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 4hDOaW7qaPXoQEj8pl9gB1ZHXjbDIw6uNc9IpGrvi+91RnZ81SUe7Y9/DhiZHVXEqeKdGd7sIL+RXJ97Rlxndx6ezrkDsRqWf4R0bvcSB06Xan/87OekOvZka0NZAjGrXosdOuId8Cepg+JNxzam1dqKpHFu75aCerDzzORea0fEaGeVj/2aeLd3QDu2kdQtndnQFxGgxTyrnRDWIesGFj99degdx09Dke/zv/0zVOHOFYBmfoN0raSPIEH8FYXqI2B8ljvrLXYl1/WvazQcUwYAZqWkoGU9urWaiDpM7mDdmKiA3rUrInlWZrVoRov5kAdp9gvI+vGxkKzBMCt8Q+lhC2YxGiPKnEuMzQSsj3MlcdogOl+zAGenI0MCG8bjiYuHaXcMUJhsrjH+l/Bgqvbo6Rv4Tz/v/d77T+ghnRQaF7ElEYv83X1Bt8YZ4lIIA1CNU69h++29GwuBX4vJ6jwpyXdL97u4Piepm5eCit1BalYiUaHuoF1Tpu7RdRXt6ihJrjxzVkddhFl6mVRYa4CqhP6RavlMY+KtGgGC6GNp2bTuTZRAPISQeJM1yVVYQ8PBRYQldSMTVzk9HqUg/QUJJm88BAlU35tmhcseqfkRaM/OzEJ0aD0r6+rB1PmrbxBZXNR7WZu62X8zMiaRXlsa2Ykrau3vnXbDlE3FnSX7GY/K0ucVhA9Mh+wtj7JYSKKwMLnSryQdjci45DobgHYlVBfW1cHBQQyLoJ9lZZv2U39umxX/40WVinE6cDEnJ7JjI9i9OloH1i8Eb1D4TCnfVUzUPVpNuT/+SxgCtGXMK5UnqgLAzqOWKOr8AF3Vb791iMGBesLSshmJAH7V0yaF3EXhcJfMfEFF9xP/TyD6+frqvq83GtVyMZE9cDxnl3GxJmkxf62oI0a3L7+v8/NWtuDlwYIDfqf9rJRn+PpH893t1AFhuRqej4g6ijnOyL9bnEPLwxdjEpfrMjnd8WPQxIdHiH6cIsWRrK8rB58MNzMoa3+kDoN2BZwRENb7E2OPA08HWfw+MAn8eG6a4RtcaM8IxQw1gXy8EbSLQfci8smzZ7Hmc6nrwy2wqhU+KMta+QfDmZCXBaVyYQF/d5Dlieaj8/Byv6eOCnA+RD5owMZCVl0RYB7uuiDDrBa9jAFsHdz8Opmo6lRN69IF9fJCViY0GaEg4bx6Yn6uUeNdUKe2XkLAGQp9Uoi57Fi0+C3rst5Hp0Q5DtYa2Yjupvb2UjXD2ljGwAJTj2zxXs8P3jdzw0CaTBo3qMDNSB9hXZ57tXY5u/zMNsrb/iOpYTIEekfzxAcFLlbl46fesqa75EAdCQ+Z3bD66BoGwApu X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a5f197bd-7ea5-4c9b-b19b-08dabad27b65 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2022 23:57:20.4225 (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: AS1P250MB0453 Subject: [FFmpeg-devel] [PATCH 15/19] avcodec/vc1dec: Factor (re)initializing code out 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: UMLfkI+qQCOh This is in preparation for removing the msmpeg4 dependency from VC-1. Signed-off-by: Andreas Rheinhardt --- libavcodec/mss2.c | 5 ++--- libavcodec/vc1.h | 2 +- libavcodec/vc1dec.c | 25 ++++++++++++++++++------- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/libavcodec/mss2.c b/libavcodec/mss2.c index 69494d8c44..dca2ae4921 100644 --- a/libavcodec/mss2.c +++ b/libavcodec/mss2.c @@ -29,7 +29,6 @@ #include "error_resilience.h" #include "mpeg_er.h" #include "mpegvideodec.h" -#include "msmpeg4dec.h" #include "qpeldsp.h" #include "vc1.h" #include "wmv2data.h" @@ -852,8 +851,8 @@ static av_cold int wmv9_init(AVCodecContext *avctx) ff_vc1_init_transposed_scantables(v); - if ((ret = ff_msmpeg4_decode_init(avctx)) < 0 || - (ret = ff_vc1_decode_init_alloc_tables(v)) < 0) + ret = ff_vc1_decode_init(avctx); + if (ret < 0) return ret; /* error concealment */ diff --git a/libavcodec/vc1.h b/libavcodec/vc1.h index 9b25f0872f..3b6be78141 100644 --- a/libavcodec/vc1.h +++ b/libavcodec/vc1.h @@ -413,7 +413,7 @@ int ff_vc1_parse_frame_header (VC1Context *v, GetBitContext *gb); int ff_vc1_parse_frame_header_adv(VC1Context *v, GetBitContext *gb); void ff_vc1_init_common(VC1Context *v); -int ff_vc1_decode_init_alloc_tables(VC1Context *v); +int ff_vc1_decode_init(AVCodecContext *avctx); void ff_vc1_init_transposed_scantables(VC1Context *v); int ff_vc1_decode_end(AVCodecContext *avctx); void ff_vc1_decode_blocks(VC1Context *v); diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index 49ecfd8a48..682b39083b 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -329,7 +329,7 @@ static void vc1_sprite_flush(AVCodecContext *avctx) #endif -av_cold int ff_vc1_decode_init_alloc_tables(VC1Context *v) +static av_cold int vc1_decode_init_alloc_tables(VC1Context *v) { MpegEncContext *s = &v->s; int i, ret = AVERROR(ENOMEM); @@ -404,10 +404,24 @@ av_cold int ff_vc1_decode_init_alloc_tables(VC1Context *v) return 0; error: - ff_vc1_decode_end(s->avctx); return ret; } +av_cold int ff_vc1_decode_init(AVCodecContext *avctx) +{ + int ret = ff_msmpeg4_decode_init(avctx); + VC1Context *const v = avctx->priv_data; + if (ret < 0) + return ret; + + ret = vc1_decode_init_alloc_tables(v); + if (ret < 0) { + ff_vc1_decode_end(avctx); + return ret; + } + return 0; +} + av_cold void ff_vc1_init_transposed_scantables(VC1Context *v) { int i; @@ -947,12 +961,9 @@ static int vc1_decode_frame(AVCodecContext *avctx, AVFrame *pict, } if (!s->context_initialized) { - if ((ret = ff_msmpeg4_decode_init(avctx)) < 0) - goto err; - if ((ret = ff_vc1_decode_init_alloc_tables(v)) < 0) { - ff_mpv_common_end(s); + ret = ff_vc1_decode_init(avctx); + if (ret < 0) goto err; - } s->low_delay = !avctx->has_b_frames || v->res_sprite;