From patchwork Thu Oct 6 00:57:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 38568 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4d9:b0:9c:f4b:4e41 with SMTP id 25csp884991pzd; Wed, 5 Oct 2022 17:57:26 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4dYgXfpJ0LCoeOUu6O4Ozrn4/b2YpjLs2qUaKT4BKZ+eBxSuF/wNxXJaiG/VSqr1PdhD1s X-Received: by 2002:a17:907:7f13:b0:783:6227:b939 with SMTP id qf19-20020a1709077f1300b007836227b939mr1784594ejc.416.1665017846483; Wed, 05 Oct 2022 17:57:26 -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 z3-20020a05640240c300b0045157918d66si531060edb.355.2022.10.05.17.57.26; Wed, 05 Oct 2022 17:57:26 -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=bDAzfLY4; 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 6C5C468BA81; Thu, 6 Oct 2022 03:57:23 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-oln040092064095.outbound.protection.outlook.com [40.92.64.95]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9701368BA81 for ; Thu, 6 Oct 2022 03:57:16 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bvLhagZWxN8mA7+t2hx7Nmqd9wHgu+Xtd8R+Z69D3cDtS4BwsrcjCi1JJizXvKf6cZOUAQUju9jSURZ7nJJyYqSZZogpAdORun7i8dZft3tM95fKbIxM3gPnrN3hnLAzqRTrmrBOIlbq7WDjpl4+TtCJD3RURsjmB/cHZwk1XtLOeW/LnBHrTJHhZU1Tyy7yLAAi9Aa8Mm0lrmQDe1cMpiZE4t9X3TxHZk/Vru4jxYehvBNSBKSfuOk5gIekJKsor2gZwYXDfT/Mh8qgX3xKnI2vXtwznkaCqZzzVGfiLFwGMo7USSZ98V9YbRULMkRLKQUq+xpd15D59ZD3sJ05Hg== 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=uw3GGbrRAZSmQtO/Ajw9+3gCrdzV2xhiIVmskCMD/xU=; b=dUyPptFOY2doQNZRBbJFBHkyVaOWMn0IKT4Sdqdlp0Altxb8VR7ifmjElHmisZ6UCbJn/m8puObxVD98umiQ0jSidaIjJhAg3LicoIllb4+rKH1Eq3nV7TpDz/KLPPmg7iij33FoiCvDqNPkwJmaxFf61dzdXIG2mdK0TQKTG3j70QujfxWpTFcuU60LfZdxXXYjSVeMN3xtnEFsKorc1ETKwowyT1iSfS/Ii25bdCyd19qF4j6MnFIVfO0pgZfiXMcxQ+816MI1pwTckGzWsRrR0F9RIOO6dKhV5Mk2DkKfpX31+uN5MRfXhrzA8jMm05zHkeXAMpEPgANAJEmFwA== 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=uw3GGbrRAZSmQtO/Ajw9+3gCrdzV2xhiIVmskCMD/xU=; b=bDAzfLY427EjBoJXjeHSrQab+N4uhuVl77LLzdMuqoSCOr14nLxlfo/KeB7NAq/iFqQ8UwEO48D/mmgrgn6j48ymO16Bm8K4H0TEQwYXZ424ZX0JHXWCOaZkb+oWCEEkx5gQni08Ma+iztA18CJnHotqW/i3yk9lFSrbso3NcaHhmCWDCFXN9NP+3jAv57DAWkD5PqO4yHIq5+1rpdwRVzLNUwKPRO0c+G+s4oAfx5rrIZ6FfACs9ht0kaIrsPnkhYAUfbV3ZeAwlxurQodV5r6F7THzez5mkGfAXlfaohMm2EXGN+fufoXyl7GJKM9heOEtL+qUX/w/pPeenshjHA== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by GV2P250MB0801.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:a9::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.28; Thu, 6 Oct 2022 00:57:13 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::68bd:2fc7:ac52:38f8]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::68bd:2fc7:ac52:38f8%9]) with mapi id 15.20.5676.028; Thu, 6 Oct 2022 00:57:13 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 6 Oct 2022 02:57:07 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [6Rg5jTrR4t6L7bmKXFy9ia8HVLYx7ZC8tZlqNuJuSkM=] X-ClientProxiedBy: ZR0P278CA0150.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:41::14) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221006005714.3530026-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|GV2P250MB0801:EE_ X-MS-Office365-Filtering-Correlation-Id: 01df2ed4-94a3-4331-080d-08daa735b4e7 X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmqgQ4FT7B8ShVDNjokrWqh3zB5z5KMYwwEJGDyUgsw/vzcWhTffXlVt5PSO2vy3Xkrb0DRfXVJJH7LWLLXELVYJM8kmfNKV53CDDcOCWNqGa6yajCXi+Qx+5bzz2RqEdOjXo2fOiqj1tStM/qrHwcBlBlbKSCT3c2iwuiW6eV3vDFLevjmmAEEZ9wSwc+AnwohADAlWdd7X6cb3WraATGE0sJOkqDF6knnetQBmqNFF8g4rUSEHyKWUxEalmFp+v7+QhkqGo6Fp9u8T3o3IWb0Hg0FZ7czJFQGPshAjeFVkEgKFNW0cFbdo9FJMxnxG/4fibUChO1YGvCPo6QCTjf1oS7qQ0qaC68CX2sEy1kJFwAP6p2S51mbn7vxbTKT/KVFYepriDNg4zZiPrIusDBh9sjjZG1JafJqN6dmmlQLPIA4M8JZeBlXexTdkqu+8HwHNknakIfi2wT/CopWBch5/+3SZN5QpegS+br649zYKMeRUHwf6LIAbbFTFawz9Xk+NMaoM50F73DORAuxcPvx9gYlgUGVrr2BDvK2/NfoY4mKIxJ7P3HtdoB9SDi5mKnvma/ALfWz0732rk3LjcPAOICmQIWYvpAXB94yJPU0rMt7IbixRxWaDYUFyLp7GtSVVzib2kqSnUpI+6Pk7uz4de2AvBI2AtEh3UWM/GUmeUxoy65kyJUrkKBa6WNuqAaTW9OlXsEptyDh5VTJL0GAoyfNkkkpDPm1ZRwRPnNLnfx7vgqiTq6dfvawbgY38WnA= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: RvHHYgc0CGH9DAmUJWMlgGvzFdWT/+WdrP5fbxwb/KvpvEV8jDinj1sFVPgvc6f9TZNwbatuB5c6xjPJ2pzyZhvkCJY5BL4OohgXG2dEAzdAGmtaS69CnnBCe+mqxkB6RX9MHNOOFM+wsjWaOLuT6QqDONRBIof51HaHROD7hGwPlxrWkDtEMZwvRGDBwnCqE5f5pGvzWOs/Y+F55HyoTfj21aN7GObyu8BG0rxoeoNXM0FhFUwUrYd7tK6Mi+Pk8/DzOh9iiQDgknVHCnFv5HKuPEIwD01rVcCj6tlW3QrdB6bHjrkuwyvznCxhbvfRuA2l92H6t6+JlkJLbkZlsblaM5MKTjrQ1GgjgX/Fd/jtjjUUjWTenuFlDfNZaeQpvYYf10bKCWc2n8cABGSZk7xBU3uThhP9nI2TL7i5tpB2tL/BhuCb/MnNTdaoUvej5G5b+ZYTaYFSpG5fjwnZ+sGoZzfGKC91xEcbLjG1b1xkLkeZkzQ7dpHarNExz7QA4JLXmlT8ST0bvRzE2bEYUUaV0R587Lw9LHtGNjiJMe/jaAsYd5tyFD7TcSOPgVY+TP160rRq1blYr9JT0XWx6ip8AcUkxzzJybarcc8TGp2swJLV0tEsqSmAawKrZDe/WCL4oooNXjD8eDDQzk4iFwTZvLI2ouQwejKn0Jj1SozYdVbwYWaWnEdDDtNjzz2p X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: LmKALJAJsZBM7XeA2cNJi3yHyq5EtBfVkOeIEuGdKSjCAdlw76Aif8p1oc7BFaw8qcPLrqNLGf4s0lbFklNthSuXZiWblaEsQGHt3oLLx6lw7wNOBpXYPZt1DnwjJe9/y/inZwDj5UUeUGUJJS2SW0nardHX1H1fh51q8qnK6VTrCDoz9XNTMcsOO1GyBMUcE82/Kokc6mu/jllcqEW0Hf4Y3M979YFUnScmjIgmWuq5vPfbOrykUXDbmrbZ0FT7Elbb2kV3QslO6QOh+UyNlISUukG6xymo/6QGkCMZoyNuqzsi6W6CcMO4qR/iBwAd+6D+YOSH5xhCVewuVy6sQqIT7hDfARmnQsnpdMcCuPY9wOtF/G3gNLkL1sm6Hou/ZT9XVPzs848jy8RQ7oKPUyGXX13diSJAx556qtjCBjRRBDciBElA4oJguunOAdq9eKMllNgWgxx6sWQfVUaAsYqk/k8DHbsJQdQEvlC+QXEaAaBwyEt2QRSuqFF/t64ifPUPyNAFOSerV1rfQfd6NmQEO4F2ZTM0JsPtrLL0HcLo9Y0iB/N7a2luqCzm+P+zIQ2un0C1D8Nm0+H8w9Ao2biIPkzNWRYGgrwDkfYHW6IPJagZ9wyJoYvGiC/iDLtMkdWHb15VwaBX+surF7679UkNdY/7c3z4nPdnbiJAJjQlc77L2jwcmRStFduHfDTfao2DhLiP3Xs5nWZWFMvwEB7mR+LqzFnRm+zwgAFyy39hDJFy9PUSM5icVKdAUVXmpincmi/b+VWSfzejoov1I89gpR9pH6QfDwKQtL6fmv10hVr3oG1rfh4qCivx63sXv1Y1gm4jwK+RBE2nHXESC2Du5wAxB19sB1HE2SNTv/P5HCSMXIWrsz56omFZ4jqrI7Oxw05DK6qT0xF139ENSbdEh7XJ5vHzeONt0LDWtjPjc2jSuNE9ZDLorpNw5Aj8J9WqkLYiD2/450aA/bFMMSEuScvWXEHG0DmzaEVJ4O/1QMV//uH95v1177zQoe6uP+OG5kuhKqkY8+ru0QiOeoLIBchqWWZfK8Ykg+2M3I1FQBxRO4v1XISzQkku/i7lIivib6d3s/B3jGJlTOCsEN2aX2D2MpwI9l/hqX2ZMdGhE4homPw8zPsnxIwQsClGq/BLMTMs7gEVbe9TgBxSuPcJ/r5NhYl9CpldI+juAX4ozLvhat4gQCtYGvu3XS8ectEX0slizBz1nEQoi//KTWpvJsKyrGm4ppdcLTnJ7fcTYF6x3kKKeba6zeLsUMQRv/ZCGhI4tE47ASOmE1PGxUmEJQYX9t11JAnWjJvG1IQLFaf7F9yshv5QvNDFHYD+ X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 01df2ed4-94a3-4331-080d-08daa735b4e7 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Oct 2022 00:57:13.8365 (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: GV2P250MB0801 Subject: [FFmpeg-devel] [PATCH 2/9] avcodec/mjpegenc_common: Don't check luma/chroma matrices 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: /KF4pIWcZqb8 These matrices are only used for MJPEG, not for LJPEG. So only check them for the former. This is in preparation for removing said matrices from LJPEG altogether (i.e. sending NULL matrices). Signed-off-by: Andreas Rheinhardt --- libavcodec/mjpegenc_common.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/libavcodec/mjpegenc_common.c b/libavcodec/mjpegenc_common.c index 98c464fc62..0076e94296 100644 --- a/libavcodec/mjpegenc_common.c +++ b/libavcodec/mjpegenc_common.c @@ -61,15 +61,13 @@ static void jpeg_table_header(AVCodecContext *avctx, PutBitContext *p, ScanTable *intra_scantable, uint16_t luma_intra_matrix[64], uint16_t chroma_intra_matrix[64], - int hsample[3], int use_slices) + int hsample[3], int use_slices, int matrices_differ) { int i, j, size; uint8_t *ptr; if (m) { - int matrix_count = 1 + !!memcmp(luma_intra_matrix, - chroma_intra_matrix, - sizeof(luma_intra_matrix[0]) * 64); + int matrix_count = 1 + matrices_differ; if (m->force_duplicated_matrix) matrix_count = 2; /* quant matrixes */ @@ -285,9 +283,7 @@ void ff_mjpeg_encode_picture_header(AVCodecContext *avctx, PutBitContext *pb, const int lossless = !m; int hsample[4], vsample[4]; int components = 3 + (avctx->pix_fmt == AV_PIX_FMT_BGRA); - int chroma_matrix = !!memcmp(luma_intra_matrix, - chroma_intra_matrix, - sizeof(luma_intra_matrix[0])*64); + int chroma_matrix; ff_mjpeg_init_hvsample(avctx, hsample, vsample); @@ -299,9 +295,12 @@ void ff_mjpeg_encode_picture_header(AVCodecContext *avctx, PutBitContext *pb, jpeg_put_comments(avctx, pb, frame); + chroma_matrix = !lossless && !!memcmp(luma_intra_matrix, + chroma_intra_matrix, + sizeof(luma_intra_matrix[0]) * 64); jpeg_table_header(avctx, pb, m, intra_scantable, luma_intra_matrix, chroma_intra_matrix, hsample, - use_slices); + use_slices, chroma_matrix); switch (avctx->codec_id) { case AV_CODEC_ID_MJPEG: put_marker(pb, SOF0 ); break;