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; From patchwork Sat Apr 6 10:25:32 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47872 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp1456367pzd; Sat, 6 Apr 2024 03:25:52 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCViwDzauTrWaOktaceSHXpOhq+0MEq3wStp9+YWbpVpfKqKylPWO9UyW/mVj6gJKOuJKfZC03xzT8GdIVt34DpH9AQGB/2mJj/MJQ== X-Google-Smtp-Source: AGHT+IEtEWdH1nqrkyy1eOcuRV0nBFwr+ibRLzAa3wnqbCtcTyMwGXcGgrqS94Yw0tDRJ6ttWOTu X-Received: by 2002:a17:907:75d7:b0:a4d:f5e0:6157 with SMTP id jl23-20020a17090775d700b00a4df5e06157mr2490292ejc.7.1712399152060; Sat, 06 Apr 2024 03:25:52 -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 di13-20020a170906730d00b00a4e0cdc0e1fsi1642205ejc.142.2024.04.06.03.25.51; Sat, 06 Apr 2024 03:25:52 -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=mTUXwEXU; 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 9C33268D01E; Sat, 6 Apr 2024 13:25:49 +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-db8eur05olkn2092.outbound.protection.outlook.com [40.92.89.92]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9EC9F68D01E for ; Sat, 6 Apr 2024 13:25:43 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YmR8jQO+GV5W32iFxSvoxrTLq2wnvyERUtF0OnHg+ah2/jTs/7zJbqJRwwvqMVpMaoNY6wBVw/rv5onZn1x2gqoVOBtC3hz9CIC0U1gxaMOplpFxuDonsksNjcO2mIE2UkoVARTTzDFyhCqbSwV1JieOISaWAAQq6nfNtPC+zzf7ui1tsDabh/ORZ9BCYsQiyny5cZulKFYjHA3IERn7QzEVFhECWV9SSxpjPvaNHAGlCjMALAQqlyzdEMvYeVfL+FZlmmJ7b6jxL5Bw7lHNZyCV1g6WPgPlYLxHLq6TCRjYklUIIeucPxRVJiwPwjEPpGqgPySWEMW+AtJDkL1h8Q== 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=3PBEN5VwLWcb4PsbR5ftUvRljLDjkt+/Nm/pA5cff7Q=; b=klUOuDnO0u2m5dNTwzKLymgmF50Jb7Ba8oeK4FRPXiOu3lTkDqucz1Ur9cIHVRcJR4mWp4M/516CaEK563YQFP+6v3c+cbOkiAS7CHV4Lk7LJazG/qFLdCx4GYqVgduU+J+IiKrx5nZAnxobYfwr1bT5X3IQ3qFzkkpjE6qZwu7YuNgtjaNTt4GtH1SsTyOOnYgdyTDCud3lNb0YbOosl6YJ4qpRosq8eblcOUBt+Esv6aGDDBEdGGBlRZvqf7MK4ln7kDCuDuOnRsOMrV2axb54zEuqwrElixarJ/OXhYJz5FuJdHVn/qvCPC5FCWULg36Gc7AVHGAiVWTEiE7Ikw== 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=3PBEN5VwLWcb4PsbR5ftUvRljLDjkt+/Nm/pA5cff7Q=; b=mTUXwEXUV3SWBVIal10Lgm/llGuqh+8YTndA8JAQbjkmiUoMssw+QwxMcSWcBUlQCqDnvDNpsSq1J2a73a7/UKnJuxP2WDNt1xKGQ4+qd69uVWUR/5lvL3dK5b817c9O9ufGvmkX+NJPhqJ3liVYKFrlHTJgE01QkTVA8Gf7Mj0k6zGCVeCTwHddZX2f6JxSHNOESboHuO4NKmw347oGPi19izPmFrp1bmusCRJwLe5r2u5+oW8VH1ZV5wEukhFvXtgXk55Tiviw2lbKC1y33oOLZac+Ydyv/z/WugNUi4E/FOh8wIFK+vg0yJfWAAIfNA96W2lrk3CXtnWOz2dXUg== 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:25:42 +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:25:40 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 6 Apr 2024 12:25:32 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [U9ay6m7bgOf3ZO1Hnb41g7j2/mQpdS+V8/ClXY3Y6+Q=] X-ClientProxiedBy: ZR0P278CA0034.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1c::21) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240406102532.58560-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: c75018e6-ea0d-4ec9-f825-08dc5623e855 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9rxaSjBvGjWB5FG7BrLMHTY2Mho0IbuvaRL8waNtT4rQ4bXSCmVClnWhr8gbicczxeSozfP8mz7/Lduli4w/8tR/2CU90pCkIo0KyTBGpiW7YWyWf91LofJdaREl8NUHng26a5LRw83ysBQwkHQ5p3aRmuqR07EQXDdzTwqjvHUMyiQUXZL+/NeLj5tZFZKZtyxZFfGP6fmFS0iF62PFoWww+oXngTNtV1p1+pMYnhvONNEFvhwEJxvQ0fYMZWVF7C+28pqUH+jbwzVaepD5mRJkY9HTlhsx6+YfT0d/IsHtaDWE9FU9urDK8hmIzA1CgZurrq8xK/5/O9UuZYh0k498a08uXokGKs72OudqLhixtRPEqECow4lOLaYoBC51f9jUVlAuQAKFTINP50DNYf4ePzR4+JvnqzGPy8b4WXHOVpM610Vt0DWBIX9IeHPkDdMOrxCbDWkdwAAT+2uSa7pCFmjyGizy3xeDByrlW8V0xGwl7F/Ky76sgb0fOdZSqibP8BKnVMq0Tr0PikYUS5AadYSKyrl1UOYUntQW5+6GmumWNdOY8Ll3AQkLQbTwiE34SzsB8/gAMvI6sNjW9YxAOx0Uef+gpKWVZGD7eAJRRvSZxUBNwfrFNG6hjji3 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: HX+CMvVaQwdKoxOJHIRt1K1B9H+e+9yK0mc2/SyCnJGGsOFvMmsT2iSuebD14VIJuKFbvO6CRaAuwoNGQHMvpfmVCJzwiT8dPJEUKWX5+chkqxJCQONKSgjKHMIexkTp+4JBvbrRI6gwf7xB4rv3+JT/Fuj0tl1Zd914Z1iV3JpJ2Ogo/U0Nph3lmmBydDTtEUMAizUDzBEPwaAq1qpWmK546QIFCBC6pd+245/f+OYzyYt2VHsOwGSspaKGQ+52HHARveBNhBMa8GGgkZw9DhJvVxR/N0NjZoHIah3hUXfK5WsR08v1HI+tNzzylyXofdiuJMNKf87gGzUL5D8WjDvMOCdOm4piDeccNFw8psuGPh8e2Pf7uO0lhfaopqTqHC1gEwhW4NSbGbg3LszQ+u06vcIa2knxZru534hezaT2QR+6uvVCgOCNiRKReL6n3AA7GlYZYmpF4lOr51jX7PeSUVNw4X+OPG2b3FAaTb3YunPj+QZ9x01wqREim+ACVMujyLamKw/Xj5y7A74VJ5mlSAhZfb1oCclmh5ugS4QElnRIMI9F19NPAdCfnJgxspbkbsNMU5DVp8/Kq3jszuTZIf/DE9GTWO7jAreiW1I52ud/v5NPjpZH80mmZtNabNy38H5Naj6wI7IW7JUIQpOieSLSETeVTzprQa317CIttGrgCX/accV3kp1t57onI8/DW7TKhcl+YRLCXMLcKaGM/zACs5C1Caj9QaFqKUHsZcNJ0Teww3BzM5yz2lN4VvPQmd5k9VTab0wqcmAWo+pXJv7h3u/AyqTk0Vp5ZsUpItRk5GpmUOXV6AH76yIwyiWm2eadvBvTW3mrl8Xaa5kINt8aUNHpoWIDRqdyPWpJEIQ1rdgK+JdOhgFQ77o6PoKAqwgcLasgRcdW5FYLpaq3QN/K7eVgtH0DCEZ133fQ1wUq+m40z6JBEOniAzWgyfuTkpzZIJJZnX0adoePVFyTUJ9/0e9WvqrclLbiUEnAu8e7MmdxqIXwhFHKiV2NVjwyodXtfKHQnqqWycyk6iGqVALb3wmrOV+qbhkXs8MB69eMUpHwgc9Qsj4VIrAzrHVWQkkgGUYsaSemqHEiQFQIPbkirQiSEJmJiKBxDrZG09uVMUXGJovlXBeJXvmhYCzgsy3LTe5b3RAF9qMV0iwwT+PfKzbnM7FoWHoSaVJJmXyF+KXxmwrNl24OYsmx/7YvcE9d/CqArbj6kMCNn6CRJc7shLnFMo8SdLKdYavryUIeRpNKCUPXj1s3mPyYHX6KnvIoEpOET7/4Se30Fw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c75018e6-ea0d-4ec9-f825-08dc5623e855 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:25:40.4162 (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 2/2] avcodec/mpegvideo_enc: Remove custom plane copying code 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: tST4OpL+68qD It caused errors (see e.g. a066b8a809fa6d8b31398d41787822803f8762f2) and would not support negative linesizes (this is currently impossible to trigger as avcodec_default_get_buffer2() (used internally by ff_encode_alloc_frame()) does not use negative linesizes at all). Signed-off-by: Andreas Rheinhardt --- libavcodec/mpegvideo_enc.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index a65ecc6839..f3e45c18d2 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -36,6 +36,7 @@ #include #include "libavutil/emms.h" +#include "libavutil/imgutils.h" #include "libavutil/internal.h" #include "libavutil/intmath.h" #include "libavutil/mathematics.h" @@ -1214,28 +1215,16 @@ static int load_input_picture(MpegEncContext *s, const AVFrame *pic_arg) int w = s->width >> h_shift; int h = s->height >> v_shift; const uint8_t *src = pic_arg->data[i]; - uint8_t *dst = pic->f->data[i]; + uint8_t *dst = pic->f->data[i] + !s->avctx->rc_buffer_size * INPLACE_OFFSET; int vpad = 16; + av_image_copy_plane(dst, dst_stride, src, src_stride, w, h); + if ( s->codec_id == AV_CODEC_ID_MPEG2VIDEO && !s->progressive_sequence && FFALIGN(s->height, 32) - s->height > 16) vpad = 32; - if (!s->avctx->rc_buffer_size) - dst += INPLACE_OFFSET; - - if (src_stride == dst_stride) - memcpy(dst, src, src_stride * h - src_stride + w); - else { - int h2 = h; - uint8_t *dst2 = dst; - while (h2--) { - memcpy(dst2, src, w); - dst2 += dst_stride; - src += src_stride; - } - } if ((s->width & 15) || (s->height & (vpad-1))) { s->mpvencdsp.draw_edges(dst, dst_stride, w, h,