From patchwork Sun Mar 26 02:13:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wang Chuan X-Patchwork-Id: 40836 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:7a30:b0:df:834d:2c1a with SMTP id t48csp379004pzh; Sat, 25 Mar 2023 19:14:07 -0700 (PDT) X-Google-Smtp-Source: AK7set8FUHWsAPNQgsSfW6pZJ1I3LYelZbPeGVnKxJlVn+JW4h6M0JYEOOJsuwYW0I/qj3Hwv9kg X-Received: by 2002:a17:907:2154:b0:933:130e:e81a with SMTP id rk20-20020a170907215400b00933130ee81amr12788816ejb.32.1679796847002; Sat, 25 Mar 2023 19:14: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 qk36-20020a1709077fa400b00931bb737922si25121104ejc.222.2023.03.25.19.14.06; Sat, 25 Mar 2023 19:14:06 -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=JEsA+Ed3; 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 9358168C547; Sun, 26 Mar 2023 05:14:02 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from AUS01-ME3-obe.outbound.protection.outlook.com (mail-me3aus01olkn2142.outbound.protection.outlook.com [40.92.63.142]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B6D1D68C8BA for ; Sun, 26 Mar 2023 05:13:55 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jt5gyfoSI3zyk2MD0SGUo41B3AMeTXZ0GpGTEuf4lDt1JiymDYKTnMN+BTYgaacKz7G8ut1pPkfGwlls11s52vX8InD+HhW8PWntx/OQTfqPScG8rtx4XTJ/cD+/mvR2NDqlV4B92ni8WUORyiOvszWNORvP4A7g1ISYyXphPpvF0wGr/TOkWz6V9X/s2sobsT7mfFT78rgbS8SOS/XGe5HwC3rhKJF4d7JyTAu2N7TI8NJUoITmEySGPWyxMva1RMr9FdwG9TBuMVrW+ctnG19+2grUvaB2QcP9O1HHDbRsjdjzXH2wYjxWVy1pyfkz0Di4r3FpJR4er+EvLLnwZQ== 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=ZUz9VLGbbCcl76Ql68k5uszpG+R05bDcs1yCi586txI=; b=ERHpCpsE3SlrjljELXI+YSE/8t9O0dduinFNSdjMho4PmNj2iwFv0z8sTl9Ysq82tP1gLyUf3QI7JLdujmKFgsAjR87gLpudBhULtVmoV7kBBhO3a3IIyx5B0vBkSD1ae9c+KUHxbFDUD82pZ4lsdqlwfvrgPkqffra3OCM71GQFlIDVuHYJQJG6nwjM1ElCJj992mkHUXD2yuIUybKuW8YIZxrCC347sJmMW5bwinw6LZB4yNbcRVM0Lom97ScYtu1UUd0xUdVYv8GD8CK6g27Cs+MtOtRbbiEO/2J81iBai1nPqTkUqFZOIiybsI4Nhks4/RxdqRd4tDZ9/4m+8g== 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=ZUz9VLGbbCcl76Ql68k5uszpG+R05bDcs1yCi586txI=; b=JEsA+Ed3pgmUGNnGKYWn/wugkb+QljiKW9jGp7AmR5/BmhXXR3AOz3H6jOGV3GoXT3GgAuhyy/MbsagGJ5SSK2Z4v1H0T9oIdttZeP69bOdGDioY44lf8rjdnQf/lQ1SbeKjtZzUdP/SDX9DITW1TRMG/DJll8WXhj1dpF1mo/gCH1tIHb/1Itslvr3d//IX1QBqL8pxxg+EDGvescexD1XeZUNL55lLk6qSfM2a+pU2WkTs6WwDT388gsdqDjLSfnM+V2WRuaIdQe90+g6tKPpB6dlYeOtkw90jq5wklotNQFBbh8k8MZAPb0sQvfhtRlQd88U0zyuoMuWL/2M8fw== Received: from ME3PR01MB5624.ausprd01.prod.outlook.com (2603:10c6:220:cd::12) by ME2PR01MB5460.ausprd01.prod.outlook.com (2603:10c6:220:d8::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.41; Sun, 26 Mar 2023 02:13:51 +0000 Received: from ME3PR01MB5624.ausprd01.prod.outlook.com ([fe80::da2b:3b3a:8ca1:b965]) by ME3PR01MB5624.ausprd01.prod.outlook.com ([fe80::da2b:3b3a:8ca1:b965%4]) with mapi id 15.20.6178.041; Sun, 26 Mar 2023 02:13:51 +0000 Message-ID: Date: Sun, 26 Mar 2023 10:13:43 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 From: Wang Chuan To: ffmpeg-devel@ffmpeg.org Content-Language: en-US X-TMN: [YVeBX0af8GbEb4PlzZxYIGb+fzLJEjbY] X-ClientProxiedBy: SG2PR02CA0114.apcprd02.prod.outlook.com (2603:1096:4:92::30) To ME3PR01MB5624.ausprd01.prod.outlook.com (2603:10c6:220:cd::12) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: ME3PR01MB5624:EE_|ME2PR01MB5460:EE_ X-MS-Office365-Filtering-Correlation-Id: ec0d2841-8163-4bca-e8df-08db2d9fbd12 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MiXh+VAJ4ptGGx/xTL3TStJNo9YyiJDvxGqXG0zwaPcmRZpEmJ+PTJXrtky5FZm0bF+m4J71L7t7Aj/9yL9piNNMhvmLaw5z9MBekHoXRfBGx3guN6fRBKxU7HdVec/Lv1tlbAMK0XSYOYQAt5vh9FwX3dx2PRu4JUsnil6A1d8zbqnOIsYPf2UpRdMWpWSB9BaCfGO//XjvSlsrju4e1muIXa0xK9UJD09GoGz7pUNDPB44BDnRYz6qp5BBRB1FbwzA4OduhNvdv1zf49yNQ0PYRmn7qwvWRP4MOALkYYhfH2ImmeGL5FSfn6aRGFhC6r1U4FGXPekIC97XVfvpPP00aIVP+TL5CtrYEQ9hqGdebJiu5r/k6eMLQSe1CY/vVaXx24aaopDry2t1U9huWsi9qBS6OA5K86gLWBa8fH9Uqps7UEiUMczjNO05UYxhHHlebAuvot3/mrssWzJqUXs9vMS3VHYyJ3FnV9d9KaupvhqnM7XvaugPKZBPb6aYXAEkYEiVVqLK2n9HaVGDNVHiKYEfTqXwT0XkKhIHm7CGbk2tgGoHhFv5BXB1PzPl X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?/gqDmkC4xiZNWwS3Oz2unPTrZoeA?= =?utf-8?q?zu1sXlYstYJ99w4o81AoiTPX6vkCrUwd5wZaUrQFruzmBrtv4yk2Sb4Ylo6DzB+7S?= =?utf-8?q?pWSwtexjjO4p9NpXduqscsqTcoegZ8D2GKOA40XDxmibcYoyv8b1HkgHKeMPSyWuk?= =?utf-8?q?xYt0ByqsQCjN4LL74a7hrTZVx1WvkF/+Xr4cC63D0VdPrOCJWW1EbM+KkrOPymHsv?= =?utf-8?q?dkXsvD9KBrYVDpURiOnUtkIi2rK0C/YnB1pbzK8dS32YNNVch6Y4F9ZloapHKUgrz?= =?utf-8?q?K0pFycZW5sR+YIx7FxT0DgXrMV852NWO2ZIvwFMAkUxMR4FCBCOoUiozrKlCftn4L?= =?utf-8?q?qXqQnniNajKqwV4hqKx8PkMhbwFvLCBZuhnlG38N//XO67GsHOaj4MXRv+JorPTIw?= =?utf-8?q?yFfdIntElp+wbCytscpiAkUwgszmmSlMJzqXV3zVtIAHGB53ayaSQdSpIHtuS9IWN?= =?utf-8?q?qScmikCfZJS2tcwHsQVa8a0w9zYsVVwwVxx6hLWkSLDJEzxIdHHLffrW0lWd0obSR?= =?utf-8?q?bSSa8KFDdf8dRCywU2sKYBcXPR6Sb8NdNAIigVzIX10XElP8n863l5M9sDijbLAH4?= =?utf-8?q?nbBd9zYUEdX5lLe6l7+q+duxS47G5BAPlHCnGP0GfcoP3TOXexWAMn9K6SKrzdP0W?= =?utf-8?q?2qW2755xNRI2LhYiyZ9xbIDdQPUZFTeyWPSWPGHadB+qC+D7mcDTGOX0MQuczMWUM?= =?utf-8?q?0JzgGyK49VqWF8pO6zhQ64FJ7YJ4ExDrxO6VQwRvWTN4Pkzq50jzM8YNuG/8nZGlh?= =?utf-8?q?J9zkTe3L09kKRR5/IitRgMLQibnO/5j3etZLMbgtkJQWZilk9xAtNgWiMolHaxAmz?= =?utf-8?q?WIFqUBZV6Q1W1hxb5jLxVrISHtcHTZ2iWkMfNUu8uD4QGqCI9uly+2pZoEUcSwSS/?= =?utf-8?q?yI/EcRr6/CxYoMvcFCdr6LcdBrOkkdfWhPyEFokBnkc1E08SU+dVxeuLSyCfBeWm9?= =?utf-8?q?6t5qorgO0vHSyp/RznVLCscGcdTdzF76XYIY2k4jMTW4Ut7xuVDWPwcZPRIQJGVas?= =?utf-8?q?JLHgscSIFBlb1gi0RCVvQMy/GiwgKwKKK/dL2Az8RyoBgqRziyoOM/QTHDnORO+w/?= =?utf-8?q?69bHEMnL1L3ulMZd43hZsSH94FdX3waFwV1tsJxoP6V8UKjKolHvQW7lyuCAyShXr?= =?utf-8?q?/0hm9aQOPXZq/s4Vd2Tv+jAWMGo6enbu5jVq2VKg=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ec0d2841-8163-4bca-e8df-08db2d9fbd12 X-MS-Exchange-CrossTenant-AuthSource: ME3PR01MB5624.ausprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2023 02:13:51.1843 (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: ME2PR01MB5460 Subject: [FFmpeg-devel] [PATCH] avcodec/mjpegdec: add support for decoding jpeg rgb file with subsampling 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 7YaJn4f4vyla Fixes ticket #10190 Signed-off-by: Wang Chuan --- libavcodec/mjpegdec.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) AVCOL_RANGE_JPEG; break; case 0x11000000: diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c index c833d66c4d..aa58f336d4 100644 --- a/libavcodec/mjpegdec.c +++ b/libavcodec/mjpegdec.c @@ -574,6 +574,27 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s) if (s->bits <= 8) s->avctx->pix_fmt = s->cs_itu601 ? AV_PIX_FMT_YUV444P : AV_PIX_FMT_YUVJ444P; else goto unk_pixfmt; + if (s->component_id[0] == 'R' && s->component_id[1] == 'G' && s->component_id[2] == 'B') { + if (s->bits <= 8) + s->avctx->pix_fmt = AV_PIX_FMT_GBRP; + else + goto unk_pixfmt; + if (pix_fmt_id == 0x22221100) { + s->upscale_h[0] = s->upscale_v[0] = 0; + s->upscale_h[1] = s->upscale_v[1] = 1; + s->upscale_h[2] = s->upscale_v[2] = 0; + } else if (pix_fmt_id == 0x22112200) { + s->upscale_h[0] = s->upscale_v[0] = 1; + s->upscale_h[1] = s->upscale_v[1] = 0; + s->upscale_h[2] = s->upscale_v[2] = 0; + } else if (pix_fmt_id == 0x11222200) { + s->upscale_h[0] = s->upscale_v[0] = 0; + s->upscale_h[1] = s->upscale_v[1] = 0; + s->upscale_h[2] = s->upscale_v[2] = 1; + } else { + goto unk_pixfmt; + } + } s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG :