From patchwork Fri Oct 21 20:12:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 38881 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4a86:b0:9d:28a3:170e with SMTP id fn6csp956027pzb; Fri, 21 Oct 2022 13:13:14 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6VEjABQ0m+mf9vly544LAZqy/i7PYeUvpv2s0ycn6UDdjupyjOYs6lGDJUuZQdLPLUEqXb X-Received: by 2002:a17:906:cc18:b0:78d:ee0f:ce02 with SMTP id ml24-20020a170906cc1800b0078dee0fce02mr17272165ejb.323.1666383194497; Fri, 21 Oct 2022 13:13:14 -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 p34-20020a056402502200b0045d45f0e69asi17858533eda.561.2022.10.21.13.13.13; Fri, 21 Oct 2022 13:13:14 -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=Glg8AjxT; 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 B2A3E68BEEC; Fri, 21 Oct 2022 23:13:08 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-oln040092067050.outbound.protection.outlook.com [40.92.67.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2B87968BEB7 for ; Fri, 21 Oct 2022 23:13:02 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WIsVibnnQhUVnVYv7MRDPi7QMb8Ft7VWu8CK2cJXd7ulhVSvvdRveEapRGLutlgCw0AdyiOp8Mbi04Klgcq41EwohOmXekGIg/IuxVEJNb8WZ93iCfXOnpFxtbINpRCbRmxOXhw1TeLjylNsIo1vezzkhpFMDjL87Wwtx2KZ0bDV6URALlhzuUfZ+WvnKuBXlT/J1xrPU6S55tSq2WGuNW9y+QzL0FaUp58X4j/APQLRNYUmQo+XBF6m8kWEkjtc4898IhRHhIwgCfCQS/NgOVeeSDW1d3RX66C18WGccoPzws9v34hMO6p8tl1p24QKr1WQZ7fkaLcAqCdRZSVT0Q== 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=Q17+zcRBxUWse4Pj4SGEFNH+jyh7gno77WfrlXeR/tA=; b=Co4ILDbJVyhwfn9rfRHU/HRu9MTlN8y1arQHA7YQQsf/IFJiH2/vnSjkP7v40T9re/99QVI3xfM1HXBKLwLf3ZgumC7qqltaJnRk3S6OLqNgmJdP3bGWWUHwMys0TS58X/CpDBoPU9lMx8hrePsnxw0O1LQHKsG2qZK9ZE/TdP00iuuyMDauHQlpgyDQp+NlQZ83EiiUfAxNXGl3mlpIJXkjuf6a7S0ZUXwu0uWZt1P7nJ2188SwDY/8Ng5/G7JNb+ycOPO5MGCpd9MHiuXvAUoogMpTN+h21umlY171gm51GJB3Pjk3RUkkoy9hJB2+LORoe1mFcgfMz0rPbSc07A== 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=Q17+zcRBxUWse4Pj4SGEFNH+jyh7gno77WfrlXeR/tA=; b=Glg8AjxTs/9k1ZgBom+VUHkgSrLIFlclHERMociCd0kiIOGjNbtMyJ1Jbhmi80uVT13HJBHjfHVDZNwKUNeutWDFkIPSPOA1ha3WbozFtFV8W762pRa5wvB83vmWrEDrVDfQoS0uW3o+qw/HFthcTsyEaGGceUCnbfOn25HypWSzRoGkbV2WpkfPVi6f+Z7iwml09toCx4VNh/XEaaHgHAcfC5GRjeAx36tLnu9D6dQu4LPoksEdoR8hGl+1I084JUtGxrzFj2Wy32DlQTTC+u+kcrnnTWpQLf1NMkbaQOvnxjxtmZLSD8ZTK2ktI4eFJVzgDTpmbGRj/+aPgXJMhA== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU0P250MB0818.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3e2::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.34; Fri, 21 Oct 2022 20:12:57 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::f9d7:680f:70c4:44fe]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::f9d7:680f:70c4:44fe%7]) with mapi id 15.20.5709.015; Fri, 21 Oct 2022 20:12:57 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 Oct 2022 22:12:39 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [AxKD09OCj4J145fHpud62Ky5hzuLnLylWRQzOhXC7fc=] X-ClientProxiedBy: AM5PR0101CA0027.eurprd01.prod.exchangelabs.com (2603:10a6:206:16::40) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20221021201300.3565913-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU0P250MB0818:EE_ X-MS-Office365-Filtering-Correlation-Id: 20a6f28f-7f3a-437a-dd85-08dab3a0a526 X-MS-Exchange-SLBlob-MailProps: ZILSnhm0P3nnHDnbJ910YUAai4EXr7328lY0xvIVIA+6BWPu/xNmd/HrlFihhonT1ZPgNnZQsLMsNFkmYflO/l8sLy6tcMH9wTBK11Xyvwfiphepc2ZnKEUb2/j8nc5O0IRJ4D9LUPhiPvblKCnna7FuYvlINQsD4nHGc4fZ1iVlCxCcINifguj8ZRW8d2368Iwqw8paBnFgM9IwDuGJUetihqwwuGeq5bIYm+h8QF9aLUNRVbRrXKiCuYwKjJppTrxkTIbgigwYppJyDs41cbpMHbnHEdYpwPwE8kybQ8V1FWJsLI5aCl415xqYrgIOe+Ox4t4fQ7xaGx9D3TT01CP6dZkheIraleUaFkeJsMpAZSIWBKzKsRrwgiWKokrQtiFcLINuDj1GgkWzSEhaJyV3sl20O1GqRksn8nQn2PbS2MeZ99euOixqj0joXSIuvr1FPPPVaiBHcDB2Zkg+Ks4xGc2X5V9LDyAtZq6LLQnIA6YyuL8G1zk5yO8r/91xJhl4TE3iJzM47SeJCyGkkzuBF5iCvLpmSMlMu1T2lLONcrzYrTrdnGa4adJOtcbTOCmVi6nzBA97PD6j5J661Rj3ARt1BrwqYrmawv4JgJtaiNJQezZLRrPfses3JER6Zst0JlsHeXE+B4bndOdwEkZVROju9ZDChkWiNWrBdNKpcMDwhXLOhdj1zgesCO1sD2NQLy6c3g03UZWRGgvBr/g6hWQBvHwPoY8EIXQtMTBUW8oI6LxsYVo6DnTfc+zUanfbZhyKXMVRp9AxLicziTDwhzQ2pCeD X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: dgvz8ThZ0vbSGAinY0pZysich4aLY3DOKDBS9AO5Sch4BBLwwZIJozaw5D1RBViC1hnKtsb+qCEhkBm4uIENuNbmtE5SURpTjoaGgATpaI50lThsfYuFTWP9U1wK1xbTZJGfnsGYjRf0S7p91YoflvJQ1rkHtYqlUIOZonbYoqQrew/QGBsVW/MwQClj4Fvfm9qGISh+q5gwxepfwLxRKI0XoLIXRCndUHQbd0Nm32NDk3MgpTl+v9TSlGrDBHRHgUGcFyeBsnbOaj3YYOW6cVrNsxT7ktIi4S+6+xseOsE1kusNb4SMARjQNdpEDrYxxJXKX6PNhV5jm4o6e8PjPtUOKg9keQkNh+d/+ZVCmCloqlRMhZdx7AiWZLQSglYI02x9FvFfGKo7OL+R8ll/ek7o49Mlvoptc5JSf/G6XBrMZKVneiyFNR6hMLCL59Y3CWQ9P+EIOx90JmV8Re9vftPuXL6EHK/F1zl0IIaeaTZpAmB5gTSgjQK+DS6qb0hVqilpd4NYfqNo8F4+AjopvINPwoszgoi0YNMmvtFgxfJ03Lw/jW+v72qKgBjoOoPnnFhbBu77pEREzbJ4TKl2RK9H7l5dc8guPwZaXWMEOTog2huMyimvxodbdXzRHIpxezUr/jMYWaT7KAjgnS0UFYuAbeEh0OZn7wDdQY9IHvmHeOsevdTGwVCF7NPFx57N X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: AE8p4K9MEGPmagh5aajKnsHxVj1cCi258zcjSMX4+lFaUIoy81AijQy/3z/dA+gM/YBk1Mi2HRYePOrjhkWnnkXYlsy+uvadSQ+k1wo03YDk1hfCGzGH6dhWDbJTLHg/qlq6Dzcyix1Xr0B8mAD3V2ZXDf8Clyt3aEmo8UmcEozbKjaBzZf9GaokvvdIdhpW+JHnQYVdsX9itlcxDKiVj4U4b/be7X9fBouHPdsSHMLMkB8tSE49uZHCaNhaFo6mTrZmZNT4BaTPBnj2ievaZlQ46eSCd/kFQ/w5X8NF2qloHvbdJsqeIvOFg2szXr7tdX1oYUjZw2n8Xfhm+hKV1zNakrrdZPN1rxwB6s6Yod2Or8zlMpjNH3/5PpP005cBal+OG2yGdByU3XyVZAc/baWtX0yyMD+byrOydf+Jx5h7CELLGQXsq7WrplZhche3l/3v+R9D+Llgr3gM1lDigrz5MCAk5+iLQjEvvBXRzVdahEXh90L7h/9/eTEs5FMi1Kvk7RKTHqic6A4FiRGAZHAZVYuzeDDdI0ldHz5hXRDhvQzedpfBuG9WmRYerf3KizaNoZ3UEO456/nsQK2tzoM24eAQhitIiJyhhdCVBg9qEKtsSHZ65WJVRBHhdkU9wZi3acMldUaTFIGBBkO918DbEntOcLNTfo+wFVIk0jRLT9HYYcvz8hCCLju6sbXEEmjRBXeyJZ8mMbt+uWJdjfRfS+KxyqPsnwQB4ujCi9cjFMlwjPfW/NbPOueFlBWxGVmQo58NAhD0SvK8PJ+btf4014/BFdGvKheR33YyvEc+ts9dNsT8w40lQ7t3ucSuccgh68xsHGYt4cvbGv59BikHEwB2pIcqC9r47UB75vp+kXaSok1YtjUr57zog6RxJM2kTRdHi6812mTY2Pe/aUVNvubEP8fFLvc9MJ5NiKhwPHf6gLwdw2GWfUZcwh3Gd58GU2pOu+1FadV03KIPiTb73hVI/A5rtonEwsujpuZj5yGfdayEoYPvKePtqr1Jr1hUT/f+lpizyGW0UF558uCO23h+cspnEoB42hwKKT1/aHQnoIROWeMV691lXSv2Q3/GF1z/mYXSHzBbYem1nBUB2JpDhlqMu/ksGx9kVqgfbsyqT+Q13D8Xo6MZOu1e+tQxBH3SyhtRYHqmlw28lRBpdN0uqienBjMHX7DTBAAbppZDqyJP3Zg46SrO3glJtZryj5bmbttBqnMRsBa2GFVfz7iaZDImeRrYjR/Ue7wQKiq50u2hBdMuGk6RhAGO38Z36JrGrKbV2viittk+AAbD5ECPLKO/Ai2uZQMbRR8Ofu2A2eksS3vOX3NdjkL/ X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 20a6f28f-7f3a-437a-dd85-08dab3a0a526 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Oct 2022 20:12:57.5147 (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: DU0P250MB0818 Subject: [FFmpeg-devel] [PATCH v2 03/24] avcodec/eatgq: Don't use IDCTDSP-API unnecessarily 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: vr9/4xnr0yDA The eatgq decoder uses a custom IDCT and actually does not use the IDCTDSP API at all. Somehow it was nevertheless used to simply apply the identity permutation on ff_zigzag_direct. This commit stops doing so. It also renames perm to scantable, because it is only the scantable as given by the spec without any further permutation performed by us. Signed-off-by: Andreas Rheinhardt --- configure | 2 +- libavcodec/eatgq.c | 21 ++++++++------------- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/configure b/configure index 16b2084945..84d7be8bfe 100755 --- a/configure +++ b/configure @@ -2821,7 +2821,7 @@ dxv_decoder_select="lzf texturedsp" eac3_decoder_select="ac3_decoder" eac3_encoder_select="ac3_encoder" eamad_decoder_select="aandcttables blockdsp bswapdsp" -eatgq_decoder_select="aandcttables idctdsp" +eatgq_decoder_select="aandcttables" eatqi_decoder_select="aandcttables blockdsp bswapdsp idctdsp" exr_decoder_deps="zlib" exr_encoder_deps="zlib" diff --git a/libavcodec/eatgq.c b/libavcodec/eatgq.c index a6c3e72f85..627615b4e8 100644 --- a/libavcodec/eatgq.c +++ b/libavcodec/eatgq.c @@ -39,12 +39,10 @@ #include "decode.h" #include "eaidct.h" #include "get_bits.h" -#include "idctdsp.h" typedef struct TgqContext { AVCodecContext *avctx; int width, height; - ScanTable scantable; int qtable[64]; DECLARE_ALIGNED(16, int16_t, block)[6][64]; GetByteContext gb; @@ -53,10 +51,7 @@ typedef struct TgqContext { static av_cold int tgq_decode_init(AVCodecContext *avctx) { TgqContext *s = avctx->priv_data; - uint8_t idct_permutation[64]; s->avctx = avctx; - ff_init_scantable_permutation(idct_permutation, FF_IDCT_PERM_NONE); - ff_init_scantable(idct_permutation, &s->scantable, ff_zigzag_direct); avctx->framerate = (AVRational){ 15, 1 }; avctx->pix_fmt = AV_PIX_FMT_YUV420P; return 0; @@ -64,15 +59,15 @@ static av_cold int tgq_decode_init(AVCodecContext *avctx) static void tgq_decode_block(TgqContext *s, int16_t block[64], GetBitContext *gb) { - uint8_t *perm = s->scantable.permutated; + const uint8_t *scantable = ff_zigzag_direct; int i, j, value; block[0] = get_sbits(gb, 8) * s->qtable[0]; for (i = 1; i < 64;) { switch (show_bits(gb, 3)) { case 4: - block[perm[i++]] = 0; + block[scantable[i++]] = 0; case 0: - block[perm[i++]] = 0; + block[scantable[i++]] = 0; skip_bits(gb, 3); break; case 5: @@ -80,16 +75,16 @@ static void tgq_decode_block(TgqContext *s, int16_t block[64], GetBitContext *gb skip_bits(gb, 2); value = get_bits(gb, 6); for (j = 0; j < value; j++) - block[perm[i++]] = 0; + block[scantable[i++]] = 0; break; case 6: skip_bits(gb, 3); - block[perm[i]] = -s->qtable[perm[i]]; + block[scantable[i]] = -s->qtable[scantable[i]]; i++; break; case 2: skip_bits(gb, 3); - block[perm[i]] = s->qtable[perm[i]]; + block[scantable[i]] = s->qtable[scantable[i]]; i++; break; case 7: // 111b @@ -97,9 +92,9 @@ static void tgq_decode_block(TgqContext *s, int16_t block[64], GetBitContext *gb skip_bits(gb, 2); if (show_bits(gb, 6) == 0x3F) { skip_bits(gb, 6); - block[perm[i]] = get_sbits(gb, 8) * s->qtable[perm[i]]; + block[scantable[i]] = get_sbits(gb, 8) * s->qtable[scantable[i]]; } else { - block[perm[i]] = get_sbits(gb, 6) * s->qtable[perm[i]]; + block[scantable[i]] = get_sbits(gb, 6) * s->qtable[scantable[i]]; } i++; break;