From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id F316A4337E for ; Sun, 30 Oct 2022 23:58:53 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1D54F68BDFC; Mon, 31 Oct 2022 01:57:36 +0200 (EET) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2036.outbound.protection.outlook.com [40.92.89.36]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3BE4968BD6A for ; Mon, 31 Oct 2022 01:57:29 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Fi+SfLS5Pi2lnE1LojpGFDnS3c7Bpsws2Db9Y9y3D4dmcUnAMxAuR3h9yF4FyjlHYk+HFSwGvLLy2Jq/GwfCNviN+AX3QSC5piPFVsnlIoaBcqPcVQTPcYTYeal/raIOi2yZuqbKYv7axeFnZ7sAEICa7gJYLAcl8jPC3/SaUxxQcW8fFiCEy7mhI5J0hdSr5SzWaVP4P78HMNYPfo9YkdEolXTIQaIi9UVI3IqXUPxWYU1tqszPep8aCOUEg2yWPlJZkeiBIUktj4kRPrm52rZlhvPuh/I48kZSedK7GK7bQfCPNxjLBCzDxNh/XikBzkcRFFBl6d6+SIsJrN9VvQ== 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=vRfhttCjeIkbYlSRNwg2iNa/hV2ERvvLazq1pZskJEo=; b=UXI4uSn8DRpjnBqtzoYVleu7YmIuuuPdph7K7wGcvbXNUWF+lhdLq8kpMQ95+Ibuy8GYX3HfZ5oikHJuQYcxGZaXK7kYJVjt577+cPTC7QNZliqgPW4IxPAgF9ZpYs5M+DWmKiJeO1wHOqnncLFwqi0eraQBtItKEA81iYpxL5rgN9/HmE4prbCcLH6rstXxIG+jR2LY9ndLp2a4G+E9Evnu9hZqUHvG+J3qlOgfPwOHLocEePWefraO+ARhSKUjjs3WXXtDLbGjOc/jcJv/OjswXdkLfSe0MJGij2r4VobB1qTwRZc+oKw19ipLr0eJxhkYBPDWoHuj/D/tB6ya8A== 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=vRfhttCjeIkbYlSRNwg2iNa/hV2ERvvLazq1pZskJEo=; b=p1zNR1NslUfsuEeXlhoqUgW2KyLGwFhuSlUMmUdqRD378aOnGCDm/OIspkVD2KpXFGIwjUQwHwyVj5PNx/LwcKnI1cMzGLubE4g+0iiVmhqxkKtkF0itD46wENYM7/1hwDpPi2UW/arcsf1eF9imK4acHHZyp4HKIg/k0iGyJHyTCFXQTqG7ucfQwij97WYSnhn0suzk3laJwhy3+R8y+UhYZaha3y58nLecCoAfDHySVjc4badwMUPmL93LOQV6EOHGQzCgsQ5tk10EgAqWvFlqmpTzixpNB9qOObnTCRjYFkAK/1VzpeYlio/AM5sN5hDWGAxEEHY2QyMCMSJSsA== 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:27 +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:27 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 31 Oct 2022 00:56:30 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [74hRwewdQrRkCckO9BsZ949O6bhFNRLfaY6h2uvRh/I=] 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-17-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: 46f9cff5-5fb9-475a-d57e-08dabad27fbd X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmqZLd1X3toBDX9YZ7dpDxvL3rzdjJNKi9pcFAsGAQwcfY3tmQxVD9Y64ZNpyAAeTeRwG5OB/4vFxPbHr3wuKIu+ItjtpblnW5ra1XRAyZntLm62SgRCnmcu6wjfqUCNzgoRTVsleCC3aj8MlT6M/Xrj5jGp0HQyEoli5lXtT39ZSm2R8WpphUgAVi/PnoOp3OmP9ddODb/oiZLVjzryV67ZkDgOHq0jz25fhx8dtqH1SHOxLqSFkgIEPWgo7zzKJjdhrnjP/K9X2mBPU8+GsYFpAuIS8wwkQltvCs2svr5E87VRm68iri/xkKGfTeTZNmUORBH+xMB1dOmVDG5tMhEy27xG8LYQhZiLVK81EJN+zWCE7h1PWX/DJi/C5UJW4t4q2bV3ldrF7E9y/ZrmzdQh+v+EX8sepMOxbEClPiP5gDt0XTmrdWSL6lsS4okpqATFQ6wjbXx1cd1O9AgUxDl8mSxi+NUus0toC7Ai2n35b0z44mqo6CJ27uG42r2KUkyxIaaehpNJQV4WGIDdWnpN6vI4rFvTr111NBBbi1/Mvu5G1AAietLkrwgEInGuf0ztZe4IhePKXhyxJbMLMYJSpKPklk4NqTQY6KQ9aeKFP9D4jdLVgHVWmf+e6i1Vk90EAQqEE/C4AtJvmVH0DlVb6jqlnhco2S11Rd3dC2RIyxF+cuW2DtQWawvMUJYIx1qTTJDkhC9/zWhYkupUmNacrck14MhidLX8A+L2xY0BeJvU2YCC5ne/ucrGoG8v+GU= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Ss6sQl2oSdWtEeMuQGtdLhdziV+f3wCi8uF0JU8gk3wzd4m6A+NHm30ta7tA53t1eT+rugLrYGhtSY3HARbBEZXj89s4I84YrrwAOBGfNUfTq363kaV+rAvoCjMJHZfPA8XSsu1s7ydZ4Vc2X8+ZdPjXuOWMrCMxVMxj7jo26BlYgEwAn9ANIjRpatciLhhhaJU/AKwJ/NH4mQZEw2cdSr8QDob0ZPdej3Mtg3cZPB6vDuokk7ILgNCqotbyl/6z2J4wukFj8lkGFiSRxvEawsw1x5dWCYp1Pk2pVnsWKj7djTugM3VticPVOpPFwm/NQDjvty9fmr2SMk3/MCAr5LSCwH3oyL1QKtJ49GJQtdeSe8uLk+hFTh/3IfLQtkSccXYV7o+2SyxjdnEKoO2zyZPyKrz/Dd8emdb+6A3oQEDcn6hB1jsefnXrDiQr0wt7sLUySShCuiNhop7jzSbEijas+bnU9lGJ0Rr0TxZ2rvRSqAEMcZifz6cWlLkz1+O2N9Tl0t3tPfna7y5vEy/rDRKOsNOXy7NfK5GKvdofWkwpzl7CPuzGZN/O8eBUakWstcqDyUGa9k/RQw8bZULvPLMYZGFCF5eiDrRxOeHF7RFG6GVARs9L03ab4cVdlhXt4GNo1BFk/9STc1wOcwAuxJyrkqv4nXSL+b3PmQE1dNUJDy8BNV+EB2Li4g1Mo1T2 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?xk5ltAmy6WGi9SFq+ObEuuIM1dCVaKesQycWHAA78CWGEm914+Gf9s+Z2Ym+?= =?us-ascii?Q?s6402TK2VyH4Qj5oBBfgPYM++yJn0haNtNys29yfCs1AdI1E69wMTX44l1th?= =?us-ascii?Q?4h/Pv+td2UNvyRgAAEwcEmgoYtJ8eOy2vNeLvOoFY6Za2TQz/XVBNOWUWegq?= =?us-ascii?Q?pudR145VtJooIZfU2kXvSVFNukEP1iAq/PlljK+RjZMuxUZJtLJrjQEl5sIB?= =?us-ascii?Q?t40d8xFUstI4YNKjOptfd//vxtdUmA2M9Zq/c3KUKa+3B4D7oD6XPF+tJLpL?= =?us-ascii?Q?E20BVSQ+6VQeQAjh/o61cfAL+FosF/NFfuMfj2IwhP8UF+hWpGnTYf96KuWh?= =?us-ascii?Q?tY6Z90OH7UcV3pQ1bB7aLHFtvmvnS6C4oNmWSqzKwFaPtxvCCbls7lBCta5Q?= =?us-ascii?Q?nb0BA0dKU1B39xiWn4TM197NtoRYptIjDDH+ZRWKRz7jHKStgRDrS/wPhDAi?= =?us-ascii?Q?GPBRXVj4bUj2wj2mBiohDjKUm2asXzV+21g+JmywWIeBvg3jARKGMfdScgie?= =?us-ascii?Q?pP3EYoM/bA+Q7rluzQCU7J9Fn9SgSbUZQLaEFzHh96xaMKivkWDSkNNoXauq?= =?us-ascii?Q?Q8ARKvXptpJDnvkUWiZk9Ittbw2BzZzDm3VaVnBUq1ReFOpepJbpsZWNA9Ri?= =?us-ascii?Q?tKXovO9NU4aPRLnXAXas3QSyxOt5gQrU/lMGe03UMNDtDhDCTX7s9ITtcdnW?= =?us-ascii?Q?59hoV0KILvnLCea/mUq9OkZ0tVzfg3Y9wiFuAf3kCs1CKHNLoEOwBkhG1JLY?= =?us-ascii?Q?ZW1MzC04ooPtRMEzLKxyVkBP0HM2eMait4DzoQ4Inb8XWE/BsDYwr5TXGdxy?= =?us-ascii?Q?uH4/1fwD6Bsa5U1d+HpvIgI40tWfYIev12/QuaR5OTEVE1kjwcGVOo9059F2?= =?us-ascii?Q?vyCCS5ZTvGL6a1SoxRfQDoks9H10XLENl8DRNW0xC3Fyj3qZy4YqUgaLbIbd?= =?us-ascii?Q?acHug9ht8bogqM3HQ4e1MDop+4Uwqe4MWIOCEsyOPZk37Y3qxHZWNy5m6QB1?= =?us-ascii?Q?AEDN3LvpZaejrCEv37cNb9JLP+N+yfDrojlmL1MR58jvmPeLnr4wLYWbsMeR?= =?us-ascii?Q?obo+bHnpoMy7M5HOokkWQbm4VGS7bndu1eoJJ/IYdE32qq22HTAnXSGAjtek?= =?us-ascii?Q?oVILmuva6tvuaEDVD5NBkRaCMca35y6asyVIkKg7SAM1Gz28b0atHk9DUlPL?= =?us-ascii?Q?Zw606SB/u8k+owWDDtAGutSCp+Mf7MD929teP8HFwOnfGUdtXLsZvxMLvl3i?= =?us-ascii?Q?YbsoNmn3AIa52uOiQF65VlXT6TONV7Kmyv5pbLzYCCBLeJ+ktm56PyPlstQ8?= =?us-ascii?Q?TjO9sDIIb8hsdwmDp15D5mpC?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 46f9cff5-5fb9-475a-d57e-08dabad27fbd 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:27.7267 (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 18/19] avcodec/vc1dec: Split VC-1 decoders from msmpeg4 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: The only msmpeg4 code that is ever executed by the VC-1 based decoders is ff_msmpeg4_decode_init() and what is directly reachable from it. This is: a) A call to av_image_check_size(), then ff_h263_decode_init(), b) followed by setting [yc]_dc_scale_table and initializing scantable/permutations. c) Afterwards, some static tables are initialized. d) Finally, slice_height is set. The replacement for ff_msmpeg4_decode_init() performs a) just like now; it also sets [yc]_dc_scale_table, but it only initializes inter_scantable and intra_scantable and not permutated_intra_[hv]_scantable: The latter are only used inside decode_mb callbacks which are only called in ff_h263_decode_frame() which is unused for VC-1.* The static tables initialized in c) are not used at all by VC-1 (the ones that are used have been factored out in previous commits); this avoids touching 327KiB of .bss. slice_height is also not used by the VC-1 decoder (setting it in ff_msmpeg4_decode_init() is probably redundant after b34397b4cd780b5692548e7d021ec884c7217dba). *: It follows from this that the VC-1 decoder is not really based upon the H.263 decoder either; changing this will be done in a future commit. Signed-off-by: Andreas Rheinhardt --- configure | 2 +- libavcodec/msmpeg4.c | 12 ------------ libavcodec/msmpeg4dec.c | 3 --- libavcodec/vc1dec.c | 20 ++++++++++++++++++-- 4 files changed, 19 insertions(+), 18 deletions(-) diff --git a/configure b/configure index 70c9e41dcc..545975c575 100755 --- a/configure +++ b/configure @@ -2981,7 +2981,7 @@ utvideo_encoder_select="bswapdsp huffman llvidencdsp" vble_decoder_select="llviddsp" vbn_decoder_select="texturedsp" vbn_encoder_select="texturedspenc" -vc1_decoder_select="blockdsp h264qpel intrax8 mpegvideodec msmpeg4dec vc1dsp" +vc1_decoder_select="blockdsp h263_decoder h264qpel intrax8 mpegvideodec vc1dsp" vc1image_decoder_select="vc1_decoder" vorbis_decoder_select="mdct" vorbis_encoder_select="audio_frame_queue mdct" diff --git a/libavcodec/msmpeg4.c b/libavcodec/msmpeg4.c index 4daf1666cc..a2c4c57728 100644 --- a/libavcodec/msmpeg4.c +++ b/libavcodec/msmpeg4.c @@ -27,8 +27,6 @@ * MSMPEG4 backend for encoder and decoder */ -#include "config_components.h" - #include "libavutil/thread.h" #include "avcodec.h" @@ -40,8 +38,6 @@ #include "msmpeg4data.h" #include "msmpeg4_vc1_data.h" #include "mpegvideodata.h" -#include "vc1data.h" -#include "libavutil/imgutils.h" /* * You can also call this codec: MPEG-4 with a twist! @@ -139,16 +135,8 @@ av_cold void ff_msmpeg4_common_init(MpegEncContext *s) s->y_dc_scale_table= ff_wmv1_y_dc_scale_table; s->c_dc_scale_table= ff_wmv1_c_dc_scale_table; break; -#if CONFIG_VC1_DECODER - case 6: - s->y_dc_scale_table= ff_wmv3_dc_scale_table; - s->c_dc_scale_table= ff_wmv3_dc_scale_table; - break; -#endif - } - if(s->msmpeg4_version>=4){ ff_init_scantable(s->idsp.idct_permutation, &s->intra_scantable, ff_wmv1_scantable[1]); ff_init_scantable(s->idsp.idct_permutation, &s->inter_scantable, ff_wmv1_scantable[0]); diff --git a/libavcodec/msmpeg4dec.c b/libavcodec/msmpeg4dec.c index dbcec3de74..26a196a38f 100644 --- a/libavcodec/msmpeg4dec.c +++ b/libavcodec/msmpeg4dec.c @@ -373,9 +373,6 @@ av_cold int ff_msmpeg4_decode_init(AVCodecContext *avctx) break; case 5: break; - case 6: - //FIXME + TODO VC1 decode mb - break; } s->slice_height= s->mb_height; //to avoid 1/0 if the first frame is not a keyframe diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index b50f5b45aa..bcfd2bae0b 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -33,12 +33,12 @@ #include "codec_internal.h" #include "decode.h" #include "get_bits.h" +#include "h263dec.h" #include "hwconfig.h" #include "mpeg_er.h" #include "mpegvideo.h" #include "mpegvideodec.h" #include "msmpeg4_vc1_data.h" -#include "msmpeg4dec.h" #include "profiles.h" #include "simple_idct.h" #include "vc1.h" @@ -46,6 +46,7 @@ #include "vc1_vlc_data.h" #include "libavutil/attributes.h" #include "libavutil/avassert.h" +#include "libavutil/imgutils.h" #include "libavutil/thread.h" @@ -406,11 +407,26 @@ static av_cold int vc1_decode_init_alloc_tables(VC1Context *v) av_cold int ff_vc1_decode_init(AVCodecContext *avctx) { - int ret = ff_msmpeg4_decode_init(avctx); VC1Context *const v = avctx->priv_data; + MpegEncContext *const s = &v->s; + int ret; + + ret = av_image_check_size(avctx->width, avctx->height, 0, avctx); if (ret < 0) return ret; + ret = ff_h263_decode_init(avctx); + if (ret < 0) + return ret; + + s->y_dc_scale_table = ff_wmv3_dc_scale_table; + s->c_dc_scale_table = ff_wmv3_dc_scale_table; + + ff_init_scantable(s->idsp.idct_permutation, &s->inter_scantable, + ff_wmv1_scantable[0]); + ff_init_scantable(s->idsp.idct_permutation, &s->intra_scantable, + ff_wmv1_scantable[1]); + ret = vc1_decode_init_alloc_tables(v); if (ret < 0) { ff_vc1_decode_end(avctx); -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".