From patchwork Thu Oct 20 08:45:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 38851 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4a86:b0:9d:28a3:170e with SMTP id fn6csp46177pzb; Thu, 20 Oct 2022 01:48:07 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5uggnqE/IAF8infJtVkqsXEMe1uAOzMtWfIlEJk2ALpwBz+yh3H9zr5TIf+wcApta2o3Lp X-Received: by 2002:a17:907:2d09:b0:78d:4240:a45e with SMTP id gs9-20020a1709072d0900b0078d4240a45emr10101558ejc.350.1666255687433; Thu, 20 Oct 2022 01:48:07 -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 rp8-20020a170906d96800b007413f3cdd18si12851389ejb.238.2022.10.20.01.48.02; Thu, 20 Oct 2022 01:48:07 -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=Owl2nVzm; 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 6602C68BE96; Thu, 20 Oct 2022 11:47:00 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2052.outbound.protection.outlook.com [40.92.91.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 490E468BE96 for ; Thu, 20 Oct 2022 11:46:59 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VgEYjHQgz4qyhU9Td+adAoaoPVu1yo5R5kxDMfrQTwNXBmBS8SgoxxF00gkWGF30zs+GQc3W1Zwf85pzkZ5pRN5F/lh2bhg5+K+weaFV8Ztvur8QkxDlnLQV36kUHC7ZkoFjHTXHlYZofmhdnrrEHIPW45cKh8MvQPARCff1QvoQKSNZ4yTwobIGwTjay01Pqts0EZYgl7cDJgYfRG6y2SWmAfmNrTMZ5GvTLKqq83Q/d2M5V880t5e5gxrjoGXM0tFU7SAIhJ9fmK/bYpCDLC6/Eou2boD6VtgWqAKonYRm+Tg/Yh0M9ABcl/dPI1Rnlq1zl9FXR81Bfju3ywAh2g== 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=bZMRyi8IKlLlPZmS1oXJsatYwXkXSou8lxSU4NCHEWo=; b=kCyFYx61OQCyXjFYx6870XAwj/xBkt3aVzq2+FJtUHDLgPA3c/T+7UPTVgKaMEssIV9g3OwvGACeTVk8LP5BN7Qj5lmZ6luc4d7xHXcvpr+s8eOPnW2YlndKI+69Ybu0uFrtmw/LLNF9eNIOItnJ2p7UE6HiaqJhhtHbv8UMUVR98DpwdG6QWjl7NVG1cJvG6tkCzf1VF8yWHEpHkrfFIbu4K/FohNdPaBZMm4EWteD6n1Wg8R7ovgly3FWHkghfuGDAFdW++49zaQpicPVdnMmlRa623jcLjypbfkZbw05CF2VSlLM2ivWYj5tvi5HyxZ6XvYTNmwpG3LJjNYUjWg== 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=bZMRyi8IKlLlPZmS1oXJsatYwXkXSou8lxSU4NCHEWo=; b=Owl2nVzm5oIRFarK8zS82959Sie0JnvMBLzPwW+5j/PVEAit5R6a+VpfSKC8uQ1A3SQE7NiVJCC0sXR3iqi+KqIJRINF3rZz7HToF3clAV4i+VCkZUpzNAKF8wyzG4IgfztbhQFO7jKO2eCs+SavnCR+dzKVXGfInXj7XuvLQGO3V+Ujxhv/Gwxyh5ohjQWsXc0AYbl5UrYbtcxzV6RCWXsnXuOIJl8ZVjQ4Dl4sSm5aJ+be4T7ZnQu/E5lvo/JwQPtQSYtVT/creILsJfGM240XfwP2GFGvS31jHG3uHiAis5Y+3sQZDpMnDnXiNblWzlOCjRc8aFP7Q0dX8I3icw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by GV2P250MB0825.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:aa::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.34; Thu, 20 Oct 2022 08:46: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; Thu, 20 Oct 2022 08:46:57 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 20 Oct 2022 10:45:35 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [fsWvDDGcudxb6Kkw9VzZS5Vj60UxSMIWVoWddYTuUDE=] X-ClientProxiedBy: AS9PR06CA0774.eurprd06.prod.outlook.com (2603:10a6:20b:484::29) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20221020084540.2378553-16-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|GV2P250MB0825:EE_ X-MS-Office365-Filtering-Correlation-Id: b2bc1a58-9469-4b2a-2e82-08dab277a5a5 X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmqqpqVHbY8r+ej275oS7ZbBKMNm3s84Zj1RBQbBmuWxCd7YX+WbFHQ9IQ3CEFoS9K8+Ljwl333xlKR0L+cdryp6u8T/FzQPBUfuvTz6FDqyLc9j1YETXQuVVptM6V269tMP9I0jMnQETcbG+jKNKJlTPtXZEybvNgWqcsmQtoHjClmCodC6cw2R2G5Od/It69NiOVmNJySqQ/eBwDm5OMkHenQE/lmC+6kGK7H1A3c5t9f2oCYvmuE8WcA3MvRs1GiIXytyiH3ogjiFAb6/Wxs0nAGsO/3lt6QrNDeHfcY+9gxDr2BfyrfNm2NIpqmz2aDXqGCGTrZuVxECDB4Pfni8STrNjFa677hKoc7r88UTfWMizZOkrzjvuo072PlczXwmjqX2Rl5vdpIZ/Ssah7nho4cZKHeu3GQIT/aN2sGxS3k+q/bINWBDWqI0jYHHF/pV24zFdRv+HdlxiqMK6wqr6rEUh7ZUqxDwTLNpajTOATWeCqZCj5jWtg/no+zqGffWwUywVbR1Ol1XTg/IsG5VxsxpMjr2ENCjn2iWLryZjO6pLYzhxzYqtjW68cLDdWGdmGqjzDZGG26CsQ/yYqL1DM5zwehSA4qDSmo+pjTdq5+rnc12UO0I1zBHb7/JhwtPGyUal4zbhTuC5twVq2c0FScS3cfMQCzq/NLBuL9PTmWGNDUEkmPGRsb8SuYQM0nwo0SyqbvfSx2WHD4FMWeWr3Krs/JsJTpv4/weW9dnrzXdUQM0KmnqkiKY/nM9XOI= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xKo7kg2TlxBE3pQsRMgOp+Pa1KWdfmTB0WcIkKN3xrLgyGLGIWswbFN8r0lv3H3clo/e/gUiLwbP6xSQzUnNjNtEKdTffYoWbMuqNduD4iYJrndKS7dE66lTF7eqc46twc3YnJzBmpWQhmV9gDawrhRsqlcNEvo9SFS5uNipd/VoM0R9Y/bPggPKsFpRxZNP6WKtKAEDgzOK0cfEVPYgB1GV1O0p8ub6JCvtr3bGAOmbidBB41f2xMzVSlCYeT8B/UmGDzdbTtQciDgI/P99m7xzvHHcQ9mFKm0wIlsJMCAtMVm6AkOI6re+V8OvtHBRYAezqkwjgQxPr0jNnrTzJfHVYAFo/oRktfdP3vd1mRF2Opc++awFSscH84DT8cYOG0xKgQhEcaA1QqQxOnZ1hamZi4ivZAVaoK5r9rXnkj2NuyGMmJDJqdpLMV/vxQwHQjTEaCtXGjEwnrGvvaA7vpf52x6rRORUXBphAReAf0YbFUsXHrMa6jDpBa8SMSWVswKYP0NBO1T0H9r80S4OI8PDsnuLwz4b67R8D+dBeLjFVpkl7VeqyyjdQVHw9m4TZMF8hevLzLHV5+XwBUzdC480mxbMynffymazZ5r1wqHBYj5jJPtuX3XUf+Zz8AkmAKrtR4W6GGMHsIigNScmUMgoDT8EHmIm58xvIEhCn3X6ZBBDoWoQ0+9NCtp5G+My X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 9z5hxmWwZD6G1BogvOJLeywlkFFv9ZARjGITbY52oA8EKrnQfB2MKwFk1KuXI+BBfPw8NGHg6YFle0ZUDz7CX0jKXbX0oZQ+pqsOzzFkqsW3WNVFLvmURWZQbB8SqOuINa+i/hTCoCyVksw/O4SGNZBizUsdVzW3SWQuKVVuJXmGBKALchXrskxa/xi2S1U5Uy7bCQJ1vuIRL54des9DOILQZqR7gmUbbYwR+FTLqxHzeaTg1i7OcBi7Ph6OwO2HqalxhmOqeaqBNQMH73UdOob8mPINbjKwP9oAZlBmczUYpI34rdwH3QWrxz4oE5Pk/9bf1lS7HQ9WI0J8XzTD0kTHmpp1RS/Rkun7y7IAcf+rYplAeFwnRx9brtQ/I22/vaKkApA/AwKKS+RbBiLfJGUsIxxG5gRFjFu9wjTAP7WhOEgaijyvXLgqRwQNN/JjlsOeKIZy1mnuPUoeEw1Qoz9DcKsCZSSRfPwey+RrES9i5JecyfV+xcJ7PHa7eFVsYdkU3lHm98YmN9nMVzN/e0LJbv25RU0KugWmWF2tGWFX2Tduli/Cdo2Owx4AmAMGsmfGCKFOcxopT5sayw/7MuqTPzvxCu+z+P70Wcz1YCF/KFeUS6StgcsppGki/eWoKe9hxg+abZBfr7lO6aOr9/ru8MBUhp9IaUCIc3WE2ydCCZfKQsu49uIptOTUeY//1Vx1azN7jBH5Nc5kvVIjO8VYlJOsxUxfqc5ngLpAS2tZAA59EIu65vh+4S0DVpiO7F3fPZQN9uLREWKDnq5OlE+TRxSqjKZiiGzgHNTsN8hWcxE+xh4z49idwhWRGk8iybnTcmypcPFscbl/7am73hdFyJZGusPKoBx75XnOD6P3jRvQox3Tfyffnr5So2eejVFg+hJ/1Y/aI4CCE2QYCY2+NTiTSOHzJy/lw1WRfzHh1UgKN8htatbTDE/mAsTCjYu4gWPXuFnTP+1EM32AaeOo00M64/OmvXgn622VV4fP0FOOAct/anOkvUjSIPypOWOUgkNbVmisg4Ajk5LOtO2wylxvtAItT6uGOFy1Lj49e/TMLBU6qYtQcS58Ux3AHSK8qOICgGpdCOoSFEwL9GUWXeSQgGqOmGVvNZwHiNObJswWJw+Jc486N3+GziSlXOMx7DXbzJtu6EUlCGzp63RFX46k9rzNyv7tJ8wl8rZimHFQw8+fIBBxLARrDdenbJ+tlKicgXZM2IogK8jzVB9fhkNd8/hdZ2XF5fpVcvzRFLt8FFvah/Wq4vTSA1DggtVgT4TXEuke6LwN4WkWftcnkpZmzrsp2kmOORD541c= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b2bc1a58-9469-4b2a-2e82-08dab277a5a5 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2022 08:46:57.8452 (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: GV2P250MB0825 Subject: [FFmpeg-devel] [PATCH 17/22] avcodec/mjpegdec: Only keep what is used from ScanTable 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: lD/k39l1B29e Namely ScanTable.permutated. Signed-off-by: Andreas Rheinhardt --- libavcodec/mjpegdec.c | 16 ++++++++-------- libavcodec/mjpegdec.h | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c index 3374ae71bd..d9df138ab5 100644 --- a/libavcodec/mjpegdec.c +++ b/libavcodec/mjpegdec.c @@ -115,8 +115,8 @@ static void init_idct(AVCodecContext *avctx) MJpegDecodeContext *s = avctx->priv_data; ff_idctdsp_init(&s->idsp, avctx); - ff_init_scantable(s->idsp.idct_permutation, &s->scantable, - ff_zigzag_direct); + ff_permute_scantable(s->scantable, ff_zigzag_direct, + s->idsp.idct_permutation); } av_cold int ff_mjpeg_decode_init(AVCodecContext *avctx) @@ -846,7 +846,7 @@ static int decode_block(MJpegDecodeContext *s, int16_t *block, int component, av_log(s->avctx, AV_LOG_ERROR, "error count: %d\n", i); return AVERROR_INVALIDDATA; } - j = s->scantable.permutated[i]; + j = s->scantable[i]; block[j] = level * quant_matrix[i]; } } while (i < 63); @@ -909,14 +909,14 @@ static int decode_block_progressive(MJpegDecodeContext *s, int16_t *block, if (i >= se) { if (i == se) { - j = s->scantable.permutated[se]; + j = s->scantable[se]; block[j] = level * (quant_matrix[se] << Al); break; } av_log(s->avctx, AV_LOG_ERROR, "error count: %d\n", i); return AVERROR_INVALIDDATA; } - j = s->scantable.permutated[i]; + j = s->scantable[i]; block[j] = level * (quant_matrix[i] << Al); } else { if (run == 0xF) {// ZRL - skip 15 coefficients @@ -964,7 +964,7 @@ for (; ; i++) { \ } \ break; \ } \ - j = s->scantable.permutated[i]; \ + j = s->scantable[i]; \ if (block[j]) \ REFINE_BIT(j) \ else if (run-- == 0) \ @@ -994,7 +994,7 @@ static int decode_block_refinement(MJpegDecodeContext *s, int16_t *block, val = SHOW_UBITS(re, &s->gb, 1); LAST_SKIP_BITS(re, &s->gb, 1); ZERO_RUN; - j = s->scantable.permutated[i]; + j = s->scantable[i]; val--; block[j] = ((quant_matrix[i] << Al) ^ val) - val; if (i == se) { @@ -1026,7 +1026,7 @@ static int decode_block_refinement(MJpegDecodeContext *s, int16_t *block, } for (; i <= last; i++) { - j = s->scantable.permutated[i]; + j = s->scantable[i]; if (block[j]) REFINE_BIT(j) } diff --git a/libavcodec/mjpegdec.h b/libavcodec/mjpegdec.h index 648dd714e1..621f329f9f 100644 --- a/libavcodec/mjpegdec.h +++ b/libavcodec/mjpegdec.h @@ -118,7 +118,7 @@ typedef struct MJpegDecodeContext { uint64_t coefs_finished[MAX_COMPONENTS]; ///< bitmask of which coefs have been completely decoded (progressive mode) int palette_index; int force_pal8; - ScanTable scantable; + uint8_t scantable[64]; BlockDSPContext bdsp; HpelDSPContext hdsp; IDCTDSPContext idsp;