From patchwork Sat Apr 6 10:23:49 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47871 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp1455803pzd; Sat, 6 Apr 2024 03:24:12 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCX2MF3Fw/2genSC9AiA5Q5ixXA/5YvU1THZRLEVrPeIxpt9EYZbVjsb8fpBS4sv7LGyWLeWEXqoILT4hkwUniXGS3J763BO7zsVzg== X-Google-Smtp-Source: AGHT+IE63nVNo/3VURiYSnh/HEAqNw7SFmkj8psmmrKBWyqjuegWH7jL3r4NLdOXVerjn6ZYZ9r3 X-Received: by 2002:a05:6512:3119:b0:516:d0c2:755 with SMTP id n25-20020a056512311900b00516d0c20755mr2425316lfb.63.1712399052596; Sat, 06 Apr 2024 03:24:12 -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 g24-20020a1709061c9800b00a51bc6984f8si488453ejh.733.2024.04.06.03.24.11; Sat, 06 Apr 2024 03:24:12 -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=huKJu6Eu; 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 5460B68D08B; Sat, 6 Apr 2024 13:24:08 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2055.outbound.protection.outlook.com [40.92.89.55]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7CA4B68C0CB for ; Sat, 6 Apr 2024 13:24:01 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=V07Zs9iYeQpbRtGylJAu/2PVySH6gSCAOyDjnMXX3eaLrXTuGabW+LeHcG7dBoJLWHljRkhTZKRePM0HuVmWGSkvHxGQ4hYn8CitCGLG7xrc1AEN4zquO9Cf7NnqhiAl923q1sX+tEqVz47XoQpcaiGMnevdAc/pivoNnLYX8fF9nJln7Ks+4zfBy8YDCSS8Rg+WgMZ8oPmm8++H16gkCSw1/y1mSHFV3mEYjVoi6PLxPK8mqDu8QzR05J1W7TFZgPBPMDvQSyNhwBvn1DhCEIlijto7jJUyS23Poe13PmVO9QhsXh41mZsZPHiqw+kHcoodyTbHkUiJ9QFwqcRQMA== 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=RwPPsMlb5+ElIxqsiPPdLv7sWpw1/UPduyyps972GTo=; b=bMJKZsBxD8PExhyJjqLgPfFjzhIZuYQUa9UfBij8UxqOVpZFhtYS2lj1SZXkr9Y5WLjbRwSLdcYRR9B3FaSY1f4LSgh0W3HeK7vxloa5qF+2LCXeawv4bBInpR9pV0uX0sl8kzUjWtGjhA9/y60RMCmOLI9eBgfgx+W2PZg1EECQRMXz9uImC8XrY8GGFfadNRorymCsKcTyXnzPghBdadMjTmDEDoC9WZsbM1c9fyNXQILaLs7qttMCW5/r1y3YBcBPzwOoykb/gIXhbXYig4s+VhZgnJ26RPWvXXGTWrNmLkTf4VlQ3r6rfqTbZoX3oLwwk4vuwNtH1sA2yzhMGg== 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=RwPPsMlb5+ElIxqsiPPdLv7sWpw1/UPduyyps972GTo=; b=huKJu6EuHmQO1+oPd4dvviJzEaK+OeZ44vWdxmkU3xjFrcLMzGXtoA+JgxN7ZAwS0EZ/6bpfkHRHXTLcV96XvUkyRbdgLEnB02o/CB3O7DfkZ4qyf+QmC5mdjCzT25eYDe9ZJXlcZePiz95X1+G5XARP8l8lY+IeZl0eEWvRyUzNcg7kuJJxwhk7aF1K2lA9HW/ZFktzitRREAxo0fdDUK6Hyfcg694N+5pHhdrD5r3MImwmtKGK1cejgDkvPLHjadiNNy1tAoOwt5qgWnVdL72cJTGbsJYUPdT4cHwtpvZ9MZUaWm3l9yANwUHXiyH3LOfQPQD81JAgHO2sf4rFKg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0346.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:37d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Sat, 6 Apr 2024 10:23:59 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Sat, 6 Apr 2024 10:23:59 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 6 Apr 2024 12:23:49 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 X-TMN: [uzCnHYhJV4kOZ+9ytlHlOe6s+42U9g0mYg/tW8U6+Vc=] X-ClientProxiedBy: ZRAP278CA0005.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:10::15) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240406102350.4153985-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0346:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ef70620-53dc-4a85-f26a-08dc5623ac45 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: swkL1HUQcmujkqpItwjDVe9BNjTV8jfL3A/49UdihcdPTGcewVISv4iM280XDD19UxmDci/CkqEbClCGTfSG2BVJeUkYbNrV5sKMbxvqtLShXwpNgUxiECebYqtZZo61PDsJuegggBCiIXdrQ7U2dKxzRtfNG92zjrTkU8Ij+AyTYTQYcNJAr5xFiM8vg+fhM8uJddbend2NzRX7O3KDcmJpaC9LoOrpIxvLJ+M7FUW/zQyrPVwFs0lv7cW6rvOlppG1oB0iKREWJC0WrvcTfVq7tG+cHWCLZciLNzoiynpb6RXt3JYKOAuEnd9iJ7EGdVCAnJxCAlMszvemqC+xsUUGZmdX930EpV2BLTA1BAygx9OIdpk4J2JgPovIEljS/U8amngb3iVCbugbmbikJR2cm7oaRwt75XmLVwFOjAHsKAy+Q8hSV/iVQ2jc26gZt5xzhCLsvCdHReUPqp2xsVS8ljbDRLbV5N3E8m9c6uBpZ8pr7t1EhKeCwOOhDGhSxhwD1t1Spt8DeEOgspZ6nrhqYKqHlcAfXrhOsdwMldix9VASy9bqgecHX4ZhHiUUKrTVFhpCwTMV8z9OF5+X4mjkhVcxkQ2xmSmfWG1I9hkYiGyUED0o1Sz1HOvOVS0D X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: gUs8xj3VFTOMmz8h2DBhCua2G5KXnTS78TdgunrMbWs0KN0468aWUdqccPpJPTBri4OiYTnZO/vTomvymDOjzqN13mprSq40d3mE4vMSz5VR1zfPL7k7/K1GScSgrfdn72fVP8mhdjzK+HUeDM+glkwx5rQdUlo0Di5E3bIjvSgGnroZtAJbzj4MYUXDZm7Cbklv1+u/OCK55KioyxCfln0mNdyr/M4ya1v32HydBBUX4VZ1rYjL7Fi1imRkiwy6n1SyKJBAsdwYos9GS4fLotXL2dd9mzJLlt9DpNA/INB9FebfYZWqDyb/r3b6f/97WCh1FXgoAlzr0Y/Qfq+/lRtOuyMCld/GQejFBIK9gDe7pO9R62Tcrey87fo0jNdfYvD23KZgJMQPXs+Ss4m5ksfGqvlUR3zBxprKzv8i7bqC6kFgf0CsTuVBxZBraEOc/o6IDkOJtTrUeY15KGk0MVkV96osikdiK118qlmJzMkpgK/oxDz6qrEZouS6itM7JjV2/c4woKc4vJ5ViiO/LlGbR4sOLOk8+b7LFcUvqgrXViOrAIlwX/8U7l+lrCE6h/8NCbI1u0BirTYA3sp601mKzCkC9YK+u3kh1r/Ls9E7kepEokMKYq+yLVu/jZ+mE6r9sXSjJIPXmhvvhNoI8loMPKmQaQ1KBeEJWq3W/7fE3rVyxXVPdGtqGNZqjOvF1fNYnEE7CwNAEjEyfet7lx6t1cdnV/uars2ENw/oUGZ32RoqQVSXjZjpbcGtdenqdVID3SC1paH8+VJC28ZBU+sJJo6KOZlWSFWPVeHZJP0+w/5kPshmcPaKGuwOSJ7hwoq7lI9O9KW32XNbj1eVlmpiazKWascx0G96CIrsgkOMVzivEKMLQtJ9uo/7FF/4fnRA8AiK5shSBCKZcT48nu30lDJkWpZXLfRAUeRxHAb8KjuFHlnrPJ314/PROUIVoS4996FnTImMNe5l+U1rHa/nTg9UI7ws9EaRp+Ss/k62t1/7yJ5LqUnSaCK3WIZTqoeoy0jMFteZtgc2Poj5znyDZArdBW1PXOl+O+WTM+BCRzjHv2nvQ1Y5vjzoUt3YhTBmZmWaqDhKIQsGDUFM6dnzI7rSQuqVN7X/tnGnqKIw622xLfH66Zu/JgDzepWMN1yQWDxOc4h3OKWrUOgf0mmnHMj3bU86/XQB8sWdD4FqLW8j3Qj95FdVSKESA7dnrufDGBnysG4qOP8crwFTWFtDFS9pLUxTbCQ0Sdd/KBJ1eSbefy2jklGo1fPsmpW56exeOqDv434SrAu7k/ahmQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3ef70620-53dc-4a85-f26a-08dc5623ac45 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Apr 2024 10:23:59.5814 (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: AS8P250MB0346 Subject: [FFmpeg-devel] [PATCH 1/2] avcodec/mpegvideo_enc: Reject input incompatible with chroma 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: aANyQP2BE+HS Fixes ticket #10952. Discovered by: Zeng Yunxiang Signed-off-by: Andreas Rheinhardt --- I am pretty sure that a lot of other encoders don't handle this well either. Maybe we should handle this more generically in ff_encode_preinit? libavcodec/mpegvideo_enc.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index d1b1917824..a65ecc6839 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -314,6 +314,7 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx) AVCPBProperties *cpb_props; int i, ret; int mb_array_size, mv_table_size; + int chroma_h_subsampling = 1, chroma_v_subsampling = 1; mpv_encode_defaults(s); @@ -325,14 +326,25 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx) case AV_PIX_FMT_YUVJ422P: case AV_PIX_FMT_YUV422P: s->chroma_format = CHROMA_422; + chroma_h_subsampling = 2; break; case AV_PIX_FMT_YUVJ420P: case AV_PIX_FMT_YUV420P: default: s->chroma_format = CHROMA_420; + chroma_h_subsampling = 2; + chroma_v_subsampling = 2; break; } + if (avctx->width & (chroma_h_subsampling - 1) || + avctx->height & (chroma_v_subsampling - 1)) { + av_log(avctx, AV_LOG_ERROR, + "Dimensions %dx%d incompatible with chroma subsampling.\n", + avctx->width, avctx->height); + return AVERROR(EINVAL); + } + avctx->bits_per_raw_sample = av_clip(avctx->bits_per_raw_sample, 0, 8); s->bit_rate = avctx->bit_rate;