From patchwork Mon Nov 21 00:24:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39362 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp1815599pzb; Sun, 20 Nov 2022 16:24:52 -0800 (PST) X-Google-Smtp-Source: AA0mqf6m4fCMtjbi4xns4rijlflrHywXG5O08dm7oT+QD81eX8oalQdjBYDxrduuQhyTlrqm+fLg X-Received: by 2002:a17:906:1748:b0:7b2:7fa8:3d84 with SMTP id d8-20020a170906174800b007b27fa83d84mr13071493eje.650.1668990292446; Sun, 20 Nov 2022 16:24:52 -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 j19-20020a170906831300b007ae9fc42919si6560668ejx.907.2022.11.20.16.24.51; Sun, 20 Nov 2022 16:24:52 -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=N8fNTmpS; 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 5CC8368B53C; Mon, 21 Nov 2022 02:24:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075065.outbound.protection.outlook.com [40.92.75.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8B89E68B53C for ; Mon, 21 Nov 2022 02:24:42 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ll+T8VZsf3FRhjafnl+lEEd+HXlNsHuVlK4A3P2ARKBUyKBEl+ApEYdIJP4/kEBnw3vStLA1E6zgsaPcAC6JsTE+jMFUDjV82VxyJjq5grWckJFQdTfiZC04VdKsG4ujY28TGBAgMPEWfU9I8SDnrctLEV82asck6HlOYw277SuKmxIK6O5IQyH7w/sXzIoKle9iuDKzcZcjhMRIu1pBqogvE4IFfkwS9JxErrCHlTeMeT6L8m6aYtFAXIS6SKditLfKSXBDd+iO9F4n/jsv+YYcq+JCcQKUGaKEjAplbdgcmYolYOyoHtMddxUgggFqHX6v4QbJsXerB26R7YIUJg== 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=99XPtl9yMnFi+Khp7+nAiynmsh4Km2x8rPmogJfv02U=; b=odkNc06qJkJdU/tw7Iuw/fxxTkhQNCeiLvO/O/A6R4t0dDXzAAEO+eOVr9vmQevYG6V2PCdPk19pN1HMNHNS85Ssqlrxcy7PJYQ3Kunt4ylEHybH+x/CGH0sOErlXTNcK68NLdnvj4N5I6nNtSfqDaz9lTo8kiFXzlmd94hWbP+RDMdXbGJy7iNjq4tow5irf1YTpzoGlpHRaAzWbYgEXXE07gXvM9r1h3xSQXsR1y6kNNtAPGAEhgFp+liYOfw76m85xcfoY30xvuXZ/+qM/xeQMJkt8U7wEzNqcU9yYN7e5F+Zo5ZX2HYpRl3QqMlBai+PMsEp/mPc2hfgbLsv6g== 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=99XPtl9yMnFi+Khp7+nAiynmsh4Km2x8rPmogJfv02U=; b=N8fNTmpSYNILBkECpaxXdd5VlTrEYUHtAaaSIfX+FsxkmsD0cfuQlraptEFeVO4Y6sj6k6LDvfJCcuQq2B6//nrrKpf27UKuUTlRD+/jKfOTHZM8jnhco8OdEQCn3qSFn40N81kYJ2oa+xCjxItErU0t6O68zE8m35b90mgSn09zgX6DhDghkX84vuUBiatG/joBQ+ZwUEjcvfWCFZ3++M1Hrb49nrX1dSu26NXCEwHDrCQaLv1sTY1of3CcY5qqrV1iazIIeamcqOmB781rGmNL2xOgSByk6ZiA/cJjUuR0202Ty5lJePRFd0B/TQ8AxX+qayt4MRpJNHtJEThJZA== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AM8P250MB0198.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:325::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.9; Mon, 21 Nov 2022 00:24:41 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::c37:cabe:316a:60b2]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::c37:cabe:316a:60b2%4]) with mapi id 15.20.5834.011; Mon, 21 Nov 2022 00:24:41 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 21 Nov 2022 01:24:46 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 X-TMN: [NsnSFdwFUSLEQZsv7lXt1i+MnF+VuPO5+pzsEhlS4pY=] X-ClientProxiedBy: FR0P281CA0102.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a9::18) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20221121002451.2127852-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AM8P250MB0198:EE_ X-MS-Office365-Filtering-Correlation-Id: f8ef50bd-fd3a-4459-a1fd-08dacb56c6ea X-MS-Exchange-SLBlob-MailProps: AZnQBsB9Xmo0aNP8rr9jcnEY1WaRr0IFEQ67+qYO8Gf4KeggOEjo2sLtOUjBpbOVPP0QoxKLHLdcf34rKr0iRw8wqCFWPi52kLwtILiEHYzk5alfSmTmT/EJkhpjlbIUYFV2MVjiamWOCSKJRoafeyREhvJNIYWattTp9E5yCbiEvZp+Mqvetb2Z7cm0gVZEzwyu4DjgpAYaIEEQH8gL5XHfkW/S0jVhvqHtiE4fHSMNNpHEwsuVucYRikmEW6sCIDW9cYMUTkgu1lr+fRrpeVdkEo6eA0SRdujhKAJk3dsFRr9W048zepvpmYMmKoVImp5n0IVIfjcQoBIac0wpifUHZ9eaMLs0P1v+X1fxlnKWmRA3OSZaGwLHUdrZ2FSKJRi2N80YTDlEfOAebA57F5H+j+AKwNX4Kx/PLgEuGDL6KDfcHc/0s0ojlksLx+XiERlveUyXWlO/ILsbfhpziSIeNdApw4DVZm0EC33YrMqmPmDEdEnKfKwdWkoaFns2buA+ZTeOgMoo4Gp/eUdviyTj1/JEspr0ycW9tc4aVuyxhJyphXxFechGXiMvNUjveH74+XyaCx5H3q4kIeDJFlYy1J+NYRpz1Gf/PMjhgTJMfcYQvfxYWzxGtbBRsKv+31EnCpOpj7MT5oxJI526o72u4LNVZHPnrKBxNuI3gbeprfIVivQMtK1ElyfD6fGMWPJpoRtqlsld05uWErUW8zpwmUuZwbh+Wt3HE3TGDBFWpHh4XHwPPKYEZfySQtt5bT8OCqUvg4I= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vQYrmht6ADoYe5E66AqlMXzwbZPgYXSqbJx4j2+P2llgmvPBBZoMDhNAN1xj4gZX7RlzcHEKQ365QdO77UvvTaDgZppyLkpSx9NugVZcr5P7g7fz6pX3UA0cXLZBjQfeSFJa80Nt++g05rBdsFtaLKpHI1a7WhJ71rU/vLzFjh5snm8iEbHyquSMeoPRFfQjJ/5u5owR1Ib5V9uLQsC+7ZMONXErnEmTsHeU+ZEGBuLrW/XRRCfmJqUpW9RsnB/EL0rVy/1c0nnbMnF3aZYfJW0IzXOWvMhaMhti0/LFFa1zA6jNxK2oA1uIheRmITyLi7sNy+w0G37KAeaIJUiLW7LpcFJIOflo+ZSt0eZbKSer+1abgwIlimDwF5Q8LOhqTq7tmGKOigd67qRV2zcKtk9KRznqp8h9ArKJ7Enmnaz02OL5XIFbGefuCvBfG2WTHZFJaTHa2pM90jI41qraBkmAFztEHqK5mMC4GgQcxUZAYf3CxXX6kU3jpxlWtEwe795BMTZ7CLoLkHBmWB1hj8oIIqwQlIIY/6NI2IyazybK7oKSjQ+I5BIDAbYhrIWh16gfEgEaSAiAwMXCy0/69fDe2rCmOVICc2SXSZ4qWx3IKEVyc8JQEF9tdcN2G5yuKK5eddXMmgt6c3qcWzg8rnN1DvMKaWeNlvlIKwpO3kE= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 5XJIju/OCvsTHhePXh63jbnHgTEY63S1XOsQVOY2Bpix/uw8VYxSGpD4PuDn3eNdjat/DwZs/g9wqYBbH6Zf+fX/k4d06JhXWKikrrfKsq0k4kqoFHpGF37CK+3P4/kiPlUCbF0IKohcDi3vIA19TR+4wBXpqXdzKIPEzvetlMPIg3Df0SQQ458HA80siILHqEDwbyLwCZZ/WqgoingvjwdDeVXEnmHWo7bmoc4zPGs8422ehBeZRCg95EeS1CthovpLBdvORX93XJubO5i9wt8WlbAe/bwC0oCm9vsItfGrUl4M//kB02TLihR0+DNvSrlQrWSNO44mKEC10AnvnocslwuztD96OUEssYa6/GzVMY656rtpx53sTOTbpxTcGP+j3w74bu44FwenPDJObu7e+kh6GD4yX7+2clyvVAKNrgAY/dH3fEuYCkKv0tsTEzwrW3VFIKi2H7XEgKzATKL7X3JCeNmPQxIwB+K5HplnTlIeOL+dwllG0bxpQs+iL3NuUoe2HgFETyAkwWv6I14L9s+RzKLnvrlVOchmYp7LpLeqVDCxLhadWsTNCv0Cg3HfgUqyzCS8WoxsSx0m4xZwwKTb5o/mx/6rO6ygFJMoLroG+0E2ny78IYYhZ9KoUMPsZgiZozr11RWBgM79ODIHwlE5RGHJMeIC1oacoGktAahURNjzkvV0gZPuvF6TI5lfQUELvwMUb8vdImkrxhbvPYG5zokp56LY7KXEl/W4jbTJmMMcmjjFa8CsYZoP1i0OV1jvbOlWvCeEeO9s64TwU/P6tY8xk5eCleqsOkVixCsc4K5NEN51kVEurE7OlDAc+ETBwfailyt5z3o9vPsY+vJP+0blrlPydm4dFZoiOfx4uC7v4orzhTx8RN1o9ltj1nmS4q2eXDdlUvjVTs+S3unCaEGN1uy+FX96Mcbad71hpKtrJbRykvOiHx3Z7r9zUhYAEcqU3X4DTSz3ufMJKaFFvbeR1MZX5oXLoRbL7xeKJSW3HBoD8emk2z9eNaxsRYxuRd1ppA5zon6YrZA9OYpM4uOzIO0Z50ZDfhTiHeWtZDbmwjz4C5DFr8EasYHRIq/VwjPTUmIrPWxl1PKasBf5J+TsnmhULpaH1tqJJyVs3y6r59qpfrXARZDJyE23mzAXr5SEXxRGRFvYNobUTW2HJFq4hKKWJfquHJbmwa2TWk8btD2w2M4x64RLZGH5W3pn/sk5FbcrfMIDiAzoIqq11lFAlbmvfAL6FAhiIWddPRZ9IBn2iqxQt8+RUptbMpo/M3niexlykdt52ZE4mR0JL74AxVhaSr/j+KnkWlvZjlUMeuyoHr6YuJtS X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f8ef50bd-fd3a-4459-a1fd-08dacb56c6ea X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2022 00:24:41.0000 (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: AM8P250MB0198 Subject: [FFmpeg-devel] [PATCH 1/6] swscale/utils: Factor initializing single slice context out 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: JR1leoarV5vN Initializing slice threads currently uses the function (sws_init_context()) that is also used for initializing user-facing contexts with the only difference being that nb_threads is set to one before initializing the slice contexts. Yet sws_init_context() also initializes lots of stuff that is not slice-dependent, i.e. (src|dst)Range. This currently only works because the code sets these fields to the same values for all slice contexts. This is not nice; even worse, it entails that log messages are printed once per slice context (and therefore fill the screen). This commit lays the groundwork to fix this. Signed-off-by: Andreas Rheinhardt --- libswscale/utils.c | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/libswscale/utils.c b/libswscale/utils.c index 85640a143f..c6fa07f752 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -1268,6 +1268,9 @@ static enum AVPixelFormat alphaless_fmt(enum AVPixelFormat fmt) } } +static int sws_init_single_context(SwsContext *c, SwsFilter *srcFilter, + SwsFilter *dstFilter); + static int context_init_threaded(SwsContext *c, SwsFilter *src_filter, SwsFilter *dst_filter) { @@ -1301,7 +1304,7 @@ static int context_init_threaded(SwsContext *c, c->slice_ctx[i]->nb_threads = 1; - ret = sws_init_context(c->slice_ctx[i], src_filter, dst_filter); + ret = sws_init_single_context(c->slice_ctx[i], src_filter, dst_filter); if (ret < 0) return ret; @@ -1322,8 +1325,8 @@ static int context_init_threaded(SwsContext *c, return 0; } -av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, - SwsFilter *dstFilter) +static av_cold int sws_init_single_context(SwsContext *c, SwsFilter *srcFilter, + SwsFilter *dstFilter) { int i; int usesVFilter, usesHFilter; @@ -1344,13 +1347,6 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, static const float float_mult = 1.0f / 255.0f; static AVOnce rgb2rgb_once = AV_ONCE_INIT; - if (c->nb_threads != 1) { - ret = context_init_threaded(c, srcFilter, dstFilter); - if (ret < 0 || c->nb_threads > 1) - return ret; - // threading disabled in this build, init as single-threaded - } - cpu_flags = av_get_cpu_flags(); flags = c->flags; emms_c(); @@ -2054,6 +2050,21 @@ fail: // FIXME replace things by appropriate error codes return ret; } +av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, + SwsFilter *dstFilter) +{ + int ret; + + if (c->nb_threads != 1) { + ret = context_init_threaded(c, srcFilter, dstFilter); + if (ret < 0 || c->nb_threads > 1) + return ret; + // threading disabled in this build, init as single-threaded + } + + return sws_init_single_context(c, srcFilter, dstFilter); +} + SwsContext *sws_alloc_set_opts(int srcW, int srcH, enum AVPixelFormat srcFormat, int dstW, int dstH, enum AVPixelFormat dstFormat, int flags, const double *param) From patchwork Mon Nov 21 00:26:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39361 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp1816225pzb; Sun, 20 Nov 2022 16:27:00 -0800 (PST) X-Google-Smtp-Source: AA0mqf7OAjHwZfsfhBBxc80na7FcRR3Uj9F5rT9N90pp+W57zfKCbqM504x9n/8MlboHyKy6U9UQ X-Received: by 2002:a17:906:1445:b0:7a1:6786:444f with SMTP id q5-20020a170906144500b007a16786444fmr3605488ejc.409.1668990420301; Sun, 20 Nov 2022 16:27:00 -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 nb11-20020a1709071c8b00b007add62d9f38si8442267ejc.330.2022.11.20.16.26.59; Sun, 20 Nov 2022 16:27:00 -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=s3WCQnQp; 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 8EEDB68BC8D; Mon, 21 Nov 2022 02:26:57 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075081.outbound.protection.outlook.com [40.92.75.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1ACFB68B9EC for ; Mon, 21 Nov 2022 02:26:51 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WmIpgigzu+x0ajKuzEXn5pszoYCnkwQ6YLhJjmTgbHm6hn0SOXhpBYFDeFBqAPIeb4CV5Lkib9ESFjZCcLbwYwwQHbPSGr5psv7gGMfNTxKa1JA0frEDRo1jADGYs8aaeO7Iqlyqi8jK92xdEXeEy9Ad73g5tVS/g2zvsq25IyKe1zpMpPGJ9F4YJ51QDAMOwQnRxwi/1vhVOtPbDWje+lt3iNrhv/wA4Ayo9KJ/gXzUiXYdSsw4Q7EepK37XwgHT5em/sk6DhT5sec+prqWjbLDI7qiZFI6ChPKW2qRbnoBwPGpddfIyfZAdMvVl5HNjEB8w1oT6jqjuD3kkjVR8w== 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=LKK4xQr9LgiBZz1PuuRctG0IQ7/xCTr9H+r/XPOwQVc=; b=HnxoL1m0OBvcmaslxqZJ5I4Vk9Su+CohSDkAHRUlMzqPi71CgeosVUko8X0bIpfPR3/nTiswkoRkj8EjFFhYAa/1eOHf5zekl9ae8FTDfzg8hGKt5OAx7LXkSA0/e6OKhjq6L8ig6YuIvwxLBv/S0y6ccTu27jXkWYS27kw0KiWLqhBs1UmkDm1Yw0gopi09vxo8eXIrovBFAItwkC81tc0xWzEQasv8QF2FokR1n5D2pU0FPDFELxaC/NLMDjuQplW/1/Nn5VuxsgKRQvX8f+ec1lUPQO+zcboFGXiYGzb/zWLGBA6YO5t2yje6eYQy+59VKehERPCJufR+3yWv5w== 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=LKK4xQr9LgiBZz1PuuRctG0IQ7/xCTr9H+r/XPOwQVc=; b=s3WCQnQpxRhw5k7jdiu48CmNAjXwhJ9ZiDZvKbcFSz2GVEs3mlpkJ1081cRXLhmb6XPI3VjBpTHhDQplX0kyF4lPw3ywsyW1RCumcXpfQl5j4BcwXXN3kh39TMPGKAB8nqZf2jmhfK61M+v7pf1O4PIyAijtNSH+UFymDZCljl3ewANisjh3iBEAmUTXn8nnMjKOcz4VKgV5JqQClzSSqlF5UyEmMNctfTIdHcu1XMKAvLb3OtHuax/bcAIpEABLUe5whb1DsBdGBBrhkGwrvvUkAQDntOotwc97aHkIc2e3j7DhsBmbDmRmx0bw2nAiCiYSExKO0Ud/soN2RqlZSA== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AM8P250MB0198.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:325::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.9; Mon, 21 Nov 2022 00:26:49 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::c37:cabe:316a:60b2]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::c37:cabe:316a:60b2%4]) with mapi id 15.20.5834.011; Mon, 21 Nov 2022 00:26:49 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 21 Nov 2022 01:26:57 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [gkg+FVSHnKwfnVevf2k2lA9aJ5Cj0hEGGNAcYpfYMA8=] X-ClientProxiedBy: FR3P281CA0100.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a1::18) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20221121002701.2127898-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AM8P250MB0198:EE_ X-MS-Office365-Filtering-Correlation-Id: 9eded023-5a0d-4bda-a8b5-08dacb57148f X-MS-Exchange-SLBlob-MailProps: Z9TzpHVL8qoWG4by+SzHSgwd64ohRCfOU/NJXU/kTcKfKoYov2QvqRls6EtN/ucxioXCT0Fr75UiI1B5sDOeo5WpwTAKhzIqNFFwVngGrOcl55y39ZxIvJkJ/MyGiSVZ5VSkxiu29HmHWuMcczc9xxh4+Pr131O2yJqyA0Jqs8LZQNe2LAOkBtQkvyGAr+yVzjVnxl1rvgwc0OFLnYCGE080u3pE8jwAfuGR+Hi2eW1MDXpAn5QheOv85phSOTS/TldjWZ+l/IdbHcnyD8VaNGMZXDAJYEifWxNWPTmgv/Pau0VvDawXt2ZTt2TFKE3uf4pWGR0MHqWBSbK2LB3HhKuLjkWMOG8waxQTYnPr9DTqIVVg9rd7OVoTp+1NlT2lD8zChF4pjI3NCanqqQiXju0wgD8XMJHT67dTOozkLuZKCLh0d9J11Sk7ebVkEZvsOH9P/UoKadbyR8z3mD1BaU40ahkJAwVkBtBCsOuweGB+aTPgvofEIWd5Jjh1Jucyioh6+JwDXzhdX2HFCLi+6ou1DVDL4Np+U81NaN00jhWy1GYs+kTcaYRt6S33BWiBFLldzFjY/O/MujXVv76f01muh6L8csgnF8IIHhkJRYmHjprUM+7gL/WGeq2Spi7ZDAeax+Xbo15XYEjOE3I+vTB6WpSox0uHfRYeD6X66T5n+RnkXyLBnYZQGtR7HRV6gy+JfuTCwOPFfbsVAIx4t0j9Wu/cOpFo7NpCxYvjpT/gjziIsB8fZOYSFcCwQd46Hf2tH04UVjI8B/r+iHIy+FlqGJtU2zQw48X6UxpkgQ9wYxNMcci8vgkTQNkkPtNYH4kRw30RFBCCCnQzZ+UMWz73ndfSW07Us93xd4hUjafliRL1A/Vdkg== X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MCBEFL6+Al9dWVp/7yIgkopdOr0NOm+eC0sZ6iC1AKPOL9976HJpWlRpVGur3Hy1ZsVk1b7z5P91My+Bre/4DMT1gDP+ThCqW1RIMRf1zywCQYcgm7am6xQFdEjNLKsdkBMxVMmD4xXep1bkF99/9kGSQ/81PA+6b1TC7b5logNf9U6Gm6CGo3iLAJ7FDgRlfS2gWYt0RQIcoCjFY6uwVk8JMSzcPCjU2NL6wPRHI9uiLNkU2UxCTogbDkM6QTiAS4v/bRgkslRg93BRGDdWLsZfonH3px8sdAEpZScEetc480q3JoAcd08p1gaTRbQ3lpwudEub00pwwklq13oWAyGLQRG/mDKAEDrI2aquPQv8/v7qOoDgFUfHqy7AjwjGPcJgfbNItM+TPHnLCMcrl/viIsrlofws41l8GXo8COkN41nN7VfjXZjfp4gIPD9k9opWHYFM/vqyXB6RRTApjWTaHYRjxucntkaQaNaKX9qVHJaGFUwnP4XrKlk0Gxsqy+S27UXNwVzi/iYappHOqzLyqit4LCQ+kqfuJZQX0lbFwY1m6luT5rXDQtmYe9aBTZDmt51Yb0tDzxkegfU4NgHENmY8Qrv36tf52qS7xyo4nBh/Oab4HUeLH4lU3OsN4ikQpKMhFG0/b7sbHo9v1KP/+F8QAI11nj+65SjGB98= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: MGZlVpgZMWqWwPQ4qAPsJDE6QSJG2HpmkHRE3DbOJDyOkYCRqFkiuQyLRoXyQi+f1aUtcRsx7YrjM1IS6YqpfG43G8xPBLs019udb/eU2RwmPLhSS0Oi3xk8CRYiDSGtjlmE599xpmnUTWRGKqR35X1yIljke7dmZC31M5AVBbAgk0IXFY7Lp1bLxYqTFPGlwbvBHTget3kA/5wlndoMaFHHTIgsUZymo8jrE8Jirym829OD68/5LPYKu/dXgxhP8BVMWE1PHpuPJwPUqH0Li9Rd667enO7gFKHlyfLeYGUgGXIs5WbyDy73PO7esLkSmtd7XUfXCp3qDlzOi86mHQ6cazaiC3yakq8ewznZOGN3K/KZJc6Aj8eVRPc7GI1VHsTmv5cCPv4/hR7fVhntNoQFJLmAoX7CwnPPhiC383W05y243ez5QCRcbn7m7udpOZCIkvmj7HS1hiSVFikc4TsQyRCRMB5K5JEDW2A77xJslGl4EP08i2CYMxv65JX2K4upXz6/1Cxs41yOLJefdjVzalbEZV07F6uITnusi5yXbw6eo3B/RBEHzd669fCXpSHBejUgHOxJpjpoWCyh9btyBVPzqKR6Cr1MIzLEULkuswEprMinL53QV+FK4xgn751Gj0oK+r2ZiQO1jCL23w03roVxYaP+GDGwa9dyoNczbYYPQwKZbBBzQkISkIwXY/ItW/M91PRuloki+0153o9NV6+QLxbqe0rE4rAQagEhdgwFCkB9WRUM3F8yku97J3nQGltqmZIrwa9wlONAw2yh38q/CczOpbBCAIQjpvfqfsPL9gMU5ALuhdIgwK2BBYBWt+6jHieSGR8qzHcrlADmhchhXxLJMRm4cEYBvpkbwrT3J71p5IGEDgGHb1gD0BRC1aLoYWclFwtBXwpr705vgWIWr7gsGK/kjrQElu+5jYM+eE8FOvVIBVj5yvPT9lGhNIrPS9Pxn50HgSUQkkH/fdoMMXCDyY5qrbvSWFeBP4r8XnaiipWP960DdIeevxXYhSAV6z0knevTP3SybC504faW7G96Rk3EFEdmJmtyPiNI+7L0GJEfFaPlZ+1c/e95iVTLSxR4dO2uRgCpdwODls/+jc2xAuas/WJXfmcqUqVKPIBxbObB+KCJQXL8m+vg0bNy1nkkSpPonB4zIqrAXd3O6ZSWzsb7oywwgH8vaGX4xXKUUq11Nlt5DTpNF660D5UtrzTDBfpJ6hsyoe0X2KZtKf1hbYnoUSYffRjCD3H/0Y2TXist0AOpi1+tbYLEeOb+zq5qPSWVgfS0eDXbaqc/3XbXzKRZgNAKn2qgMCWishHiUPmxwSJVjjvV X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9eded023-5a0d-4bda-a8b5-08dacb57148f X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2022 00:26:49.5618 (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: AM8P250MB0198 Subject: [FFmpeg-devel] [PATCH 2/6] swscale/utils: Don't allocate AVFrames for slice contexts 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: khamUSLabMsk Only the parent context's AVFrames are ever used. Signed-off-by: Andreas Rheinhardt --- libswscale/utils.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/libswscale/utils.c b/libswscale/utils.c index c6fa07f752..053c6bb76b 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -1317,11 +1317,6 @@ static int context_init_threaded(SwsContext *c, } } - c->frame_src = av_frame_alloc(); - c->frame_dst = av_frame_alloc(); - if (!c->frame_src || !c->frame_dst) - return AVERROR(ENOMEM); - return 0; } @@ -1581,11 +1576,6 @@ static av_cold int sws_init_single_context(SwsContext *c, SwsFilter *srcFilter, if (!FF_ALLOCZ_TYPED_ARRAY(c->formatConvBuffer, FFALIGN(srcW * 2 + 78, 16) * 2)) goto nomem; - c->frame_src = av_frame_alloc(); - c->frame_dst = av_frame_alloc(); - if (!c->frame_src || !c->frame_dst) - goto nomem; - c->srcBpc = desc_src->comp[0].depth; if (c->srcBpc < 8) c->srcBpc = 8; @@ -2055,6 +2045,11 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, { int ret; + c->frame_src = av_frame_alloc(); + c->frame_dst = av_frame_alloc(); + if (!c->frame_src || !c->frame_dst) + return AVERROR(ENOMEM); + if (c->nb_threads != 1) { ret = context_init_threaded(c, srcFilter, dstFilter); if (ret < 0 || c->nb_threads > 1) From patchwork Mon Nov 21 00:26:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39363 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp1816260pzb; Sun, 20 Nov 2022 16:27:08 -0800 (PST) X-Google-Smtp-Source: AA0mqf4RpqjzwLpUDezdliEungrVmwSV52dpKTSrqCnQePrZQcEz3aKnt2ym1sxd4vgF1aCMS+n0 X-Received: by 2002:a17:906:1614:b0:78d:4e5b:ffaa with SMTP id m20-20020a170906161400b0078d4e5bffaamr13197308ejd.455.1668990427847; Sun, 20 Nov 2022 16:27:07 -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 z2-20020a1709063ac200b007b2912955desi6584287ejd.125.2022.11.20.16.27.07; Sun, 20 Nov 2022 16:27:07 -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=KDXdGNQY; 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 9C85268BCA0; Mon, 21 Nov 2022 02:27:02 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075081.outbound.protection.outlook.com [40.92.75.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 37C7268BC4C for ; Mon, 21 Nov 2022 02:26:56 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SWtG+A6Vrb7ZCjeuKrbRuck4L0YzF1zmWggaWLdonFkdAD/O61+zFCaQFO8ayWQs9ID63u2HDmI9hQVbKzOB+FO3L1tUmJh3p2Zm0ruN8id7XolWNkzGHDG6sEHMAIanqt2ava3C978IUvJcfggF9KeSL75vm1LbDakEbduQsJ6a8LxFpY3rTgXEMPLhImqN09l02Gmj9RfPtCcfZULXS+cO7Gowt0g6uEoOkI6t8ndYDPWwxm9WgcQXXXU00+7QpztmTgcP5JFjh21z4V5wQ1h8sy/A+kZg4tLzMs29ioiQ8TnHCDbBy6BXKdxaI4z3JU0zink65GIcXxqkV0SkoA== 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=qHnAg558o2VGD3adXxA2j6y3zTTBZcmvVvQrn0aRHjk=; b=c0Y0Ek0zRY45PMSOUWjM/rEttZfPXrLMnHopwZ/JDy0+3giAt/Tif+pmVLodP8VTiqVKtveqEjnXclRXD4KxPzNaJN0mq5akB6FbDC0dLi3L3FdeZelu43gZVMmKQ4bQwyy9c5lvKyRkW39iBvckLL8XZECFptdQAWFLhqYqcK4beMeRAAF+8wF6ahFNmxvpsFzs5wXWStyJ/9HGlC5pREwzY7ReRzLyPbTxPq93dRAXwc1dGkU531X6mCYJioHSszbY/sZbvG1nZBXnWDapAXxIPCzz0m3HroeqJ1okX3jd77qg68g0Cz/A7Ceda6jPwvtjuze0SpUEhWYddpzHew== 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=qHnAg558o2VGD3adXxA2j6y3zTTBZcmvVvQrn0aRHjk=; b=KDXdGNQYK7UFO1m3+YByr4RL2YIT3+kKDcFMdtZSeYPwItG7AiN4Nkm4pxRLYr/eYQR7VZ3rlNRBQ4f3JH/2kWsvs/y/ZbhJxYtuK1f5SSYxxZA3UfrbBWC9xQt76ANR4fteqJYCfqiiO22FKb/5Ikdp+MW3ZTQ5QYLkXSaWWoqHT/Q6WTxPdD8NReViy8jbNxf7U5nxYM/66rhJnZQbBlqgFaDqg0gven4dKSOOaJqSWWlHonwJzPzOhhNbIOiDrlSOL5lupwTtslcj7RaqfxFANOWWfQlQ1KqHSfA3d3Jsvbeg7GnYk1qTXj16/zYIKJ51vSBP8uIUHbdE6WVoBg== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AM8P250MB0198.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:325::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.9; Mon, 21 Nov 2022 00:26:51 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::c37:cabe:316a:60b2]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::c37:cabe:316a:60b2%4]) with mapi id 15.20.5834.011; Mon, 21 Nov 2022 00:26:51 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 21 Nov 2022 01:26:58 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [qtGfmVDSjmoG6g8H+BbjfhMA/2RfZS2bIAOjRkFWvio=] X-ClientProxiedBy: FR3P281CA0100.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a1::18) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20221121002701.2127898-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AM8P250MB0198:EE_ X-MS-Office365-Filtering-Correlation-Id: 19c14c9d-db87-4a3e-b769-08dacb5715c5 X-MS-Exchange-SLBlob-MailProps: ZILSnhm0P3mtpjYJPDcWODdlEt9tqaLeQHCydPE4Jv00iTsrjizy+KGnKk2UXOjz5tCZ3cMy6DhL/VjL9DGKW/ZMaXJGOOI6vjZ5Pu2i1pgn3fslottinkUnShjP4L2ld2iYOUZwYPgnNdEyFpBSrBdhGC/2aSo+1cyEExb+YD6oFOblLQNA77AJDT6YWH864PAgDipwcwTQM+XaSDYvTcJTurCtHW+iXvqTe2cvZNbr23rooeTV2Ny+C41NRZpy5x3wbbpvAFRU/lrY4VcHLppTPPGjlR8F0JkNTzpVhjpevxG9N7T1FdT4r6znxgXQvFWJ3K5r9PIEBI+ahPtSmk2FkVo3YNRJ+GCb5J3tLQiFtX6pIg85gAgChsHpKVtuXpYb04Pap9RwUWbNpXzllTBu/HCWUJQfwDz/KLs5uAegOz5nQTdZ7hqsxij0vCe+5pWpztVjLGk1n+X+cJUH3IDTPvVLjZ96IIsVel1PBWu2aTX5bjbjafka1D/umy2lhcMQwx4eWkmuUJcpPMZxBzOmbU198l1vZslowKDsnilqsXzNIhGZtwQdLgusC80/mRDLueWyixxEMa6BUIDF14Qma6PRrD7ca31b095SBPUEYVZH+svBxb1TbfOEmVIa8WGhfUeNX79/SgivG6vt7Iow35RJ3fct2rUAERYK5B2bCEAnuxNcoosptaQwLnQ0NgIh5P/kcBB2UZwE7j0gg4ACp+3M04SudDf+fH0MkvySalklcJ8RF5PvgTfTY9XRFHUSt7ZsmMSOXZX14Wkei5bQZcxvPBXc X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: abvaVFg+sHljugh6OCLQJ25LwtqnAZc9WYDsnFfnxHeHlI+XtzVxMh9X0WpnTsdC2TXBPa05M6+1O5TAUZzo3MxcOJGEeV1hrdfbYLNOUxIR2IjYimrm7xYezVr5oqhzBc/XghgPrvLe1sGAx41lKJ/3C/MHshO04lHiuHBs/qboPGG20LxnexGVpHTyIcnTtyelVOse+K9TdNg8dtA5hvC+ZTAjhIECjiZHle+clLljNk/OmtkeHKX7Xml1l4DGxbTGLP0ppf+NlYLa7yupIM74srKdB9l95Rv5C6h+AQowJpQHKU3UWzIiIRloIOSV7bZ18aQVO289rrjSHcI+wngaoD5yutWC+DLowN5Ygcx/Ol2b6WUPmPskR5CHYu1gEpcXDD5v8+i1Yk9aqK3vqY4OKxy5020ZOvZb+LffJ1gNc7TAyzNHm2lIi81OK549amSDqs06hBGWekigSvsqGv3dpTl1Dd/LeaEGYYtnj7tLpFQxwLc2afJ2qOZeYYHl5A1EadQXYlghMfYiFZWRkOB1zKSqfYG+LN9o8Otu+uK025gzrgdvUeu8yrI37yd+I2Nwvn1kuRdE7ZpA7hjwPzQpdTgN4JZmUTwoAzbZmWv05Y8QN0bnOmf/I1pi8qnl2fDG2cJU1GAEBhc7OtANqQaiShhNtUDLiULTqE4wxiI= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 4QbJjSMF0Lg9cbtgwkS4c/WuS80imTFRZJDxrx2Gvi3z1K9r7b1GGalFdLu8XhhuiyBTVrSAJSeBUsYKLb/ROvetqxgXuxcti0UO9XWZcNbX5FPVYhYQt3kswCdBwyTg7d1iZodz8ZKKqu7VmK7DfvR5jutmCUk+BQQ7yz5H5eOaOp/CbFOSKVan+RT6VWiWyUMST1vRYHTzs5wh1tReG3S//eIucXOWHVStXvFzGrCZniTmYePMaAh04k6exvYKiqFYNrIE/rA4zUB9JVUtTNNdQBuinQ1Oqapb8LbIiSVmqqrTnIpFRUYMfQQKfMMjNSPR3xZG5o7EBz4zpIjNymEcHJSPqSMTPwoPKjriNSMBQoukxsnALMmznk10NXf01jc2YJIjhvVFHnFvMkN+POnFga0rC1dJvN0JrBFNr51+IqhNRuACklcTJw9PK9YaF7RBkfsHaDRjN9nJObRhM5VdZDRLBCi80yZME7Uxlmn7wY7HDR13+ha935awuSau3O9JmcctLZUGNvLDWHTbGrnrb4xJRkim32yuXku2sqqBazd+n5eRw7LZozN9x2X5NLsLv8mkwLIMKTSbKRsSbmuKrVhCYRvcKzAvhCpH3u5u+hXcvFAIK4NX08XxY9Tuhho51dlhUEKlQiEsKMtvNa/F1LGXhkIaCj8aYJ0tCkaMJRA2wLxqwHV9/8ierFTBvZ9bmiAnfr+q+x5mFJ6z8Olv9U05JZtCYCujVJP4cUwhjX1cV/VqN33xsF+lQIEhRzAynZZD8YyYynNaZxGsQpjNLLg2gExfulrI8D25eU6YfFjHDq1/gJOCB1qlTxL/q7dViM+ddkUNF0yeiwr14LqqiVWKUpvuZ22IWk+dFtnSYMichnxGzs8mUbPYX+iIBsAPI4qaye/WqFKgJxsFst3qubywNtfjY3gPg454rLnzvQpCp0wrU8aQmLmSr982F4Qx2/VaS7pVZKtQQkAENM8m0EQ9m4MboiTddDeycMtPZEHrJcABt8qxNrTIfoSLlVP9WBNzathDN22e/kfzOfN607BnYHLVC7/3YgdCxE3oK6RAEUvltNklPpulSJ0sbcdSc5lNK65Zh1QTLR4GasT9+DEeMFpJeUbpL44wZrepX5YGaip7gMCvXQ8ZLxWd1kX5Elv9zquDrC+URKb/6IkPCnd3klkGykdUFXqNFGifSNxTJ64QBuGinqyij5E3spU6UeVJqvucehIIPLGwsWLh33A3QkjHNZfy9CS2VxTuqjr26hNcffwx11GzWZYliV/DW04ZWFcHICqnf0O0TZYaZcF6Vxg9KIOCXZNeKlsanvEhUkD1I4/E7CSE0zJ3 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 19c14c9d-db87-4a3e-b769-08dacb5715c5 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2022 00:26:51.5937 (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: AM8P250MB0198 Subject: [FFmpeg-devel] [PATCH 3/6] swscale/utils: Avoid calling ff_thread_once() 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: ffzHuVGu2zr0 Signed-off-by: Andreas Rheinhardt --- libswscale/utils.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libswscale/utils.c b/libswscale/utils.c index 053c6bb76b..fb788fc330 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -1340,13 +1340,10 @@ static av_cold int sws_init_single_context(SwsContext *c, SwsFilter *srcFilter, int ret = 0; enum AVPixelFormat tmpFmt; static const float float_mult = 1.0f / 255.0f; - static AVOnce rgb2rgb_once = AV_ONCE_INIT; cpu_flags = av_get_cpu_flags(); flags = c->flags; emms_c(); - if (ff_thread_once(&rgb2rgb_once, ff_sws_rgb2rgb_init) != 0) - return AVERROR_UNKNOWN; unscaled = (srcW == dstW && srcH == dstH); @@ -2043,6 +2040,7 @@ fail: // FIXME replace things by appropriate error codes av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, SwsFilter *dstFilter) { + static AVOnce rgb2rgb_once = AV_ONCE_INIT; int ret; c->frame_src = av_frame_alloc(); @@ -2050,6 +2048,9 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, if (!c->frame_src || !c->frame_dst) return AVERROR(ENOMEM); + if (ff_thread_once(&rgb2rgb_once, ff_sws_rgb2rgb_init) != 0) + return AVERROR_UNKNOWN; + if (c->nb_threads != 1) { ret = context_init_threaded(c, srcFilter, dstFilter); if (ret < 0 || c->nb_threads > 1) From patchwork Mon Nov 21 00:26:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39364 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp1816290pzb; Sun, 20 Nov 2022 16:27:15 -0800 (PST) X-Google-Smtp-Source: AA0mqf6klLJRTNBUtwL11RfeVELx+/u1bvas6RaGLCePrbeO3JZ4UnSX53qxEUG/qRCn/ndMh7rE X-Received: by 2002:a50:f602:0:b0:469:4e4f:4827 with SMTP id c2-20020a50f602000000b004694e4f4827mr5938440edn.214.1668990435185; Sun, 20 Nov 2022 16:27:15 -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 i21-20020a170906251500b0078316f0b5f8si6100303ejb.88.2022.11.20.16.27.14; Sun, 20 Nov 2022 16:27:15 -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=hJIKACPc; 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 CC02C68BC90; Mon, 21 Nov 2022 02:27:07 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075081.outbound.protection.outlook.com [40.92.75.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 569A168BC90 for ; Mon, 21 Nov 2022 02:27:01 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jE2GieqOBjkU3mpRjP8/H0rBkV2P1JJHERer4ho1eklbrMf7rjjXQI26PmuU8PnXERc0SYDIrPSnIJkS9h67sllhRH2ZEioQ/jwwuqUw53L5i1gn2b+QfPklPi4J14i4pHAdd8CYF01HhLtc2+uCww1XpI8ptipBMmhV1tzJks0GZ3qczcIfCb1XOhfCpQPmA7GYbuPHbyfRUYL+sUJgP9P60EhZT9iEmUnwgPTAHDvyIDMWle/daLyLuGwbhP+70xTjczYWC/yemhL8oCgqqMF9+V6ijDvjlstvgctpHQTZSE8dFlMZzYym1vivhAqEuZilzZWSkPhK/tNt5sHJ5g== 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=M3rLHRvo/7thGPBGdVmWEGT/Iqavww7vyq12BMcSlv8=; b=GXEAsaoKgLcS54GyfrI+rAJdGNhBlh/6qm0ENUkhgC2w2cqKmPgrhGqt1me3dzQfbXmbRLvgNwwWmJ+eqGU5Tjke3NP8PtJIcY+p48Tb2dybGo/+4iLcVY7yvPguSbtDbwfNXUJOxNyyvjqJxQ+cQb/Pb3TosuHwhBpccwe4wUAMQxgHXBr1T47FmtmRe+tGSR1Y0GDmMzh1HrtS6Bax6SMwPRD3fhB1u/gFvvv+YCisVcCoTErRQxKrCALfwcy78Kt9xJjeA2/bElzL046in6KcPHA0NhQR8+ORG0ng1MMkIeFsTq5CK76XLYPOujhGIzJ4NPsJTRbiyy1/TVl17Q== 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=M3rLHRvo/7thGPBGdVmWEGT/Iqavww7vyq12BMcSlv8=; b=hJIKACPc88RnGPZNozB7WgNcfRaZfdN9iQgHkz8zNYf7tUDO/pMDVbVPMKAkw8Fg04k3jXdVgjUnN78vl2zoTTmCwva+B1Bev9doxmA3ZZX5WTesTUgrv/c1pDCvRJoGPhbXZ/bUrqCKIfM7gLR+ZH4xpnJYLFf//tmapImrd3xBeO8rTUinlQQ8kAwhvko7H890NYFeJTXqvFvUJ2I5CFBWfyMPIGRUhOrD+LaDFETDQSLRRpQCwq+SdQdabS89AxCnSwbAsv6ZL579C5VfggIXMdlj0abcWglL1jJEE0HhIjdzJEm4wrkZFQ0OP+hMK90gABmrxJLoT5qbVUsrjw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AM8P250MB0198.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:325::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.9; Mon, 21 Nov 2022 00:26:52 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::c37:cabe:316a:60b2]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::c37:cabe:316a:60b2%4]) with mapi id 15.20.5834.011; Mon, 21 Nov 2022 00:26:52 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 21 Nov 2022 01:26:59 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [YTX5Gg8j+x5dS06NPtU5g6be/m0wTXHrFSOU/U4UztM=] X-ClientProxiedBy: FR3P281CA0100.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a1::18) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20221121002701.2127898-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AM8P250MB0198:EE_ X-MS-Office365-Filtering-Correlation-Id: 7bab1c27-ad4f-4185-92a5-08dacb57168b X-MS-Exchange-SLBlob-MailProps: feAVlmA1hHUsdZ5NY64GrSxgTuvz+rP1+q+Le0IJS8EMfHz7BRcYCyQzTPtiZfFHXS4TfVdUuHJ60sSsJOfyxMcjjH3w/lWJ9RYDd44ain7uES7MMuClqlQ+yFkY8mYj3pQg7xvH9/F3c0JsU7fAVCQsGAgPSPWFOzeTL18DFsyqO47/x4OaPhBUP3s3W2yL0KRK2vaMWiwFnrK2J6j9TyjgJOAFK77f9RwjyACTjR0c4NPQahxa5AqUrsuOBbmTE/Kkp2i+qogoyUjmXKGjhsZ26jO1fKTOQI4zsHXHS9RpSA06iJiKomGdZH4jV9IyjVhH1Rwjp8IZKQE5xdCgYeiWnQ7FYYqlC36Rl+Tq6xcC6RI5gKNoK8lq4N4t/bARKVj0VsMS4xNWeztPH0VPdeK2GQ5/ksz6p67gZGKsrR9F1/eLemnxGfb1Sk6jdcNhe8BKugFAwwipYDrgXxyJZUcZVCRbABMptux9eLhZhzEOYNP3q27uJBylh+GrQMZKDNU3mkGCYqDSf/VjmR322Qs9rHn67P0gDgJVA+qd0Vksf1lyf+OCJX2ohPNoSzxV+aLLktTGk+TgBjUNkuqt+sT9tDHjc2VwOC5RJ25MNZfyS8tds+42Qo/WalGdcjes+ckpQfNCLhjcTkGAfUFC55NY4m6MTJblgzXlHRQg0FaR4eIAz3RBKSRcTYfO2mg1FcoGD6/jo7tKLlBmktx9OA== X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /5gKOFhN8CA7qJPHlFcKPZQKB1yUGdAk8FV/KhhhISL7yW77ltkrrDyEBrRNFnNwnhlX7hA82gzsvNZWkCaX4hqRCaZLadd4tDFrpwniYP7EnO+WCs4Ep8EYyvwtVUjxLCOPCTXpiKleNHeXoCKUt/UBjli688zwPk/rGbdGnrSpvhkY3xNpd5Nq5VJPuhtnP75p1qD2U4NPdgS4T8jwjjVpleBnWrbJ9LcSpOXPoxt/XRRaX8ANjT6KmQMPRep0OYUBR3RUAmgwptuIPEdStz0qPHLbnegn0u5r/xMxRCbsDR6u0Uz6NpiVPFhzfiUbWxzDDw5n8q+0C2CiYa9GigeRasEVDblUXoIy/v6R62jp4NgP0SHgqkbaL/3D6nA/SAYdZ/wZ1mjHYQwxEY7gGG6NHE6WkXmeceVY/MXrwz9bhJWqGUHoyl4v86pHneyJISine5UgW52+LKlOZM/1n9MuawX4eiLD2wq5H6+91ATzASROaYiXNVoX8G27dktAmVJhC1wirZXmwOhY8qjkoHIREu4p42O2ryZrqBzbq8F1NaLrOGX6897uJnuVKNlVGGu/ngo8nJST7hxRB8CHufMwhKzBPGDpsRgSO7CevlXlG9lntHQPNMyGHJ/2l+PdyUogm195YkihMffa67YuxP2kceKeh5CvUZInGpuJH5o= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: je6QoiQpIzUP2kLMLSSFIk6WZw2qEYSNTd+MGkgSKYZ8Vg5M5g5fDYlapgvK6yRjjheK1/mWLt8bwvKFJ0XDeWYTNTHGv2TmagxGbOLmSHlvPY6aL8tjNXRUvxp6RXBOHiDPECwrWCInUfCQltboC2Q5ygcKIHPCn413R/gvzWDhFkHPSg7RWqryu5WoHB4Fz+8QJ8XWg4RWbbZqbSWjy07birNd0xM78FT3ioAL4FKTkA9TsSlIq3b/eWsVEtO6zYdICL/KJpAE5S9n6RJmrW+b3IrbJhp3z7QJqkN/gj/SCgP6VIDp5M6ENMebBHlMlHaWzJUeC6Rslk4IKcR27hNqxCy9Vu8fgVGnS7tNAOlfCYLuj3FIyXVNFRrFItoBZMLrjXdZ0mbS4a7SXBLVm+LEi02PDHKv6I4+f0S9d9CVcaopWnvzj00jMC4Hk/IbWiTY1KfmeK/26uxYnPRq2Url+EbroByL4bk9C554soXx49W5UoJznimFo31+lOV/DzCVZZOYsSwuR7Tj6EuCPhiC3IqYpiO7O6tF6BDXt+vxZFJ+cYg9akr1oSR2VSzlKPFNpXxBw5F3QCIzRpdBMKJOJ0q7y068uSaGyWHm2kX69kamQF74eMc/YWVauLoqUb7Ettvie6OlYeS1WmqWAwxIdXYsotlOisl0DvNIRx62JZ1hZWKbYUGF+GrOO+cXHuQmQMl7YlmtEm+P8ZK/Jrj48c2XG6xWPPnnueapLW6PuIzRIQsR1FLINSnPWzS5rJrq/h4s0wzwBKxN9z7gbxRlB9hFPkrXMOq6Noj1Yak1wTV8nqopaj88WJFEj7ucgH+bjqKDbNfx7eBWaE3Sh+S5Lntin+LeaguImw8GYq/vkes0EfBjBUMAXtRy3iCteZ6u44BVrdQfjdTAJfRbiU2npc0FWnnNTOuNc1GWqsL5Mss57jj05R0/yRTLG+dDkQJMVo2DMawLxrTj2Br/fp9zi2nTeXKem5W7VaCVn80yWpZNKckMTM7FTW2k/RGspXCBFqpbuDT/6RVlThJXyK4XRESWXirF4Z102iB0JNVVRR9PiruSlY/eInjVsHbkisyQ40hJKAn7cPut36fSLdkKq3S96ZNeEPhvtDRsiOK2c6OzZ8XhdgwYLOyZ6A1zd82NOz48Ln4xCU0iLtMPUu3iqMJPADaBub0hYrYVE36UEOX3s4mP0jSTvtGsehE0/OE2isxZMwR995Jpo/6VnbTxf5xghmidg9xSpsfvuuSCMre2gfU57UEzxbaYXxHYQlR17xXyGV0vrLTx3HPb5FZUQUKCtIqB0zrO3Z8xuwzdgFw5aF8iekZcse44Umb/ X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7bab1c27-ad4f-4185-92a5-08dacb57168b X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2022 00:26:52.9072 (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: AM8P250MB0198 Subject: [FFmpeg-devel] [PATCH 4/6] swscale/utils: Move functions to avoid forward declarations 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: U3hQKI1YCLFf Signed-off-by: Andreas Rheinhardt --- libswscale/utils.c | 407 ++++++++++++++++++++++----------------------- 1 file changed, 200 insertions(+), 207 deletions(-) diff --git a/libswscale/utils.c b/libswscale/utils.c index fb788fc330..cdd89e4b58 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -59,13 +59,6 @@ #include "swscale.h" #include "swscale_internal.h" -static SwsVector *sws_getIdentityVec(void); -static void sws_addVec(SwsVector *a, SwsVector *b); -static void sws_shiftVec(SwsVector *a, int shift); -static void sws_printVec2(SwsVector *a, AVClass *log_ctx, int log_level); - -static void handle_formats(SwsContext *c); - typedef struct FormatEntry { uint8_t is_supported_in :1; uint8_t is_supported_out :1; @@ -926,6 +919,74 @@ static void fill_xyztables(struct SwsContext *c) } } +static int handle_jpeg(enum AVPixelFormat *format) +{ + switch (*format) { + case AV_PIX_FMT_YUVJ420P: + *format = AV_PIX_FMT_YUV420P; + return 1; + case AV_PIX_FMT_YUVJ411P: + *format = AV_PIX_FMT_YUV411P; + return 1; + case AV_PIX_FMT_YUVJ422P: + *format = AV_PIX_FMT_YUV422P; + return 1; + case AV_PIX_FMT_YUVJ444P: + *format = AV_PIX_FMT_YUV444P; + return 1; + case AV_PIX_FMT_YUVJ440P: + *format = AV_PIX_FMT_YUV440P; + return 1; + case AV_PIX_FMT_GRAY8: + case AV_PIX_FMT_YA8: + case AV_PIX_FMT_GRAY9LE: + case AV_PIX_FMT_GRAY9BE: + case AV_PIX_FMT_GRAY10LE: + case AV_PIX_FMT_GRAY10BE: + case AV_PIX_FMT_GRAY12LE: + case AV_PIX_FMT_GRAY12BE: + case AV_PIX_FMT_GRAY14LE: + case AV_PIX_FMT_GRAY14BE: + case AV_PIX_FMT_GRAY16LE: + case AV_PIX_FMT_GRAY16BE: + case AV_PIX_FMT_YA16BE: + case AV_PIX_FMT_YA16LE: + return 1; + default: + return 0; + } +} + +static int handle_0alpha(enum AVPixelFormat *format) +{ + switch (*format) { + case AV_PIX_FMT_0BGR : *format = AV_PIX_FMT_ABGR ; return 1; + case AV_PIX_FMT_BGR0 : *format = AV_PIX_FMT_BGRA ; return 4; + case AV_PIX_FMT_0RGB : *format = AV_PIX_FMT_ARGB ; return 1; + case AV_PIX_FMT_RGB0 : *format = AV_PIX_FMT_RGBA ; return 4; + default: return 0; + } +} + +static int handle_xyz(enum AVPixelFormat *format) +{ + switch (*format) { + case AV_PIX_FMT_XYZ12BE : *format = AV_PIX_FMT_RGB48BE; return 1; + case AV_PIX_FMT_XYZ12LE : *format = AV_PIX_FMT_RGB48LE; return 1; + default: return 0; + } +} + +static void handle_formats(SwsContext *c) +{ + c->src0Alpha |= handle_0alpha(&c->srcFormat); + c->dst0Alpha |= handle_0alpha(&c->dstFormat); + c->srcXYZ |= handle_xyz(&c->srcFormat); + c->dstXYZ |= handle_xyz(&c->dstFormat); + if (c->srcXYZ || c->dstXYZ) + fill_xyztables(c); +} + static int range_override_needed(enum AVPixelFormat format) { return !isYUV(format) && !isGray(format); @@ -1112,74 +1173,6 @@ int sws_getColorspaceDetails(struct SwsContext *c, int **inv_table, return 0; } -static int handle_jpeg(enum AVPixelFormat *format) -{ - switch (*format) { - case AV_PIX_FMT_YUVJ420P: - *format = AV_PIX_FMT_YUV420P; - return 1; - case AV_PIX_FMT_YUVJ411P: - *format = AV_PIX_FMT_YUV411P; - return 1; - case AV_PIX_FMT_YUVJ422P: - *format = AV_PIX_FMT_YUV422P; - return 1; - case AV_PIX_FMT_YUVJ444P: - *format = AV_PIX_FMT_YUV444P; - return 1; - case AV_PIX_FMT_YUVJ440P: - *format = AV_PIX_FMT_YUV440P; - return 1; - case AV_PIX_FMT_GRAY8: - case AV_PIX_FMT_YA8: - case AV_PIX_FMT_GRAY9LE: - case AV_PIX_FMT_GRAY9BE: - case AV_PIX_FMT_GRAY10LE: - case AV_PIX_FMT_GRAY10BE: - case AV_PIX_FMT_GRAY12LE: - case AV_PIX_FMT_GRAY12BE: - case AV_PIX_FMT_GRAY14LE: - case AV_PIX_FMT_GRAY14BE: - case AV_PIX_FMT_GRAY16LE: - case AV_PIX_FMT_GRAY16BE: - case AV_PIX_FMT_YA16BE: - case AV_PIX_FMT_YA16LE: - return 1; - default: - return 0; - } -} - -static int handle_0alpha(enum AVPixelFormat *format) -{ - switch (*format) { - case AV_PIX_FMT_0BGR : *format = AV_PIX_FMT_ABGR ; return 1; - case AV_PIX_FMT_BGR0 : *format = AV_PIX_FMT_BGRA ; return 4; - case AV_PIX_FMT_0RGB : *format = AV_PIX_FMT_ARGB ; return 1; - case AV_PIX_FMT_RGB0 : *format = AV_PIX_FMT_RGBA ; return 4; - default: return 0; - } -} - -static int handle_xyz(enum AVPixelFormat *format) -{ - switch (*format) { - case AV_PIX_FMT_XYZ12BE : *format = AV_PIX_FMT_RGB48BE; return 1; - case AV_PIX_FMT_XYZ12LE : *format = AV_PIX_FMT_RGB48LE; return 1; - default: return 0; - } -} - -static void handle_formats(SwsContext *c) -{ - c->src0Alpha |= handle_0alpha(&c->srcFormat); - c->dst0Alpha |= handle_0alpha(&c->dstFormat); - c->srcXYZ |= handle_xyz(&c->srcFormat); - c->dstXYZ |= handle_xyz(&c->dstFormat); - if (c->srcXYZ || c->dstXYZ) - fill_xyztables(c); -} - SwsContext *sws_alloc_context(void) { SwsContext *c = av_mallocz(sizeof(SwsContext)); @@ -1271,55 +1264,6 @@ static enum AVPixelFormat alphaless_fmt(enum AVPixelFormat fmt) static int sws_init_single_context(SwsContext *c, SwsFilter *srcFilter, SwsFilter *dstFilter); -static int context_init_threaded(SwsContext *c, - SwsFilter *src_filter, SwsFilter *dst_filter) -{ - int ret; - - ret = avpriv_slicethread_create(&c->slicethread, (void*)c, - ff_sws_slice_worker, NULL, c->nb_threads); - if (ret == AVERROR(ENOSYS)) { - c->nb_threads = 1; - return 0; - } else if (ret < 0) - return ret; - - c->nb_threads = ret; - - c->slice_ctx = av_calloc(c->nb_threads, sizeof(*c->slice_ctx)); - c->slice_err = av_calloc(c->nb_threads, sizeof(*c->slice_err)); - if (!c->slice_ctx || !c->slice_err) - return AVERROR(ENOMEM); - - for (int i = 0; i < c->nb_threads; i++) { - c->slice_ctx[i] = sws_alloc_context(); - if (!c->slice_ctx[i]) - return AVERROR(ENOMEM); - - c->slice_ctx[i]->parent = c; - - ret = av_opt_copy((void*)c->slice_ctx[i], (void*)c); - if (ret < 0) - return ret; - - c->slice_ctx[i]->nb_threads = 1; - - ret = sws_init_single_context(c->slice_ctx[i], src_filter, dst_filter); - if (ret < 0) - return ret; - - c->nb_slice_ctx++; - - if (c->slice_ctx[i]->dither == SWS_DITHER_ED) { - av_log(c, AV_LOG_VERBOSE, - "Error-diffusion dither is in use, scaling will be single-threaded."); - break; - } - } - - return 0; -} - static av_cold int sws_init_single_context(SwsContext *c, SwsFilter *srcFilter, SwsFilter *dstFilter) { @@ -2037,6 +1981,55 @@ fail: // FIXME replace things by appropriate error codes return ret; } +static int context_init_threaded(SwsContext *c, + SwsFilter *src_filter, SwsFilter *dst_filter) +{ + int ret; + + ret = avpriv_slicethread_create(&c->slicethread, (void*)c, + ff_sws_slice_worker, NULL, c->nb_threads); + if (ret == AVERROR(ENOSYS)) { + c->nb_threads = 1; + return 0; + } else if (ret < 0) + return ret; + + c->nb_threads = ret; + + c->slice_ctx = av_calloc(c->nb_threads, sizeof(*c->slice_ctx)); + c->slice_err = av_calloc(c->nb_threads, sizeof(*c->slice_err)); + if (!c->slice_ctx || !c->slice_err) + return AVERROR(ENOMEM); + + for (int i = 0; i < c->nb_threads; i++) { + c->slice_ctx[i] = sws_alloc_context(); + if (!c->slice_ctx[i]) + return AVERROR(ENOMEM); + + c->slice_ctx[i]->parent = c; + + ret = av_opt_copy((void*)c->slice_ctx[i], (void*)c); + if (ret < 0) + return ret; + + c->slice_ctx[i]->nb_threads = 1; + + ret = sws_init_single_context(c->slice_ctx[i], src_filter, dst_filter); + if (ret < 0) + return ret; + + c->nb_slice_ctx++; + + if (c->slice_ctx[i]->dither == SWS_DITHER_ED) { + av_log(c, AV_LOG_VERBOSE, + "Error-diffusion dither is in use, scaling will be single-threaded."); + break; + } + } + + return 0; +} + av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, SwsFilter *dstFilter) { @@ -2123,89 +2116,6 @@ static void makenan_vec(SwsVector *a) a->coeff[i] = NAN; } -SwsFilter *sws_getDefaultFilter(float lumaGBlur, float chromaGBlur, - float lumaSharpen, float chromaSharpen, - float chromaHShift, float chromaVShift, - int verbose) -{ - SwsFilter *filter = av_malloc(sizeof(SwsFilter)); - if (!filter) - return NULL; - - if (lumaGBlur != 0.0) { - filter->lumH = sws_getGaussianVec(lumaGBlur, 3.0); - filter->lumV = sws_getGaussianVec(lumaGBlur, 3.0); - } else { - filter->lumH = sws_getIdentityVec(); - filter->lumV = sws_getIdentityVec(); - } - - if (chromaGBlur != 0.0) { - filter->chrH = sws_getGaussianVec(chromaGBlur, 3.0); - filter->chrV = sws_getGaussianVec(chromaGBlur, 3.0); - } else { - filter->chrH = sws_getIdentityVec(); - filter->chrV = sws_getIdentityVec(); - } - - if (!filter->lumH || !filter->lumV || !filter->chrH || !filter->chrV) - goto fail; - - if (chromaSharpen != 0.0) { - SwsVector *id = sws_getIdentityVec(); - if (!id) - goto fail; - sws_scaleVec(filter->chrH, -chromaSharpen); - sws_scaleVec(filter->chrV, -chromaSharpen); - sws_addVec(filter->chrH, id); - sws_addVec(filter->chrV, id); - sws_freeVec(id); - } - - if (lumaSharpen != 0.0) { - SwsVector *id = sws_getIdentityVec(); - if (!id) - goto fail; - sws_scaleVec(filter->lumH, -lumaSharpen); - sws_scaleVec(filter->lumV, -lumaSharpen); - sws_addVec(filter->lumH, id); - sws_addVec(filter->lumV, id); - sws_freeVec(id); - } - - if (chromaHShift != 0.0) - sws_shiftVec(filter->chrH, (int)(chromaHShift + 0.5)); - - if (chromaVShift != 0.0) - sws_shiftVec(filter->chrV, (int)(chromaVShift + 0.5)); - - sws_normalizeVec(filter->chrH, 1.0); - sws_normalizeVec(filter->chrV, 1.0); - sws_normalizeVec(filter->lumH, 1.0); - sws_normalizeVec(filter->lumV, 1.0); - - if (isnan_vec(filter->chrH) || - isnan_vec(filter->chrV) || - isnan_vec(filter->lumH) || - isnan_vec(filter->lumV)) - goto fail; - - if (verbose) - sws_printVec2(filter->chrH, NULL, AV_LOG_DEBUG); - if (verbose) - sws_printVec2(filter->lumH, NULL, AV_LOG_DEBUG); - - return filter; - -fail: - sws_freeVec(filter->lumH); - sws_freeVec(filter->lumV); - sws_freeVec(filter->chrH); - sws_freeVec(filter->chrV); - av_freep(&filter); - return NULL; -} - SwsVector *sws_allocVec(int length) { SwsVector *vec; @@ -2417,6 +2327,89 @@ void sws_freeFilter(SwsFilter *filter) av_free(filter); } +SwsFilter *sws_getDefaultFilter(float lumaGBlur, float chromaGBlur, + float lumaSharpen, float chromaSharpen, + float chromaHShift, float chromaVShift, + int verbose) +{ + SwsFilter *filter = av_malloc(sizeof(SwsFilter)); + if (!filter) + return NULL; + + if (lumaGBlur != 0.0) { + filter->lumH = sws_getGaussianVec(lumaGBlur, 3.0); + filter->lumV = sws_getGaussianVec(lumaGBlur, 3.0); + } else { + filter->lumH = sws_getIdentityVec(); + filter->lumV = sws_getIdentityVec(); + } + + if (chromaGBlur != 0.0) { + filter->chrH = sws_getGaussianVec(chromaGBlur, 3.0); + filter->chrV = sws_getGaussianVec(chromaGBlur, 3.0); + } else { + filter->chrH = sws_getIdentityVec(); + filter->chrV = sws_getIdentityVec(); + } + + if (!filter->lumH || !filter->lumV || !filter->chrH || !filter->chrV) + goto fail; + + if (chromaSharpen != 0.0) { + SwsVector *id = sws_getIdentityVec(); + if (!id) + goto fail; + sws_scaleVec(filter->chrH, -chromaSharpen); + sws_scaleVec(filter->chrV, -chromaSharpen); + sws_addVec(filter->chrH, id); + sws_addVec(filter->chrV, id); + sws_freeVec(id); + } + + if (lumaSharpen != 0.0) { + SwsVector *id = sws_getIdentityVec(); + if (!id) + goto fail; + sws_scaleVec(filter->lumH, -lumaSharpen); + sws_scaleVec(filter->lumV, -lumaSharpen); + sws_addVec(filter->lumH, id); + sws_addVec(filter->lumV, id); + sws_freeVec(id); + } + + if (chromaHShift != 0.0) + sws_shiftVec(filter->chrH, (int)(chromaHShift + 0.5)); + + if (chromaVShift != 0.0) + sws_shiftVec(filter->chrV, (int)(chromaVShift + 0.5)); + + sws_normalizeVec(filter->chrH, 1.0); + sws_normalizeVec(filter->chrV, 1.0); + sws_normalizeVec(filter->lumH, 1.0); + sws_normalizeVec(filter->lumV, 1.0); + + if (isnan_vec(filter->chrH) || + isnan_vec(filter->chrV) || + isnan_vec(filter->lumH) || + isnan_vec(filter->lumV)) + goto fail; + + if (verbose) + sws_printVec2(filter->chrH, NULL, AV_LOG_DEBUG); + if (verbose) + sws_printVec2(filter->lumH, NULL, AV_LOG_DEBUG); + + return filter; + +fail: + sws_freeVec(filter->lumH); + sws_freeVec(filter->lumV); + sws_freeVec(filter->chrH); + sws_freeVec(filter->chrV); + av_freep(&filter); + return NULL; +} + void sws_freeContext(SwsContext *c) { int i; From patchwork Mon Nov 21 00:27:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39365 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp1816325pzb; Sun, 20 Nov 2022 16:27:23 -0800 (PST) X-Google-Smtp-Source: AA0mqf49UJaKCmrkNj//TgrfCva4COwh6I9G1K2PbtoC/wjN4VlqstW11GoVzofsLAncbcW9NSvG X-Received: by 2002:a05:6402:2024:b0:468:f633:9484 with SMTP id ay4-20020a056402202400b00468f6339484mr13087458edb.200.1668990443052; Sun, 20 Nov 2022 16:27:23 -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 q4-20020aa7cc04000000b00462847f2128si6877290edt.107.2022.11.20.16.27.22; Sun, 20 Nov 2022 16:27:23 -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=f1HRpxVo; 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 EAABA68BCC3; Mon, 21 Nov 2022 02:27:12 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075081.outbound.protection.outlook.com [40.92.75.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 74DD268BC91 for ; Mon, 21 Nov 2022 02:27:06 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Q9q/oZm2SS99B56ah2ibLc4+ADoWKqifuNkJj5Xfe59OFUH1wUfXC+6s0terGT6y/msidTQuG+xgmGXQgQl5f1JpAjhWjHFAcLBbPTe3RET9gkGyGipt/MDzVakzT4qoQF1m+36GpFmMPyX/9cb23whK2VbxGORSRkro0vhFYoGcRD5qyYROSLI6qZYIHdHc52jsdV9FWie1aKrqRgqPGubAbuL2YBjo2EUe5MvDD3oCmW5tK2NffZBHEoHrXT/HGZRJmpp4LxYCo2CP10cifijYymaw+bbbtpwwxJN8f5hCPW4mFeWZ3Ck1wUEOXUs0lKzNjMZXpW9RWVFjjaavMQ== 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=bkktqO3ecxhEujdf+nKiJQRJhU1GOVG9mxg4OfzPKts=; b=YlksgKpjJVan7xVm2XKAAVRFG6ha0R9TrDgpUUxQjQl+m6l8GFv8L/jGGwWttx9dW9InFYMLDkL4MROaRe+WORlVnPPXVG4D9Wdr57E0tDXCorByPS2y2VUxn/gShou++T3ZadcK0y/5eZI0ox/98wnNvgW9YW9MXzhH9KwUlxvCRg8dlDpIP+b9gia6spoNujU+yqKSu9tYuvnN0Flw1J6Xdbe/j3n/EsiweB8R8Qu7GFGF/hlIC0kwCc/GA451PfOAoskMPecrC65rlj6wGG/vuy5UC7IExsPh6oKaTfSpu7wRWVhvK+ZA/Obvnb18qDOz6Km4gBrHHqYBOmu4Eg== 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=bkktqO3ecxhEujdf+nKiJQRJhU1GOVG9mxg4OfzPKts=; b=f1HRpxVo4T+myGE/GfMJgzTVfWtsOPocLFPm0l0l89l8TloBsj6UX4fTmvtvsWfrhUj+9N0dv9gs348bMYxHTWCMkBY1YPGyXiJxC77ZgXOMN2kUgaYdNobVOwiADaDb4eyLKnQZN2Ts8IUJA0uggT2C2ino0O1mKYAK1TEFdzqr/Xy31L907ME0UJTeeCUp3jMrJPxEArfcyLYTyXL92SAAlns1V43lzMWQpBkBIo6paNNL/7vqpMtFn0RKeTQ5+Oo718QdanUJ3JKyhIANjXxEmwTPayOsioUGPCoK+xxGAi7ATVmeF4Uk+4E5eeLZ6A0FQZDLqs/WswKtMBxiDA== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AM8P250MB0198.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:325::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.9; Mon, 21 Nov 2022 00:26:54 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::c37:cabe:316a:60b2]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::c37:cabe:316a:60b2%4]) with mapi id 15.20.5834.011; Mon, 21 Nov 2022 00:26:54 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 21 Nov 2022 01:27:00 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [kRJKRcB+i6Dt/hDYB8GX+7FriCNcb98+inBqzUQr0zg=] X-ClientProxiedBy: FR3P281CA0100.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a1::18) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20221121002701.2127898-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AM8P250MB0198:EE_ X-MS-Office365-Filtering-Correlation-Id: 5548ddf5-484c-4c10-76b5-08dacb57172b X-MS-Exchange-SLBlob-MailProps: V85gaVfRD4+BTCB+fx/5Y4R/SiVbuItAmokgVv8ssEBFirsUM1pg07q7QaZYo4lnQBxELuhRObsTaQsohIW9t/m0Inig0Pozv7aU6PEJuBU64aRg4VSWmL95Baf7glpaHEp0906l0Exy8QCyO0PC1YUSifYZOlbGKf2pO1Gno02dZfQByOP1sgQxuKkeMmZ+PR5cmcDZMLyipr60BkqsFa08S2y6iD5Ih46cHMoy+/pHVpsf8nK8g9B3bAuGsRSFkC3ALxc2hG/ibq++PMFyKXkMMP/ROSiBYi/dWxIpkXYMcKABnACKARcUo0D2gOnFzec73S9I9IrYcNefYTm8hPxKjMXk/FCnJVEETbk0Xn8oL7V9jkr1L44ZA2XAc64mK8qXS0bqeNiHq7puA8vFLHK8btIqSNf+N2EuRYf7JoriDiT/tY8bqqBJxxhYQTuEZFLUPnbwe83HGRxzEvXdnMSC0iBVc47GvCdwkB0cXEhjlGSMPvQbYOBltznX3Iy7TSoEwnfPEQ2Yz5frAJnniqASwpUC2cy2+2pQhcc8h4PsYnCYukI8EH+rv+TLJJgdprJplgZvzTLJNdbhS3bTx8bCeD9dGtYKBcPefBmBfubeyYRu42IKKroKUX6LD5aUBNxQ8mp9da9xP8dcmzL2unV3isjpnas4N25hVVNB3eS9xwV5RMwRwzux8os0L5v7DEKYyqgzC6JcyznNqF0yCu/8MHxLflOLtgSOyFKaZ0noF5Yz9FbgvKzEp+NcgQ+XV179bswLYcRdzxqkdMPI28hTSQBR4OGhND1VPhAPjzH+4p6fvabgqzVZBylt1PH+pWhD7YqBlb0s5h/qni3mVg== X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EmfXq7jGrmGorTWkPSaigQhXLglqYy5q6URNcAi4a7WOKec1SLJwYK5eR/PRSWIbK7Cfvf4sKiXMuLUARB6MHRLep6UyIS4pqR1MW2IzOGWN2p/Td5wHeMIobVOusVHpaE+DrHDozg5PsmnTrwzoKe1oglV7Oz5K05nNmoTgx68C34hX/Y1GkBOaAEBZyDOCrzrUKNHQaJ2LQA25YxFr+AnPQskqNKNLxszCcbnZ1+eV87rHOgSO9tjgZAKQMXKo5O5vnYCHZDKRxpXhZflDfEnMY6VC35LSfD2RmED+NVtJcAUYAx7ooIFJ5zPi7W9z6mLWFN8GuZn5BtRSbDpFYN7owGn/tn0JXVRVbynTCemv3+NjCG3N7M2Ho8mXlk3n5hEoxOZL+hML97D4ELdnx7HvthSHI4JhR8kg1EVs94m/Pylo6dG2q9nQU2g7fnwC2h3EknFIk5e/C5ui1oIpuWXYr9pN6pl5GC4xuB/lAkZKYd1kmghK+Ct3a0LSkcgvnmItIfiKVCb8/ppA7BGpZxZiwgglgowq/72G5b2chxS3XWUi7br/XurhJ/Ym4LvE6m9nfSGVSla/Qm8v7PuxaoF2M6lgLdWpuxmjisSx0e+g9IDZfG07xC35FXHtPDKOqOfJ7hTKdomVQoHC//gt+VfkSLhw5xmqHzlhtXnsSW4= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 36gIQG+FrWkvs9lvbXp5oRgTGor7WJMG3XbeWbA0+An9Op8Yolf9zWoEYM43QitrvtS9EFECEEwz+9VheusoCYymYxPBOiWRQeNsrznwA2S+5/K5tG2+YgxwJqrZbPPUbHbF2hnfUi9Y5onleDQqx+i2eVlQ7D944T77Tip1+S2nvNrblPHBQ1nFXCtRjRKKHhlXRWuawfPZSDhhh8rlYY4o8668Sqj7bOQ7IVbRo7zjVxqmYSIqoXqAg2P9/ZuxvP04vL85GsZ+KdSe/KjTKewXJD/2JBOrKX71FkXdBldjYKevcgsnUUzTlR/ngchIIx/23vGa5ulOtvnE0i/uc+xPB8ayH71er36fZq88Mriu3devSNywm0T6zXJQIhhWYHVZzH64ezY3ptY6MX668GAPIRXk3tY6dm8dtrSiZoWN72fnfKrmXBQF27wlSWBxHZCG41W3FH1uOBq6yvi4YYDG7J7xRqoLVEhjbh8V4t7sT/th+Th6zn/5+3Twz5SHMkKUMjAU+Zehr8qJgYLl9xMMpPB3hDQePFUIhr/xB2HvEiSAC3CF1ErwJ6wuVXKhiL3J+edl2pYQkcKQ61kpxEYtgtAnQ3syUO/BeLfQBrn4nKvGHzVtog6yPhR6S93VvdrbbckaW5Rqvz0OMX2MHGcUDUuvSt1CeDXsCCMWafrAvhrdRpblDIo6fg/+e9Wrlyf2KAvIUeVzEXAzajXH/1PWyDcPeHcGYV9g+WBbU5JTR09rt/kfxxYgzIOklCFez9zw/8TgySxgxvkOpz4llsZ8DxrjXZlVfDu6qvCrkJEUp6O9qCB6/WVa6Vs6oYfV7tYihCqifpAnNSkkC1/pS7R5TGLMrP7mTDaHqHiVFbex2QFROddBVY7RCexdHFvrOu8lKjbad+fORDmW4ycFYF3LBYdSLwRuQi9PAd0ICzarC+bt6TfzqubGdB9k6BxlPOhELB213/PJHWLgz2Pl3yM9+AM5nG1de7h1SuEr2i4mu87kOmr7hf5Rnbvi8zjjUNo6TuCP964M6HY2SmqakJI4za23i+xURrKkkqKgcc6gi4N9qVyFKtlISBh/Y34LfJ569vEErY7OynaWdzPLIXlSyMbK/rUXm6fnIbpEueVp2tWyKjSnSxv1/rFjYsOAAD2XCRl6HQHjpp1Wrw0OZS6El7cZYHd95XUgEMKkzGtEiQChy3StZukCxiq3HmstTRLBF7OJjf+86O27zslNCgoraq3hj6KhpdWwn2l8MypwRnEC6TsaXcw4YYNUDXmvpzHQB2JaP7/gGmvHAdjdqz9S+lUG/0bfIxkKU00RrhWp0gvD1iR3YlOlGTytCcpx X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5548ddf5-484c-4c10-76b5-08dacb57172b X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2022 00:26:53.9539 (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: AM8P250MB0198 Subject: [FFmpeg-devel] [PATCH 5/6] swscale/utils: Derive range from YUVJ-pix-fmt only once 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: fSSSXgTZJzeD Currently, it is done once per slice-thread, leading to one warning per slice-thread in case a YUVJ pixel format has been originally used. This also fixes the anomaly that said parameter are only updated for the user-facing context (whose values are retrievable via av_opt_get()) if slice-threading is not in use. Signed-off-by: Andreas Rheinhardt --- libswscale/utils.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/libswscale/utils.c b/libswscale/utils.c index cdd89e4b58..5a728afd89 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -1277,8 +1277,7 @@ static av_cold int sws_init_single_context(SwsContext *c, SwsFilter *srcFilter, int dstH = c->dstH; int dst_stride = FFALIGN(dstW * sizeof(int16_t) + 66, 16); int flags, cpu_flags; - enum AVPixelFormat srcFormat = c->srcFormat; - enum AVPixelFormat dstFormat = c->dstFormat; + enum AVPixelFormat srcFormat, dstFormat; const AVPixFmtDescriptor *desc_src; const AVPixFmtDescriptor *desc_dst; int ret = 0; @@ -1291,12 +1290,6 @@ static av_cold int sws_init_single_context(SwsContext *c, SwsFilter *srcFilter, unscaled = (srcW == dstW && srcH == dstH); - c->srcRange |= handle_jpeg(&c->srcFormat); - c->dstRange |= handle_jpeg(&c->dstFormat); - - if(srcFormat!=c->srcFormat || dstFormat!=c->dstFormat) - av_log(c, AV_LOG_WARNING, "deprecated pixel format used, make sure you did set range correctly\n"); - if (!c->contrast && !c->saturation && !c->dstFormatBpp) sws_setColorspaceDetails(c, ff_yuv2rgb_coeffs[SWS_CS_DEFAULT], c->srcRange, ff_yuv2rgb_coeffs[SWS_CS_DEFAULT], @@ -2034,6 +2027,7 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, SwsFilter *dstFilter) { static AVOnce rgb2rgb_once = AV_ONCE_INIT; + enum AVPixelFormat src_format, dst_format; int ret; c->frame_src = av_frame_alloc(); @@ -2044,6 +2038,14 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, if (ff_thread_once(&rgb2rgb_once, ff_sws_rgb2rgb_init) != 0) return AVERROR_UNKNOWN; + src_format = c->srcFormat; + dst_format = c->dstFormat; + c->srcRange |= handle_jpeg(&c->srcFormat); + c->dstRange |= handle_jpeg(&c->dstFormat); + + if (src_format != c->srcFormat || dst_format != c->dstFormat) + av_log(c, AV_LOG_WARNING, "deprecated pixel format used, make sure you did set range correctly\n"); + if (c->nb_threads != 1) { ret = context_init_threaded(c, srcFilter, dstFilter); if (ret < 0 || c->nb_threads > 1) From patchwork Mon Nov 21 00:27:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39366 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp1816378pzb; Sun, 20 Nov 2022 16:27:31 -0800 (PST) X-Google-Smtp-Source: AA0mqf7CZqfxsF+SGUniBpVkO1S9Z49KHBw2VuMMyNp31on60qY81I+Fb6XbwV7oWzN0Pt80WSNV X-Received: by 2002:a17:906:5f87:b0:78d:8cf3:6ae with SMTP id a7-20020a1709065f8700b0078d8cf306aemr13697272eju.173.1668990451158; Sun, 20 Nov 2022 16:27:31 -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 gs9-20020a1709072d0900b007ae832c0b6bsi9673325ejc.508.2022.11.20.16.27.30; Sun, 20 Nov 2022 16:27:31 -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=rDFUZqlz; 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 DB29B68BCBD; Mon, 21 Nov 2022 02:27:17 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075081.outbound.protection.outlook.com [40.92.75.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 93AB768BCB1 for ; Mon, 21 Nov 2022 02:27:11 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RwlwJNvPU750kPGY+8wCrnmmJQqfGCO5QU7KK7jA5ihVLh+NQRyox1kM1WUuu5UROOmS9bMl9mdhFkUA9+xLJx1HIHOJOdNmMOHzyR39aGSenebI5DEMf+QP12KGe+PEPzZRZv/+rGojPHlalt6QwIdQvVKvHl25LKZu8ev16Goc57rNNXdtsLZ+xEqToYHUlN2hm8keE0A1mKG1sx1DDL0ygfQPhSoB5+qYcZmHYRN9wq6bQ/UGstMwt8jLemXYiCnQEtmnhZTcPOP97y2Wnq4z7qKlEwioIrkg2D/RiamaZ5IgGm0jY/iRJ+V18I6xfEJDJmPe8XUkyIiLGIaS/g== 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=l8DbzqWt0x57BHFoFzxkTDejqVz8sAynT8QO2BwSiKE=; b=all+FkfQvOSY2+fMO53YTWWz53yFwNDsBREgPFM0hJRvc3ck6Z7LJJoUPvcOTd5C9V4cEE8XCfWQ9sEcb4e0VVak+Bso8pesidUCJkibR+HJ+O0SlSkHfxvpFylHRC1v26JEG18HtSk93Wbug9tD4aXC2D9QEv7KCfidzNS0o6RoNY3blcLRg9CIL1NnmNaRJ1J/PpFrTSoLRzK+U9XTfem93s7aYsjcnzR2pW06MZuRafudHIFnHjcC1PkneRC2dEXItEgm6sRD5KpAr4Xc02VVQTUHoQVfDWrOqPvYtQQdGiolp4iGfgQk8LBWqwXXRWXhsITdvsU4ePMZon8a0Q== 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=l8DbzqWt0x57BHFoFzxkTDejqVz8sAynT8QO2BwSiKE=; b=rDFUZqlzDLw3fQZJgN+6BJ9z9Rg4pKVPYc3HhtvplxS7fAGNus2SW4dfUJuSyN61qtrXGTOGGtnkxN9yEJKce3VTiuxORlAfYkY7Ng0PlS3Nvsb3Au+pqAsdDDVslsFOwgWqnyX9JbrUuAwQqo3fB1+VQfdYD9jKewipIBlGfqnVov8yPflpJMLQ6cxzRmu0guc8x++Yyv6zl3ybRO7WTrOet4/cxrhk/Ay6qEX0RDjvIVvGQylQwZcMIoycHeZdhV47gaxLiJ9L9ICjwaR9Wqarr8xfGTg2qXhkqdcPJOiWSCej00W21NyuLoSbsYDNeGpOGkt16WTi70tJcXjjPw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AM8P250MB0198.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:325::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.9; Mon, 21 Nov 2022 00:26:55 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::c37:cabe:316a:60b2]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::c37:cabe:316a:60b2%4]) with mapi id 15.20.5834.011; Mon, 21 Nov 2022 00:26:55 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 21 Nov 2022 01:27:01 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [r+9dCtZp+dw0bmKe9tdgzetEJrMrLiPiDLNfFdOFtJw=] X-ClientProxiedBy: FR3P281CA0100.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a1::18) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20221121002701.2127898-5-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AM8P250MB0198:EE_ X-MS-Office365-Filtering-Correlation-Id: 9396678d-5e71-4d47-46af-08dacb5717f6 X-MS-Exchange-SLBlob-MailProps: AZnQBsB9Xmo0aNP8rr9jcnEY1WaRr0IF7W3wnlya5OEGz+5kkFtpYZUecNj0KQmkqr8PdTBVae3oazdHycv0L19Zg6gliMPjaQ+kwZNFIrkzIrFar2Y4APhyeG3zutTcS8B1DRpfDgQPqhxjGejcBlM2Y5rv+icNzdqwhRFc+dDv3H9gsqR8lLNHCrFQ76CXv0lyG0KUVTRRHvq138owETBVaDs8l+f0ll1gl0LU1+NZluKXd5TxmX1e4iGo/QC8YFZGKUfXl65lZnhFQniLiHQzcah8UeaFEtnrPPTRwoCNsfr/8oBGyGwqUqyhhV0C7Arp3jOCu5d0sOpR7kdxT4CGmjlT+c9fMm7+QNHP+yEMa3rr2BzIt/uJT2cT+smqbV2XZaPoiPm8kB8YcesNk+ljZhaNct8FRAMQ2ewkPpyjGPIYv/U/YfLnOlNS2qcN9meNFgNrimBIA0SXW7STPySZV2U12BvC1hcNs0kz1HPNjZj1hi7upbVHhoipbol94FO4CcydotitrMvFAi0Rlt6nJe2ZELMgtgoVjdxjOdOtguO8OPk7bUGdjBckYg58USgEsKxDr9uVQLLR1tnCYwDj5tU81C5GLpQFz6avY7ElhzBIVRkmt9NAOpgq+wNCXF8j9nMhBej4BOPewusOJK3XOzr6frOyDKammYRSuhV2RkC6D4C1t8q/j+zMuM8CmkmOQuWMfflVgd88cF/Fv9NCEnP9liFkuH2+mr8GXbw31Jzb5mtxyZ0l5XWrMrjPRu7Wh+8B0ls= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tNpLOGOoPSpMGJ+cRDlPwZvONt/jNWi6MlhcTElq34gNNwGUYfulP8kwSF01kmLDsjyXB6aWxRazHHGG40hy1rCGp5VHYvwxWl6Vy5Sk8wo0QBJPx9XNnOehCdhtVrj0aqqbJUeGNY8jLwb90DXfWGaWq9tPjzihsCrXfbFqbWUaBap41m89UD9ZFoMa5GvQokHDUYv159MEnbiZP0tbkhgR3zsOq7EYPTIJ19iYsRCz/FWhEqUaTg+qFsI1hov5RXlcrQVQ7lNAxe/1FwNgrFTt4jOvaCScAv+xQyw87hMbmCII9tp2Ix787pT5fZWd+fkEriZY/dACJmYPNMo3KzTzw+QAYWoSnZvuY/hja0Cvnba4Z7ULVjqShZ1apUHtTF1+bDplDBIw4kXspBXN+d7zO4pEB9vUv3DivNJi20GNsqdOZgokwFnxmHOShQausbVm3iYlBINw7wn+tPHWEvOEBmnOdSuEiQsSgyPHk5j1X9XTkRqzmMDXZfhbDhC3InN59MtPXZOvLG8foXu9AmWx1Ob2U3iqT3BYa+k6x9R7sWo3Z+esbpAc2jrjfxMjgjTDiBueVJT0J04fELgeKAkgm6zsj/iiMyiKqJn/1MxKug0LK5tEIvbCHhtlTtZgbCJGgHg3lIUyFUhy/vDKOA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: fqNFtO34Mi2XKaNWDdaNPKJbymN4h5jnUwQHvW8cUbZ+v/SIlgx8Og+kDt1vZR3hBk3I2e2b3VZ04xyqxeDhBYJKDSYaZbhBbVV6q9xMk2uo2dUFYiQEIos1W+OTwbsYG8qlf7I6ZOB6PfW6pEuV2Y0ZdDuy+Ij6CgCxzCP7G4Lr4nHdCavkIT09xWa0qtgtIsaljG+2RPFchTySnCCWiYpFr2i7drqgzSEMWYdjHAtYMlAqXF1efyAPyabug7RoQIh4/sSIIl8v+ioYj7J2nu3snMTK3V0ul/z7Kex5hfmFlKZUPWzP1Ca1UojaQnbQ4D8IMebtpG+GD66iBLTLbOMNUD8JC1Zl5L7nmY/os8W2ntaD4VL6DeY6X9C6TalOWNuWw2uSOeF/hgPLkDVSBlZZP88KmGRRtqvRZYhuPpTVLKpmzlCC3FOz+Nq8cJNeCiazVBnoithguyIKOebzejHu7ZTfmyyDfDjMkRHnJDJBYYrqe/PiInLKC4P2+Gva1p0gHHhgNfcFKkd/zQLvsJgXAytlHP+C2bsKqob3dSsgrSRE7ml7bYnVGAX/NbVw7Cu1YSvcFnb0mODBnhyc92c/BuqHr7waonm3MupnLZ2wBen01QxoViBAUlaXH+gxrnIDWbcqHQlMT/HHyDPOfki9jfGi9c5oyo0p0n82Bhbw8GhSvf9/TscprsWf0oSonPoWoZBga5Yec2bK7wmi8mP8ZlCL+P8RTY8IENIt9F+ZKpTBOepk9emo7mbGzIZoDJlCRRDKn0OG/H/KKSG+8dS3Xm87sr0hzCC6RiITOoj4BQpFTM+i31gZLQ8yB0DLesZdcvsg15D30/skiZiAv6SKeWNYTTJ4i7fxH7/E/vzINIRUBU5jJgdZsq357bLgcZw74CFyZmzf1QxogVTdHR15MNFY5JcaL5XrR93q/dtLXSCnJ5LcjATi60XvpbZ03h2C6S14K+XsZZtidWf9qMMYnVsYoKFtRR48PG5zOzFLHYFAiNzJiJm/2nsr5gMWGqZgRCwKwU3AxgNVuFKtRrU7zBNjgxFQyqrOZUWaQXRivJyEfzQmIDMKO8kobPTQe+kZYNMtIRFFovfwMmL64zt08QYSX8+/pzH8ESeuWSl5rcT19HfxEwDAK5F/r/gi5oHEtb0exW/Pj6dZcwtrRHJDYzXNXaF/oyvd2w6teq9itoUD+79l/OpzNJepD/rykgYgQa1jd9QQiqevgOqgpFcdKjIrcsA+fMzYdQETrOks8wBO4/NusgDpA+zxIDqCkTpxHgxm3PzDx/ZHZcyYlSuDV99ToQDLWD3LVsC9igF0jp+BOdT44DkJidQRCQFF X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9396678d-5e71-4d47-46af-08dacb5717f6 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2022 00:26:55.2517 (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: AM8P250MB0198 Subject: [FFmpeg-devel] [PATCH 6/6] swscale/utils: Fix indentation 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: qzOX7px7asfV Forgotten after c1eb3e7fecdc270e03a700d61ef941600a6af491. Signed-off-by: Andreas Rheinhardt --- libswscale/utils.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/libswscale/utils.c b/libswscale/utils.c index 5a728afd89..90734f66ef 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -1307,16 +1307,16 @@ static av_cold int sws_init_single_context(SwsContext *c, SwsFilter *srcFilter, if (!(unscaled && sws_isSupportedEndiannessConversion(srcFormat) && av_pix_fmt_swap_endianness(srcFormat) == dstFormat)) { - if (!sws_isSupportedInput(srcFormat)) { - av_log(c, AV_LOG_ERROR, "%s is not supported as input pixel format\n", - av_get_pix_fmt_name(srcFormat)); - return AVERROR(EINVAL); - } - if (!sws_isSupportedOutput(dstFormat)) { - av_log(c, AV_LOG_ERROR, "%s is not supported as output pixel format\n", - av_get_pix_fmt_name(dstFormat)); - return AVERROR(EINVAL); - } + if (!sws_isSupportedInput(srcFormat)) { + av_log(c, AV_LOG_ERROR, "%s is not supported as input pixel format\n", + av_get_pix_fmt_name(srcFormat)); + return AVERROR(EINVAL); + } + if (!sws_isSupportedOutput(dstFormat)) { + av_log(c, AV_LOG_ERROR, "%s is not supported as output pixel format\n", + av_get_pix_fmt_name(dstFormat)); + return AVERROR(EINVAL); + } } av_assert2(desc_src && desc_dst);