From patchwork Sun Jan 30 06:08:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 33901 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2c4e:0:0:0:0 with SMTP id x14csp1761580iov; Sat, 29 Jan 2022 22:09:36 -0800 (PST) X-Google-Smtp-Source: ABdhPJz5VzohTpw0ozr1IHnsl2djq04cka/tAqup/WWau3K80Qx/Qgh6wFMBiyiZBNVdxiyJol7e X-Received: by 2002:a17:907:7e9f:: with SMTP id qb31mr12730479ejc.468.1643522976487; Sat, 29 Jan 2022 22:09:36 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id j9si5356828ejo.920.2022.01.29.22.09.35; Sat, 29 Jan 2022 22:09:36 -0800 (PST) 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=IuMR3lpG; 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 2D72868AE64; Sun, 30 Jan 2022 08:09:32 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-oln040092070058.outbound.protection.outlook.com [40.92.70.58]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D521468AD28 for ; Sun, 30 Jan 2022 08:09:25 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oTCT4RY3y8ZiXSQ8IY0gA7n/LorTSdHvDixs0WvXNgYPhbjB730+XEP3LO5tfB/u0UJLj8dwDZTuk5j1FA/kx3SbbINNtEtEZoAdnFxABdo/FfjYdn/IJL0qiDCV9pPOvwB6OEJ+EejggoL/0/O1wm8D0vtx3+03szqWL82m6fUP2kDwy/6dzJtfbi/tjurXjmM4iIh20HMonQbOOwAAtujsFtlf7O1X2NeVlWlWgc6GqToarTr3yujcXdU29KbrCbjHrSOYSQt9tKSlSs+v09D79X7Kl2/AFg547SF7+QFvjBvk/pWUK9zc4E2+JEKEXQQ+K5Fupb2KVxHlaQsjSQ== 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=oiHuhLnojEMWE8uij5W/D+xipkCqbNbr8/gjls1O1js=; b=brIy+FPHTH9e3YiaTl/SnDeSVJZRXC7wodMHhqkw5GqM+Fo+e0Osm9YY6QVbByJg3i43OzOiitzeGCC/fhTzCmH4wiC4GZ/idnnmyQ0BQNiZ0IYZv2mBDzlWcMnFjj48MmPLavS4zkp1QubHDaKwtq5/GmFKZ1QVfZmUxgk5Gc932UXA97IoaWZp/dyq38KgysZflgjLuvGvmJiyDqdB5r2pNh3ahS+7OH7YFnjBZJYQoEiFwbzL1LzWGkIDBv7ZX8VdoYN8h0P1hEBRIqWu/VaojkC4TSkN1Aa3DGWXx/d2aP0klIO+IS5ZkqMjSTxkLQ99j0gp0awCvyC3/hvTtw== 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=oiHuhLnojEMWE8uij5W/D+xipkCqbNbr8/gjls1O1js=; b=IuMR3lpGe9hQNArE0z5ScMLWrULktMuMmG0FPgPt7tC3E+1Vypfh4GisGNGPBrsU31ZflBzkVO8UhZifFEvFzG9QnNXLBQW7N6PIDtTUH/RLaJCVeYjn3dNB/S5AYzQJDz6iFZGQuOszgmkv6yDup8qVN/wfPRw/yIfGERI0asj9HdMocjyCRVzSirYcsEq7l+1n1OQLVuSbg15a240slnnLVl7a6BAb3YH+RW36q+I9TY7MVJPlwySybJCYffo4nkN2GFlDAQQt48v6FFIot0i/iIj+uIVY0T3iIMqKZlR7mZDbw0AjX7Edy2Z992v/PQQBTKIz6yf2V3ghEIIAKg== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM5PR0301MB2561.eurprd03.prod.outlook.com (2603:10a6:203:8::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4930.21; Sun, 30 Jan 2022 06:09:24 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ac56:2ff4:d304:ab22]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ac56:2ff4:d304:ab22%6]) with mapi id 15.20.4930.021; Sun, 30 Jan 2022 06:09:24 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 30 Jan 2022 07:08:30 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 X-TMN: [W1OWcoJgyqhy+ck5faWCWdSlA2uSBMN0] X-ClientProxiedBy: AM6P194CA0006.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:90::19) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220130060910.936306-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a0dda69a-4dcc-4daf-6c24-08d9e3b71006 X-MS-TrafficTypeDiagnostic: AM5PR0301MB2561:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kexezPAg/SvPIPBeOGvS6nU1CTlAWtxaM8mtyWFfTpUMOUPRYVyd1MFNd+ed/Ygwf8UI4CO1QywRKhmpHSryNlsIwU8XmRiEfqgW6fhSntToQ556I8K7+zw0CgxUNmSuHvthVsph11iszGI1O0SF0BUHTLT32pTjbrQx08tGN+0w74bJ7QimupVanFRHBwSsmROwo54hJuyJfWKkFx7p1iB94u8+MqzeN9mSUxjtigsHnsv1EdFyJpBNrIFp8LA3W0LKLBhJlkUb0RtyowBaKujovmwRxx6ozfSzFhaDYTsdVuNYK1QRNxOsVXAxUH1aHlhZFxyMIcxd39PNbQkEmZL9pWSWTztmtCoy4JzLh7tOL8o/wLEG5smpcSvSumsy+gjwxGNn+ZUw4/FiMOkKH/Lm3AEXwvrUhOa62A1o+f5YJFE2W/bQAI4M2vDFuC7qCyLGS79baNafbRZCRGeleuey+hPnr9GUCs/B9uUpXFpN7m1YOZmIIyKtxv4DXJplZjcGuhS7oArhCIQp5zIQbKDmAl0JA2mUXaG0WkT7Hic3n9CefgE0a2bT33LXBl62 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: DWHacQXrXwsa0MPExEBMu52sRQm1mkkQrlO6u3kWP0l9c3LOvAbAxvtHRzevSeasN1egM6u8yB+3Kc+rj/soQiy9pEQjVdXkyjrFWUl1ZbXrjmPQPoleeld71bhQBSd1GW1DUfZGwykHg0LoOW3fS/EhtISRCEapjwWJ6qYZ2STGBfLK3Ct7/shw246mSBsDV1RfFmm3IXDKmb/oWUIwkhaow+NgyvTPh8OLQ4f35zMWzaeLceUpe8z31gMMfzF6asUSCKIqdnLz1jjtqj8RWo3UgBkVVGAvvbddMiqvzsVper4qUuCSVPedvlZwNzznQ7NSbxOeVGkJxxAPrUjeTDah8YpZd2EZVv+0CzV1cbMcTdqE4P4ljCQT7+cBLDzpb8sN+BqkyinXclbvL/u+5Lq0qqpJIIzodUA5UmkDP6Fh9OUqL3ULtfeFxOqQjUx+AEw0QAOMldw2hPLj5acW/x0BMfN+8Vdvaw9IoyL4zZA3U6zX5tfeUM9qQJd1DotPnstqvL0+A8N0JozRI/B8VZOz1YOTNrFaxjo0q1aAGSPIgegAsu50t/Y0aCWAE7ho6tQODPw4nz0VgyUn5adJrW6I1KK7+KZUbFawIO5P7pTnYemmkmLhS5InY84LJrdq+YADlS6v/q0i3ECkV6YJYPvNHsQuvUn54VBhSpNoKkvqkZkHKBmpppZ7If6FBl7rvw7W06RHnSSAadnbE0H+0XHw5qxaSu3cfW0RTP/yrzvKcnXSw3lfpLj/QWw2wgsEj2YfxkqlNAZqiaEmtQ/Ok1qlGUscYbr/me7Z2+Gh8VfS+AX1yFIDAENw7FHa6LfzXmSL5nEP+Lu2vVVsKM8V8t/nM5K1VD2v87tgtdSZ97n0WLFmMllcosBuL5JzSkWwyd9K1k6fPPr2UWvfyNtE21SmLj+chjIc5GfLPWIEfXDqL1jaL7PyAsPT1CWMIFHdczsDgYTDBdaRS4Q981pSBQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a0dda69a-4dcc-4daf-6c24-08d9e3b71006 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2022 06:09:23.8587 (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: AM5PR0301MB2561 Subject: [FFmpeg-devel] [PATCH 01/41] avcodec/mpegvideo_enc: Allow slices only for slice-thread-able codecs 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: J03JyNbAfLPz One can use slices without slice-threading. The results for mpegvideo-encoders are abysmal: AMV, SpeedHQ, H.263, RV10, RV20, MSMPEG4v2, MSMPEG4v3 and WMV1 produce broken files. WMV2 meanwhile expects the MpegEncContext given to ff_wmv2_encode_mb() to be at the beginning of a Wmv2Context (a structure that this encoder shares with the WMV2 decoder), yet this is only true for the main context and not for the slice contexts, leading to segfaults. SpeedHQ additionally triggers an av_assert2, because it is not byte-aligned at a position where it ought to be byte-aligned. Given that no codec not supporting slice threading works this commit disallows using slices unless the encoder supports slice threading. Signed-off-by: Andreas Rheinhardt --- libavcodec/mpegvideo_enc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index 33f2937217..6df2a46eaa 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -599,7 +599,7 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx) } if (avctx->slices > 1 && - (avctx->codec_id == AV_CODEC_ID_FLV1 || avctx->codec_id == AV_CODEC_ID_H261)) { + !(avctx->codec->capabilities & AV_CODEC_CAP_SLICE_THREADS)) { av_log(avctx, AV_LOG_ERROR, "Multiple slices are not supported by this codec\n"); return AVERROR(EINVAL); }