From patchwork Fri Oct 21 20:12:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 38880 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4a86:b0:9d:28a3:170e with SMTP id fn6csp957212pzb; Fri, 21 Oct 2022 13:15:44 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4Nu0JTDMGJnQ+kaPlj7FbNkBT2rVPooG/Qy6az1OhaHM7At4dKHnGqFPLQJe0YX1lp6lqm X-Received: by 2002:a17:907:d0f:b0:78d:a335:8368 with SMTP id gn15-20020a1709070d0f00b0078da3358368mr17298598ejc.260.1666383343748; Fri, 21 Oct 2022 13:15:43 -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 y12-20020a056402270c00b0045d636ca148si18703159edd.575.2022.10.21.13.15.43; Fri, 21 Oct 2022 13:15:43 -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=ZwO6IxEm; 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 7A42368BF5D; Fri, 21 Oct 2022 23:14:01 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075058.outbound.protection.outlook.com [40.92.75.58]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D585F68BF34 for ; Fri, 21 Oct 2022 23:13:56 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=l8AaErtYRLugFqJvhq7KAgXksWMkRdbCtN8MhyPpkK9GGf/ORp74npEH1mVOPekXqim5joJYcrXHXQPsYsVhX/3cbABfyuntYnAlGwUdgsq9JKxBeaBd4hIaJXvfNrJ2hkDkL6cRXxS+gb/bQqSA7G24Q3ndN0RUpiPEj+9lEI7c15jyNKlaJMkHr4T0/PszxSJDyF8IfxCeL2Z2Vhsnyue63d6m7+6SjOAx5PPLZRsWroGWAEIPAhFuMKehRiF29D3k5S8tirc0ibzEhBGQS9sE0/OoEQScEGeX/utXQksT/6nsoTJkY3NfpSaA48ioc1aYQ5sl3JwUN6eYFBOt7w== 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=Sgq/p0wO4UIKqkoG/QmC6Rj2iXvChr0IIaodaabWmb4=; b=bjpnWRRDjqQEia2/jdxxA25k59ErtWUZg5JfPiS5PmH4G8lc0o9scbUnWSEuIJjGubiHaNrS/kHQsL3vBpauI5Tc11HC5ExOLCOC9+fo/EQJWw1hOXxNlUsQJEuheF2imqFmebgt4IZ+Vvjtl6MfMkx31pRG863HIbfGeFTD9cXQv+ptrNkcHKkyjEZYkU5uxkXNdh+gumVlvBs4pz4Lo+c/r6RHen95Dya6ASMnGNMHH0UEIFSY1S1EvNaUJEcl+ChE6PQseacxzTijPQEaWNOWtxgpKYS/yg6ChyhQAWYj7ZsN+NGyq4UFvWhRyC3DfvXncL6G6WQ2QQn/SCNL7w== 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=Sgq/p0wO4UIKqkoG/QmC6Rj2iXvChr0IIaodaabWmb4=; b=ZwO6IxEmeeGPqb+fMSImMjJn68rWdlSC9HQC0uB00/O+TxJyk1dcqHlU+01u5yo02Jy/hd1Ei1WrYXnEAxzvZyLALrnMPR01PYKW4wJvjAfGDtIK+fNZYmnzX71HSsE2Vo0bAQkCHrocimhJ055FodFwRD84NKoKg1iiGNGVVx9aRPZadad9o0UiCV2o6V60Jy59FVqHBNvxJQ6thmYdpZtJCIlepoVGrIPLpaUFRomuggQ3jpwHyWccA3LO8e6taxs2pnfHvqdYzQCB3qwHKcW2OQvpkYf/WMCO9k/UksvfAaHDuF1TqfYMzUiyQYYAq0m9AGvPega2FMoReyTc2w== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DB4P250MB1007.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3f1::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5746.21; Fri, 21 Oct 2022 20:13:52 +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:13:52 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 Oct 2022 22:12:54 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [ewr/3T1uWCeHQR8XqdvZKaxOWAImiJZyat6jVHI/yvU=] 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-17-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DB4P250MB1007:EE_ X-MS-Office365-Filtering-Correlation-Id: d87b582d-ce2a-4f60-a23c-08dab3a0c5d2 X-MS-Exchange-SLBlob-MailProps: ZILSnhm0P3nnHDnbJ910YUAai4EXr732/G7pBWez+QOLvKojabzYMzxpx/7DUf8jBRFyc+hV0GYYD9nlfJ2x5qQxicnoPbn2Yv4ZNAQFcw6610a8jSDPzC1vkmrXhdnlxj0HtqNMAi7ngHtZMK0DhiJdc3pNx9dWk+nEZ8XM8nUmrwuEmhlIYw2CyaW4iy6KBrr7Gr1KcSsRyjCIkYnQ6vXlUc1vfJ454ex6iaFAUqN3HEASu9LgWZJtl/Am6Rwv78Vs8tv1+3sooOSBE4cV/rsgdi/0qbvPnRagpsd6FYmUoJM9BFDuABAJn30NPs79gQa9shNUHy++alWNBpWA7OP4PKI26flTJMB58hA/jydlpsnnTvsmhiHl0AmA3FFk7lg0dkTNwy6ONbdILu2RbbW1JuydG+BPw5gls0kl8NCDJp+Gv5/fMb6bgU9CfqOddkCyFCWZa3usQQv8RZJqrj16/iGwx+A6KoJGAubqkmXgHdSWyOI5F5CiLvl4tle3cXkK8NUE1wXT5VF8goFo905kKAeLsSByMcI1Q3Da/O8saIKDp3xKHPn/GE3l/hRljDZ5Lw3XIw58jeGXZj2hytS4RWVdf7K2ZoEuIlqxA0cKXJgGulZv5FHrNIJNXV4C7P8YZXz9+uLuLdv8vkosmV1a7EkPylTzV7f2iJhDQhydkHU1su8sCNMe2nAXoLfZ4QSdNBwsz9/VpN8GOZUXvaaVDoMrF/f6ZfNNc06/NlRCQj8WquteG/fD80cRv5dR9GNl06vm/Phkwp+fnMbS9TQ98w6+Hu20 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WVWdgw3H5anR8iFJ8I8e8vIFbrjPd6xgp2R9GIJGWMrM/sbRzGsxszJ1/Hlf1IfZ3xuZWlltB2QlH3/q97los9A7/lq/FIHOYi++DMpnfTLiLlHw/46rgDS940Vp6Vdnw/nUGUVe13Jj5PH2vG7ygInK3lPO2S2tcQXDplXUGOAMDZ1sE2yJswDEH61KXtEncJTT4ILu3vcNn1cDbKbf8Lided9hxLftCu3R4VNUu76cll/F4jvQYPTMOTO/2rZHyS+2XHR7gWLCuf037T0ywMcW0w8cMgTnApbIOcXkC7aKcE4MY9Tvx897FCgoEG4VN10+82AmWFKGi9wEWm8DSazqU6jZi9w1wqXQHAbuhXrHZKcTpxbq67Phobt8hTcohER5Kp2axUFVCDw0vl5Kxd7iB01DcBcI5GN/EjwINyUwiq4ligeHJ5clIzdVgJvU51lD26DEjEyyRvO7lh9Y+C27KpqKHKxjBerxl+c8SraeOkL5qKsbSofUjeuUEO1j4jLTZVHrBm2guD82Qbmt29AHGKrVcGYt1ZL8/C/FbTDFIR1eqb/0F5T6XES6hN0lueBpdSq/mvWn/dik4crt1VoXU6LRBq8wZ3thD66MZTBgpvdk7UUTM8h0lW3riO786BNKRdmF7FBBnsnen1SahztlpPQytegiQb2atcVeu2ZdJt/1DKb9SBxogPGCWQs6 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: KB0wv4sPDj/Mja0WJ2fGOeUy6N+2h65UwVcmfSOV+mT73fiF0n07quSaXi0CMRUDvTSb+tvscFP7A+CQe9UvCZYo8xSOhOODxTlKwrxUcs3vsh8ylfEeE4qs9zspkLvPzrvVdEmnUEHxVWPwc5FGXD9rfwq2MHx0BRXPerlAiBCbSSASlYmjxSSZbwMv6qRUEhxldYogFMmXq6pfGa1S0CcPK/FmBHUn8z0siIYrVj78LOPGpNnuyt1pRZNrcHLqilXxZrl5B1QppoBwsczBjrn3BRJ4a86d1KUMhblwNnoyDUVtawnc/UMiMA7mkq+8L2rLEbgO9q0V1JyO5oTiAp9YR/p3Nnq3bb5U/aMxqnHoOMpjBLPKkM2yLe6aUuTgERe080e2yi57sIG2Ijo28ZiyQQr/YvTDzQfvr/i2TRHPK1dumev3fKMvTSSopu4AbSxggFPDtxP/CgIpqlb7AgY89nNqfY0ZcUwkdbfnxmj95WJ2S/DKqEABy+0SDaZ1iwubj/ekXIPahdK5SFN04jgLIjK+6ykfiKOb65mxHf+1Do51TgZbJc2Wyw7R9MkZS1DS7T9S2ffiaRQd71NMTDt7gz7H1r3zk/IId1Uu9G0kpiQDhKD3hGfQligqkhy41xHssvQ8whYaOHXIYuL5GlVHHiqo6h6uk+9xqcDpVrfrlmZNQ98hSEnpG8iN9W+9uLcWwy4ZLz90Xrx9aABCUF0qDIt8sdy2AvD5S9oatwZOeGxMDvI+E0Pds9I/0wsz8rqxXbAeuq8GJ3dobiKMLpcK0uODulY+927eUKeZxbzkSS7cck2dStLjaYt7zPmB0Ux0p/WdZoDibDoW1zmcEdkZb+qYNPfuidkxSmwmy9iljdm+1iGPEsQuMsXfreNaAcD30D0GMv0ewXUCj/CLpO/45vlqJaTA59GVu68O+GaxcwYffvFtQFDzxZtdJs+vOLkfEgD8mNR1C67cvu3iIiIaXcVw7S7Pv9KoYg1fYXwLEuqoxzX3kmOqXJUBOr2U5gDMCrldvsfS/TPEs9UfcM7waD+sij55/CjYyxqq5/BpXheCiLkRji4mkCSYk9s2tuGhxatN2Hs3bvK3t9gCbBVbTXiVESU/Si/ZzTfbARvHPy0OSJsK8lyMQIhNG7qhYi4MN1duZNqX9m+e2MjzUDudxCdCuwhjLHzKkZG0KAexLtAv/d0heC80HsX2eeby7QA88zANeIQpl62Lx6kBCQoibexmyvqCptHaQFI5CSVF7aAuTfXQjq/LY5UuHgp7VrV1j0Mf0Zsy2Ko8bjnheLcLUzi8YRXRSaeHpkQdBURyk00xBL1XO6NLlyao3Pwm X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d87b582d-ce2a-4f60-a23c-08dab3a0c5d2 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:13:52.3119 (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: DB4P250MB1007 Subject: [FFmpeg-devel] [PATCH v2 18/24] avcodec/mjpegenc_common: Only pass 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: +vhkHKVCdfmd Namely ScanTable.permutated. Signed-off-by: Andreas Rheinhardt --- libavcodec/mjpegenc.c | 2 +- libavcodec/mjpegenc_common.c | 10 +++++----- libavcodec/mjpegenc_common.h | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c index e56a466b36..eafe7130e2 100644 --- a/libavcodec/mjpegenc.c +++ b/libavcodec/mjpegenc.c @@ -81,7 +81,7 @@ static av_cold void init_uni_ac_vlc(const uint8_t huff_size_ac[256], static void mjpeg_encode_picture_header(MpegEncContext *s) { ff_mjpeg_encode_picture_header(s->avctx, &s->pb, s->picture->f, s->mjpeg_ctx, - &s->intra_scantable, 0, + s->intra_scantable.permutated, 0, s->intra_matrix, s->chroma_intra_matrix, s->slice_context_count > 1); diff --git a/libavcodec/mjpegenc_common.c b/libavcodec/mjpegenc_common.c index c37c964931..6dfc4469a5 100644 --- a/libavcodec/mjpegenc_common.c +++ b/libavcodec/mjpegenc_common.c @@ -58,7 +58,7 @@ static int put_huffman_table(PutBitContext *p, int table_class, int table_id, static void jpeg_table_header(AVCodecContext *avctx, PutBitContext *p, MJpegContext *m, - ScanTable *intra_scantable, + const uint8_t intra_matrix_permutation[64], uint16_t luma_intra_matrix[64], uint16_t chroma_intra_matrix[64], int hsample[3], int use_slices, int matrices_differ) @@ -76,7 +76,7 @@ static void jpeg_table_header(AVCodecContext *avctx, PutBitContext *p, put_bits(p, 4, 0); /* 8 bit precision */ put_bits(p, 4, 0); /* table 0 */ for (int i = 0; i < 64; i++) { - uint8_t j = intra_scantable->permutated[i]; + uint8_t j = intra_matrix_permutation[i]; put_bits(p, 8, luma_intra_matrix[j]); } @@ -84,7 +84,7 @@ static void jpeg_table_header(AVCodecContext *avctx, PutBitContext *p, put_bits(p, 4, 0); /* 8 bit precision */ put_bits(p, 4, 1); /* table 1 */ for(i=0;i<64;i++) { - j = intra_scantable->permutated[i]; + j = intra_matrix_permutation[i]; put_bits(p, 8, chroma_intra_matrix[j]); } } @@ -275,7 +275,7 @@ void ff_mjpeg_init_hvsample(AVCodecContext *avctx, int hsample[4], int vsample[4 void ff_mjpeg_encode_picture_header(AVCodecContext *avctx, PutBitContext *pb, const AVFrame *frame, struct MJpegContext *m, - ScanTable *intra_scantable, int pred, + const uint8_t intra_matrix_permutation[64], int pred, uint16_t luma_intra_matrix[64], uint16_t chroma_intra_matrix[64], int use_slices) @@ -298,7 +298,7 @@ void ff_mjpeg_encode_picture_header(AVCodecContext *avctx, PutBitContext *pb, chroma_matrix = !lossless && !!memcmp(luma_intra_matrix, chroma_intra_matrix, sizeof(luma_intra_matrix[0]) * 64); - jpeg_table_header(avctx, pb, m, intra_scantable, + jpeg_table_header(avctx, pb, m, intra_matrix_permutation, luma_intra_matrix, chroma_intra_matrix, hsample, use_slices, chroma_matrix); diff --git a/libavcodec/mjpegenc_common.h b/libavcodec/mjpegenc_common.h index 5b13faae23..e9f0ea44a0 100644 --- a/libavcodec/mjpegenc_common.h +++ b/libavcodec/mjpegenc_common.h @@ -24,7 +24,6 @@ #include #include "avcodec.h" -#include "idctdsp.h" #include "put_bits.h" struct MJpegContext; @@ -33,7 +32,8 @@ int ff_mjpeg_add_icc_profile_size(AVCodecContext *avctx, const AVFrame *frame, size_t *max_pkt_size); void ff_mjpeg_encode_picture_header(AVCodecContext *avctx, PutBitContext *pb, const AVFrame *frame, struct MJpegContext *m, - ScanTable *intra_scantable, int pred, + const uint8_t intra_matrix_permutation[64], + int pred, uint16_t luma_intra_matrix[64], uint16_t chroma_intra_matrix[64], int use_slices);