From patchwork Thu Nov 9 12:19:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 44584 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4fa4:b0:181:818d:5e7f with SMTP id gh36csp443925pzb; Thu, 9 Nov 2023 04:25:56 -0800 (PST) X-Google-Smtp-Source: AGHT+IEirLvncHLOw0OkitMIeWifZo51X2aTGhFe6coHnvZcINRzSRtrYl7zbGGBc52Yqln7Pze5 X-Received: by 2002:a50:d742:0:b0:540:3a46:cdcd with SMTP id i2-20020a50d742000000b005403a46cdcdmr3999104edj.29.1699532756573; Thu, 09 Nov 2023 04:25:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699532756; cv=none; d=google.com; s=arc-20160816; b=V7foJY3O1sGLj5Vth1vEaeOydKGDW+/RFTMboqLTeqT57D9sgJvO4ApUCvbWQjQX3u XIxsPidtZUTvwijGaQX/59fBo7yopPFerN0GGq0CP/0RHztnZgE77MO/p10MbArXWRXv xj+Ji4TcaoAbdqyXQgKB/SlG41MUz4zpNaE8EpVle2DNN9cuqjs3SRiR2SXODJmlc5nS c9y8aykK3Se6uy3KELYV03QIDg+pr/CpJJjaQ/I/5TrOxMdaY/smgqtO4YDYrEwlH56N Piz9Ba5dQpEMMZpDGz51tjlEoSJNorTXQ+wyoaoLWWjKDnUsacQsf2dWfvI1PdzXnoUJ qKvg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=yAyWAYZUmL2E/MOrhXnQoFI0lf+cgWv2lD+Lz6PiQiQ=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=qMN9tsmro00+KiE9Z47C8jsfOA6xHnz17KwLby95EJuR+gyFNYT59Va/j9I//wyhJp sa8uyowv2uPOrjiZ2R8e8SGm9zNIsmByzaQ0Ljcz/aMNcxdeDT79x3Nr/YtMDOrw5Z7x OkE7LUrNLYc2mKXjcGql0+At0TkHNjmuAfivz7DCZmBIH9cdK3qf8thtJj6Djnlp0dWm w0yE54usJmCofbl3czd/CIZvFICCse6/A3lcF2YqFOgFaczdt69dyZNBtnDDTGIroX/T jxTPE1B0vzMt0a3nmPHABHd45ut5BswPFVbp7y6AjJQGwiBZkcFXstYMnSxkvNZRx5fj Z8LQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b=BsSUHPwx; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id r17-20020a05640251d100b0053e1cb26246si7539526edd.141.2023.11.09.04.25.46; Thu, 09 Nov 2023 04:25:56 -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=@haasn.xyz header.s=mail header.b=BsSUHPwx; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D722768CBE3; Thu, 9 Nov 2023 14:25:43 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B217468CB8B for ; Thu, 9 Nov 2023 14:25:36 +0200 (EET) Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id D82E04361F; Thu, 9 Nov 2023 13:25:35 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1699532735; bh=y4Ns9rwvUK0N8S6GABrTRbeeghSR0jL6bwnzkF7Bvuk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BsSUHPwxD/ncsD83KCg4ERFqOzUndXykeyNPzBqp9ULCRCPQWHgMc6oj2kyrZatE9 MXG/0GfdOt1C6FdPIZmdQGvujoshySgHlSOX4F6YzKrySZfMONz8p1bOYEQHWOtIpr S+ax3dx7objJsu2PGSaPji+HSKJIAX55PX6QJiV4= From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Thu, 9 Nov 2023 13:19:33 +0100 Message-ID: <20231109122534.124157-2-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231109122534.124157-1-ffmpeg@haasn.xyz> References: <20231109122534.124157-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 01/25] avfilter/formats: document ff_default_query_formats 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: Niklas Haas Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: YGabCUyTammO From: Niklas Haas In particular, make it clear that this function will not touch format lists which were already set by the caller before calling into this function. --- libavfilter/formats.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libavfilter/formats.h b/libavfilter/formats.h index 22224dce2d..d44890109e 100644 --- a/libavfilter/formats.h +++ b/libavfilter/formats.h @@ -198,6 +198,10 @@ void ff_channel_layouts_unref(AVFilterChannelLayouts **ref); void ff_channel_layouts_changeref(AVFilterChannelLayouts **oldref, AVFilterChannelLayouts **newref); +/** + * Sets all remaining unset filter lists for all inputs/outputs to their + * corresponding `ff_all_*()` lists. + */ av_warn_unused_result int ff_default_query_formats(AVFilterContext *ctx); From patchwork Thu Nov 9 12:19:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 44585 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4fa4:b0:181:818d:5e7f with SMTP id gh36csp444024pzb; Thu, 9 Nov 2023 04:26:06 -0800 (PST) X-Google-Smtp-Source: AGHT+IHpbP1E3wbc46hzVTFXI7tUjuOZPBb4rYAhN8xLeOqhOUhYcpx/cPzCP8m+F/qwWAQMaLMV X-Received: by 2002:a50:c019:0:b0:543:5293:9a81 with SMTP id r25-20020a50c019000000b0054352939a81mr4170040edb.8.1699532766476; Thu, 09 Nov 2023 04:26:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699532766; cv=none; d=google.com; s=arc-20160816; b=F+6Nm79GK2Lth5zXGnn8tmcirFa87XtJ1ZAoUuzLWyicPQfCR/v3xkavbgw95AjgfZ FNoJsq/G6LG0V/vSOMhDKxs1mz9d0DQF/qYfQkdWOUhlus14c5N8r/EsTJMzzW9ewYYR +yqJGqwHwh2tICgGI4cSIte90IXVjNvRFoRahuOTQHJe0HOFSaV9sIF/iT39TKX+3OH6 UJuixMxPLX7WLai6NVo12DGgPnVWN8119meSR6CDJQidFFrZRV3qqN4GBh1wJaiIv4wh BgUVhBQ2FkyUaDShy2bdoHAciyXIqx/ZjI4TjromSB9XOPe2skVdeZ6C/kF5eHpOj3bG JRQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=o+oK6dSB0mBMFt5PrwdT4OE7SIQOSZKM9Xn0MlhZ8YQ=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=pGi2JUwAFE+G8Ov31gzPpfh97kVqM1VJ7/WYZJK2K3nA65aNBly3cTimHx6EgyAR0b H7aMpSsZMQja7zXUwjh8LoeL1C3n1s/LQTRhIJWPdnA0qh7gYS1Kt0NXgTMCoy1oyEzO 99LEg83s+UH+im/HKqsedFrXugka3bf2Hmb5HRY/9Wgr/ocM4D85xQZNJCaxO3JNSs5R pHzrHW22bpa8SK1y15BU7L/rhHOGL2q0czeS8hSjjjPTQpe566wnBqJBtF0bTSO12zoX K0X9OCZ70JPZk56T+T5+DuDN37mR9Sa07Y0Vaazr32HUMk6mjp4wYw49mhQgIPp8t0Jz 9K8A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b=E0A2beZl; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id q17-20020a056402519100b0053f9371b60esi8219819edd.274.2023.11.09.04.26.06; Thu, 09 Nov 2023 04:26:06 -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=@haasn.xyz header.s=mail header.b=E0A2beZl; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E6EA368CBDD; Thu, 9 Nov 2023 14:25:45 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B61B668CBCB for ; Thu, 9 Nov 2023 14:25:36 +0200 (EET) Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id 1ECEE4B527; Thu, 9 Nov 2023 13:25:36 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1699532736; bh=Fge18/bG4h1ilIXmC0znakqn+wW+wSSmGOPKLQkFG3c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=E0A2beZl5FIF8iXMyLvTmebQGYfkiBNqyyCYcfjqh2uXN/c2BKVLZFCPkxRTJGEZd yFDTX0JIe8NKhDbZjaViBb+VHrEmdfsTB1/tb86ofpS4ShY1H+tGhIu/ngWFqqFBf/ ZoiwQ5WqY7TUvw1wAcgO+pScGigvvdg8OpTDF0Bs= From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Thu, 9 Nov 2023 13:19:34 +0100 Message-ID: <20231109122534.124157-3-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231109122534.124157-1-ffmpeg@haasn.xyz> References: <20231109122534.124157-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 02/25] avfilter: always call ff_default_query_formats 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: Niklas Haas Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 6LgJiUvcdC11 From: Niklas Haas Even if a query func is set. This is safe to do, because ff_default_query_formats is documented not to touch any filter lists that were already set by the query func. The reason to do this is because it allows us to extend AVFilterFormatsConfig without having to touch every filter in existence. An alternative implementation of this commit would be to explicitly add a `ff_default_query_formats` call at the end of every query_formats function, but that would end up functionally equivalent to this change while touching a whole lot more code paths for no reason. As a bonus, eliminates some code/logic duplication from this function. --- libavfilter/avfiltergraph.c | 39 ++++++++++++------------------------- 1 file changed, 12 insertions(+), 27 deletions(-) diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c index 68daa93e61..625cbc022e 100644 --- a/libavfilter/avfiltergraph.c +++ b/libavfilter/avfiltergraph.c @@ -341,33 +341,21 @@ static int filter_check_formats(AVFilterContext *ctx) static int filter_query_formats(AVFilterContext *ctx) { int ret; - AVFilterFormats *formats; - AVFilterChannelLayouts *chlayouts; - enum AVMediaType type = ctx->inputs && ctx->inputs [0] ? ctx->inputs [0]->type : - ctx->outputs && ctx->outputs[0] ? ctx->outputs[0]->type : - AVMEDIA_TYPE_VIDEO; - - if ((ret = ctx->filter->formats.query_func(ctx)) < 0) { - if (ret != AVERROR(EAGAIN)) - av_log(ctx, AV_LOG_ERROR, "Query format failed for '%s': %s\n", - ctx->name, av_err2str(ret)); - return ret; - } - ret = filter_check_formats(ctx); - if (ret < 0) - return ret; - formats = ff_all_formats(type); - if ((ret = ff_set_common_formats(ctx, formats)) < 0) - return ret; - if (type == AVMEDIA_TYPE_AUDIO) { - if ((ret = ff_set_common_all_samplerates(ctx)) < 0) + if (ctx->filter->formats_state == FF_FILTER_FORMATS_QUERY_FUNC) { + if ((ret = ctx->filter->formats.query_func(ctx)) < 0) { + if (ret != AVERROR(EAGAIN)) + av_log(ctx, AV_LOG_ERROR, "Query format failed for '%s': %s\n", + ctx->name, av_err2str(ret)); return ret; - chlayouts = ff_all_channel_layouts(); - if ((ret = ff_set_common_channel_layouts(ctx, chlayouts)) < 0) + } + + ret = filter_check_formats(ctx); + if (ret < 0) return ret; } - return 0; + + return ff_default_query_formats(ctx); } static int formats_declared(AVFilterContext *f) @@ -416,10 +404,7 @@ static int query_formats(AVFilterGraph *graph, void *log_ctx) AVFilterContext *f = graph->filters[i]; if (formats_declared(f)) continue; - if (f->filter->formats_state == FF_FILTER_FORMATS_QUERY_FUNC) - ret = filter_query_formats(f); - else - ret = ff_default_query_formats(f); + ret = filter_query_formats(f); if (ret < 0 && ret != AVERROR(EAGAIN)) return ret; /* note: EAGAIN could indicate a partial success, not counted yet */ From patchwork Thu Nov 9 12:19:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 44586 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4fa4:b0:181:818d:5e7f with SMTP id gh36csp444115pzb; Thu, 9 Nov 2023 04:26:17 -0800 (PST) X-Google-Smtp-Source: AGHT+IE2bf/w2aalswme76HFJGDWhP5UsC7hWgLpJw8PRjbLSEseVda1RYrBIF38Q5BFpLCWH9Qz X-Received: by 2002:a17:906:4a53:b0:9e5:1db7:31b1 with SMTP id a19-20020a1709064a5300b009e51db731b1mr859557ejv.2.1699532776684; Thu, 09 Nov 2023 04:26:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699532776; cv=none; d=google.com; s=arc-20160816; b=hA/dRFFPF5RRKzUHBWTtONVetAo2FP1b8QQjTVlkqNuf9TxEmcMFVpCds0jBllQc4e Q5VGp7F1lwG4f0Ii3+XpECDOnnxinPn3LzRSoGSpky/sRWmlosFn8iJnpgUVVaOl+tOR uN8xnckfrGz57EX9X057d+UNNVB1yDUGaPyaaA2HHTVsoCLh35HN2Tv37rutHTlkF5KE tvi3g2vCnTWguTeptNqADqRki6vtM7au6Udk5Pul5yWYGOBpdJun8oqem009EF/vOtXb YBDz4RosRFjZ9wRNJ4aQBo7Yedqa4f7ls322o9fygu1+yYjdJ8i07WSbE6neksRN5VF1 sJ8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=Cia8Zrsp6vCRlnuZcbXEStKohZG1F4wazR9PjhDGjAs=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=qAGIP4C61nPf7gUAv5NjdNrvuTAOVz5dTdkfyVH44KFgYkq4kM3y88JS6xrUnkjlQ9 ctNmIwofQZkE5bxixz23c877KFBxVoO49Qx7wfhjM9DAsXFR9+hs0bhNPkZr1gARDIAW 9O5BCWXqbRfquPhQanoYXtAJuzcbc7NPpziEPuvJijCbR5TmsnKRNGBFcY1viHozgUyQ WL8FDCXSW7gqNOpj0+A1Kanlk41IAjg/nui1Kw+hwOpTN9wBVnFRdmEQUBIsuxEXxuoT 4faDprvL5et6zOShRQ/F0tcmbrphHb250teX5ZSmGrwQtkWhd/jE+NRBlwTQkSs3M8IG ykrg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b=qYR4yu15; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id gs20-20020a1709072d1400b009e067db343asi3281145ejc.17.2023.11.09.04.26.16; Thu, 09 Nov 2023 04:26:16 -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=@haasn.xyz header.s=mail header.b=qYR4yu15; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 198EC68CC47; Thu, 9 Nov 2023 14:25:47 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B880368CBCE for ; Thu, 9 Nov 2023 14:25:36 +0200 (EET) Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id 64B2C4BB08; Thu, 9 Nov 2023 13:25:36 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1699532736; bh=jVQS4Dpm8Db1UWVb5GAlvFel55WRJzuVWjB9Oa/95Lk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qYR4yu153RN9U3P6ecP9Fll0gtYPsO77G+ZVTHkZNnEiONkZGfRAFTIHMJ/FobAQC T5Fdq0rEWxiQ4WPT87aWEsJinDvuD4gMWmxgIuU/d54BxjA4QPz5RuOyveBLauUnlT mp3yjbKJo73XzDIjcJ/l4lIwWDBrMErA9T2/hhMc= From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Thu, 9 Nov 2023 13:19:35 +0100 Message-ID: <20231109122534.124157-4-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231109122534.124157-1-ffmpeg@haasn.xyz> References: <20231109122534.124157-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 03/25] avfilter: add negotiation API for color space/range 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: Niklas Haas Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: QS11yPy44xr3 From: Niklas Haas Motivated by YUVJ removal. This change will allow full negotiation between color ranges and matrices as needed. By default, all ranges and matrices are marked as supported. Because grayscale formats are currently handled very inconsistently (and in particular, assumed as forced full-range by swscale), we exclude them from negotiation altogether for the time being, to get this API merged. After filter negotiation is available, we can relax the grayscale-is-forced-jpeg restriction again, when it will be more feasible to do so without breaking a million test cases. Note that this commit updates one FATE test as a consequence of the sanity fallback for non-YUV formats. In particular, the test case now writes rgb24(pc, gbr/unspecified/unspecified) to the matroska file, instead of rgb24(unspecified/unspecified/unspecified) as before. --- doc/APIchanges | 8 ++ libavfilter/avfilter.c | 19 ++++- libavfilter/avfilter.h | 28 ++++++ libavfilter/avfiltergraph.c | 166 +++++++++++++++++++++++++++++++++++- libavfilter/formats.c | 122 +++++++++++++++++++++++++- libavfilter/formats.h | 54 ++++++++++++ libavfilter/internal.h | 6 ++ libavfilter/vaapi_vpp.c | 4 + libavfilter/version.h | 2 +- libavfilter/video.c | 2 + tests/ref/fate/shortest-sub | 4 +- 11 files changed, 405 insertions(+), 10 deletions(-) diff --git a/doc/APIchanges b/doc/APIchanges index 12383a28d3..ce3f90a674 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -2,6 +2,14 @@ The last version increases of all libraries were on 2023-02-09 API changes, most recent first: +2023-11-xx - xxxxxxxxxx - lavf 58.14.100 - avfilter.h formats.h + Add AVFilterFormatsConfig.color_spaces, AVFilterFormatsConfig.color_ranges, + AVFilterLink.colorspace, AVFilterLink.color_range, ff_all_color_spaces, + ff_all_color_ranges, ff_set_common_color_spaces, ff_set_common_color_ranges, + ff_set_common_color_spaces_from_list, ff_set_common_color_ranges_from_list, + ff_set_common_all_color_spaces, ff_set_common_all_color_ranges, + ff_formats_check_color_spaces, ff_formats_check_color_ranges. + 2023-11-08 - xxxxxxxxxx - lavu 58.32.100 - channel_layout.h Add AV_CH_LAYOUT_7POINT2POINT3 and AV_CHANNEL_LAYOUT_7POINT2POINT3. Add AV_CH_LAYOUT_9POINT1POINT4_BACK and AV_CHANNEL_LAYOUT_9POINT1POINT4_BACK. diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index ab7782862a..77bfec00c5 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -185,6 +185,7 @@ int avfilter_link(AVFilterContext *src, unsigned srcpad, link->type = src->output_pads[srcpad].type; av_assert0(AV_PIX_FMT_NONE == -1 && AV_SAMPLE_FMT_NONE == -1); link->format = -1; + link->colorspace = AVCOL_SPC_UNSPECIFIED; ff_framequeue_init(&link->fifo, &src->graph->internal->frame_queues); return 0; @@ -286,6 +287,12 @@ int avfilter_insert_filter(AVFilterLink *link, AVFilterContext *filt, if (link->outcfg.formats) ff_formats_changeref(&link->outcfg.formats, &filt->outputs[filt_dstpad_idx]->outcfg.formats); + if (link->outcfg.color_spaces) + ff_formats_changeref(&link->outcfg.color_spaces, + &filt->outputs[filt_dstpad_idx]->outcfg.color_spaces); + if (link->outcfg.color_ranges) + ff_formats_changeref(&link->outcfg.color_ranges, + &filt->outputs[filt_dstpad_idx]->outcfg.color_ranges); if (link->outcfg.samplerates) ff_formats_changeref(&link->outcfg.samplerates, &filt->outputs[filt_dstpad_idx]->outcfg.samplerates); @@ -730,6 +737,10 @@ static void free_link(AVFilterLink *link) ff_formats_unref(&link->incfg.formats); ff_formats_unref(&link->outcfg.formats); + ff_formats_unref(&link->incfg.color_spaces); + ff_formats_unref(&link->outcfg.color_spaces); + ff_formats_unref(&link->incfg.color_ranges); + ff_formats_unref(&link->outcfg.color_ranges); ff_formats_unref(&link->incfg.samplerates); ff_formats_unref(&link->outcfg.samplerates); ff_channel_layouts_unref(&link->incfg.channel_layouts); @@ -987,9 +998,11 @@ int ff_filter_frame(AVFilterLink *link, AVFrame *frame) strcmp(link->dst->filter->name, "idet") && strcmp(link->dst->filter->name, "null") && strcmp(link->dst->filter->name, "scale")) { - av_assert1(frame->format == link->format); - av_assert1(frame->width == link->w); - av_assert1(frame->height == link->h); + av_assert1(frame->format == link->format); + av_assert1(frame->width == link->w); + av_assert1(frame->height == link->h); + av_assert1(frame->colorspace == link->color_space); + av_assert1(frame->color_range == link->color_range); } frame->sample_aspect_ratio = link->sample_aspect_ratio; diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h index d69381aed4..246d000251 100644 --- a/libavfilter/avfilter.h +++ b/libavfilter/avfilter.h @@ -301,6 +301,14 @@ typedef struct AVFilter { * @ref AVFilterFormatsConfig.formats "incfg.formats" * on every output link to a list of pixel/sample formats that the filter * supports on that link. + * For video links, this filter may also set + * @ref AVFilterFormatsConfig.color_spaces "incfg.color_spaces" + * / + * @ref AVFilterFormatsConfig.color_spaces "outcfg.color_spaces" + * and @ref AVFilterFormatsConfig.color_ranges "incfg.color_ranges" + * / + * @ref AVFilterFormatsConfig.color_ranges "outcfg.color_ranges" + * analogously. * For audio links, this filter must also set * @ref AVFilterFormatsConfig.samplerates "incfg.samplerates" * / @@ -322,6 +330,10 @@ typedef struct AVFilter { * to indicate that this filter supports each of these pixel formats, * provided that all inputs and outputs use the same pixel format. * + * In addition to that the generic code will mark all inputs + * and all outputs as supporting all color spaces and ranges, as + * long as all inputs and outputs use the same color space/range. + * * This list must never be NULL if the union is in this state. * The type of all inputs and outputs of filters using this must * be AVMEDIA_TYPE_VIDEO. @@ -514,6 +526,12 @@ typedef struct AVFilterFormatsConfig { */ AVFilterChannelLayouts *channel_layouts; + /** + * Lists of supported YUV color metadata, only for YUV video. + */ + AVFilterFormats *color_spaces; ///< AVColorSpace + AVFilterFormats *color_ranges; ///< AVColorRange + } AVFilterFormatsConfig; /** @@ -565,6 +583,16 @@ struct AVFilterLink { AVChannelLayout ch_layout; ///< channel layout of current buffer (see libavutil/channel_layout.h) + /** + * For non-YUV links, these are respectively set to fallback values (as + * appropriate for that colorspace). + * + * Note: This includes grayscale formats, as these are currently treated + * as forced full range always. + */ + enum AVColorSpace colorspace; ///< agreed upon YUV color space + enum AVColorRange color_range; ///< agreed upon YUV color range + /***************************************************************** * All fields below this line are not part of the public API. They * may not be used outside of libavfilter and can be changed and diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c index 625cbc022e..e7fabe85ea 100644 --- a/libavfilter/avfiltergraph.c +++ b/libavfilter/avfiltergraph.c @@ -298,7 +298,9 @@ static int filter_link_check_formats(void *log, AVFilterLink *link, AVFilterForm switch (link->type) { case AVMEDIA_TYPE_VIDEO: - if ((ret = ff_formats_check_pixel_formats(log, cfg->formats)) < 0) + if ((ret = ff_formats_check_pixel_formats(log, cfg->formats)) < 0 || + (ret = ff_formats_check_color_spaces(log, cfg->color_spaces)) < 0 || + (ret = ff_formats_check_color_ranges(log, cfg->color_ranges)) < 0) return ret; break; @@ -365,6 +367,10 @@ static int formats_declared(AVFilterContext *f) for (i = 0; i < f->nb_inputs; i++) { if (!f->inputs[i]->outcfg.formats) return 0; + if (f->inputs[i]->type == AVMEDIA_TYPE_VIDEO && + !(f->inputs[i]->outcfg.color_ranges && + f->inputs[i]->outcfg.color_spaces)) + return 0; if (f->inputs[i]->type == AVMEDIA_TYPE_AUDIO && !(f->inputs[i]->outcfg.samplerates && f->inputs[i]->outcfg.channel_layouts)) @@ -373,6 +379,10 @@ static int formats_declared(AVFilterContext *f) for (i = 0; i < f->nb_outputs; i++) { if (!f->outputs[i]->incfg.formats) return 0; + if (f->outputs[i]->type == AVMEDIA_TYPE_VIDEO && + !(f->outputs[i]->incfg.color_ranges && + f->outputs[i]->incfg.color_spaces)) + return 0; if (f->outputs[i]->type == AVMEDIA_TYPE_AUDIO && !(f->outputs[i]->incfg.samplerates && f->outputs[i]->incfg.channel_layouts)) @@ -493,7 +503,16 @@ static int query_formats(AVFilterGraph *graph, void *log_ctx) av_assert0( inlink->outcfg.formats->refcount > 0); av_assert0(outlink->incfg.formats->refcount > 0); av_assert0(outlink->outcfg.formats->refcount > 0); - if (outlink->type == AVMEDIA_TYPE_AUDIO) { + if (outlink->type == AVMEDIA_TYPE_VIDEO) { + av_assert0( inlink-> incfg.color_spaces->refcount > 0); + av_assert0( inlink->outcfg.color_spaces->refcount > 0); + av_assert0(outlink-> incfg.color_spaces->refcount > 0); + av_assert0(outlink->outcfg.color_spaces->refcount > 0); + av_assert0( inlink-> incfg.color_ranges->refcount > 0); + av_assert0( inlink->outcfg.color_ranges->refcount > 0); + av_assert0(outlink-> incfg.color_ranges->refcount > 0); + av_assert0(outlink->outcfg.color_ranges->refcount > 0); + } else if (outlink->type == AVMEDIA_TYPE_AUDIO) { av_assert0( inlink-> incfg.samplerates->refcount > 0); av_assert0( inlink->outcfg.samplerates->refcount > 0); av_assert0(outlink-> incfg.samplerates->refcount > 0); @@ -583,6 +602,29 @@ static enum AVSampleFormat find_best_sample_fmt_of_2(enum AVSampleFormat dst_fmt return score1 < score2 ? dst_fmt1 : dst_fmt2; } +int ff_fmt_is_regular_yuv(enum AVPixelFormat fmt) +{ + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(fmt); + if (!desc) + return 0; + if (desc->nb_components < 3) + return 0; /* Grayscale is explicitly full-range in swscale */ + if (desc->flags & (AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_PAL | + AV_PIX_FMT_FLAG_XYZ | AV_PIX_FMT_FLAG_FLOAT)) + return 0; + + switch (fmt) { + case AV_PIX_FMT_YUVJ420P: + case AV_PIX_FMT_YUVJ422P: + case AV_PIX_FMT_YUVJ444P: + case AV_PIX_FMT_YUVJ440P: + case AV_PIX_FMT_YUVJ411P: + return 0; + default: + return 1; + } +} + static int pick_format(AVFilterLink *link, AVFilterLink *ref) { if (!link || !link->incfg.formats) @@ -603,6 +645,7 @@ static int pick_format(AVFilterLink *link, AVFilterLink *ref) av_get_pix_fmt_name(ref->format), has_alpha); link->incfg.formats->formats[0] = best; } + } else if (link->type == AVMEDIA_TYPE_AUDIO) { if(ref && ref->type == AVMEDIA_TYPE_AUDIO){ enum AVSampleFormat best= AV_SAMPLE_FMT_NONE; @@ -621,7 +664,40 @@ static int pick_format(AVFilterLink *link, AVFilterLink *ref) link->incfg.formats->nb_formats = 1; link->format = link->incfg.formats->formats[0]; - if (link->type == AVMEDIA_TYPE_AUDIO) { + if (link->type == AVMEDIA_TYPE_VIDEO) { + if (!ff_fmt_is_regular_yuv(link->format)) { + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(link->format); + /* These fields are explicitly documented as affecting YUV only, + * so set them to sane values for other formats. */ + if (desc->flags & AV_PIX_FMT_FLAG_FLOAT) + link->color_range = AVCOL_RANGE_UNSPECIFIED; + else + link->color_range = AVCOL_RANGE_JPEG; + if (desc->flags & (AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_XYZ)) { + link->colorspace = AVCOL_SPC_RGB; + } else { + link->colorspace = AVCOL_SPC_UNSPECIFIED; + } + } else { + if (!link->incfg.color_spaces->nb_formats) { + av_log(link->src, AV_LOG_ERROR, "Cannot select color space for" + " the link between filters %s and %s.\n", link->src->name, + link->dst->name); + return AVERROR(EINVAL); + } + link->incfg.color_spaces->nb_formats = 1; + link->colorspace = link->incfg.color_spaces->formats[0]; + + if (!link->incfg.color_ranges->nb_formats) { + av_log(link->src, AV_LOG_ERROR, "Cannot select color range for" + " the link between filters %s and %s.\n", link->src->name, + link->dst->name); + return AVERROR(EINVAL); + } + link->incfg.color_ranges->nb_formats = 1; + link->color_range = link->incfg.color_ranges->formats[0]; + } + } else if (link->type == AVMEDIA_TYPE_AUDIO) { int ret; if (!link->incfg.samplerates->nb_formats) { @@ -661,6 +737,10 @@ FF_ENABLE_DEPRECATION_WARNINGS ff_formats_unref(&link->outcfg.samplerates); ff_channel_layouts_unref(&link->incfg.channel_layouts); ff_channel_layouts_unref(&link->outcfg.channel_layouts); + ff_formats_unref(&link->incfg.color_spaces); + ff_formats_unref(&link->outcfg.color_spaces); + ff_formats_unref(&link->incfg.color_ranges); + ff_formats_unref(&link->outcfg.color_ranges); return 0; } @@ -822,6 +902,82 @@ static void swap_samplerates(AVFilterGraph *graph) swap_samplerates_on_filter(graph->filters[i]); } +static void swap_color_spaces_on_filter(AVFilterContext *filter) +{ + AVFilterLink *link = NULL; + enum AVColorSpace csp; + int i; + + for (i = 0; i < filter->nb_inputs; i++) { + link = filter->inputs[i]; + if (link->type == AVMEDIA_TYPE_VIDEO && + link->outcfg.color_spaces->nb_formats == 1) + break; + } + if (i == filter->nb_inputs) + return; + + csp = link->outcfg.color_spaces->formats[0]; + + for (i = 0; i < filter->nb_outputs; i++) { + AVFilterLink *outlink = filter->outputs[i]; + if (outlink->type != AVMEDIA_TYPE_VIDEO) + continue; + /* there is no meaningful 'score' between different yuv matrices, + * so just prioritize an exact match if it exists */ + for (int j = 0; j < outlink->incfg.color_spaces->nb_formats; j++) { + if (csp == outlink->incfg.color_spaces->formats[j]) { + FFSWAP(int, outlink->incfg.color_spaces->formats[0], + outlink->incfg.color_spaces->formats[j]); + break; + } + } + } +} + +static void swap_color_spaces(AVFilterGraph *graph) +{ + for (int i = 0; i < graph->nb_filters; i++) + swap_color_spaces_on_filter(graph->filters[i]); +} + +static void swap_color_ranges_on_filter(AVFilterContext *filter) +{ + AVFilterLink *link = NULL; + enum AVColorRange range; + int i; + + for (i = 0; i < filter->nb_inputs; i++) { + link = filter->inputs[i]; + if (link->type == AVMEDIA_TYPE_VIDEO && + link->outcfg.color_ranges->nb_formats == 1) + break; + } + if (i == filter->nb_inputs) + return; + + range = link->outcfg.color_ranges->formats[0]; + + for (i = 0; i < filter->nb_outputs; i++) { + AVFilterLink *outlink = filter->outputs[i]; + if (outlink->type != AVMEDIA_TYPE_VIDEO) + continue; + for (int j = 0; j < outlink->incfg.color_ranges->nb_formats; j++) { + if (range == outlink->incfg.color_ranges->formats[j]) { + FFSWAP(int, outlink->incfg.color_ranges->formats[0], + outlink->incfg.color_ranges->formats[j]); + break; + } + } + } +} + +static void swap_color_ranges(AVFilterGraph *graph) +{ + for (int i = 0; i < graph->nb_filters; i++) + swap_color_ranges_on_filter(graph->filters[i]); +} + #define CH_CENTER_PAIR (AV_CH_FRONT_LEFT_OF_CENTER | AV_CH_FRONT_RIGHT_OF_CENTER) #define CH_FRONT_PAIR (AV_CH_FRONT_LEFT | AV_CH_FRONT_RIGHT) #define CH_STEREO_PAIR (AV_CH_STEREO_LEFT | AV_CH_STEREO_RIGHT) @@ -1098,6 +1254,10 @@ static int graph_config_formats(AVFilterGraph *graph, void *log_ctx) if ((ret = reduce_formats(graph)) < 0) return ret; + /* for video filters, ensure that the best colorspace metadata is selected */ + swap_color_spaces(graph); + swap_color_ranges(graph); + /* for audio filters, ensure the best format, sample rate and channel layout * is selected */ swap_sample_fmts(graph); diff --git a/libavfilter/formats.c b/libavfilter/formats.c index d1c97daf64..20f00d2db4 100644 --- a/libavfilter/formats.c +++ b/libavfilter/formats.c @@ -321,12 +321,46 @@ static int merge_channel_layouts(void *a, void *b) return merge_channel_layouts_internal(a, b, 0); } +static int merge_generic_internal(AVFilterFormats *a, + AVFilterFormats *b, int check) +{ + av_assert2(check || (a->refcount && b->refcount)); + + if (a == b) + return 1; + + MERGE_FORMATS(a, b, formats, nb_formats, AVFilterFormats, check, 0); + + return 1; +} + +static int can_merge_generic(const void *a, const void *b) +{ + return merge_generic_internal((AVFilterFormats *)a, + (AVFilterFormats *)b, 1); +} + +static int merge_generic(void *a, void *b) +{ + return merge_generic_internal(a, b, 0); +} + static const AVFilterFormatsMerger mergers_video[] = { { .offset = offsetof(AVFilterFormatsConfig, formats), .merge = merge_pix_fmts, .can_merge = can_merge_pix_fmts, }, + { + .offset = offsetof(AVFilterFormatsConfig, color_spaces), + .merge = merge_generic, + .can_merge = can_merge_generic, + }, + { + .offset = offsetof(AVFilterFormatsConfig, color_ranges), + .merge = merge_generic, + .can_merge = can_merge_generic, + }, }; static const AVFilterFormatsMerger mergers_audio[] = { @@ -594,6 +628,33 @@ AVFilterChannelLayouts *ff_all_channel_counts(void) return ret; } +AVFilterFormats *ff_all_color_spaces(void) +{ + AVFilterFormats *ret = NULL; + if (ff_add_format(&ret, AVCOL_SPC_UNSPECIFIED) < 0) + return NULL; + for (int csp = 0; csp < AVCOL_SPC_NB; csp++) { + if (csp == AVCOL_SPC_RESERVED || + csp == AVCOL_SPC_UNSPECIFIED) + continue; + if (ff_add_format(&ret, csp) < 0) + return NULL; + } + + return ret; +} + +AVFilterFormats *ff_all_color_ranges(void) +{ + AVFilterFormats *ret = NULL; + for (int range = 0; range < AVCOL_RANGE_NB; range++) { + if (ff_add_format(&ret, range) < 0) + return NULL; + } + + return ret; +} + #define FORMATS_REF(f, ref, unref_fn) \ void *tmp; \ \ @@ -763,6 +824,42 @@ int ff_set_common_all_samplerates(AVFilterContext *ctx) return ff_set_common_samplerates(ctx, ff_all_samplerates()); } +int ff_set_common_color_spaces(AVFilterContext *ctx, + AVFilterFormats *color_spaces) +{ + SET_COMMON_FORMATS(ctx, color_spaces, AVMEDIA_TYPE_VIDEO, + ff_formats_ref, ff_formats_unref); +} + +int ff_set_common_color_spaces_from_list(AVFilterContext *ctx, + const int *color_ranges) +{ + return ff_set_common_color_spaces(ctx, ff_make_format_list(color_ranges)); +} + +int ff_set_common_all_color_spaces(AVFilterContext *ctx) +{ + return ff_set_common_color_spaces(ctx, ff_all_color_spaces()); +} + +int ff_set_common_color_ranges(AVFilterContext *ctx, + AVFilterFormats *color_ranges) +{ + SET_COMMON_FORMATS(ctx, color_ranges, AVMEDIA_TYPE_VIDEO, + ff_formats_ref, ff_formats_unref); +} + +int ff_set_common_color_ranges_from_list(AVFilterContext *ctx, + const int *color_ranges) +{ + return ff_set_common_color_ranges(ctx, ff_make_format_list(color_ranges)); +} + +int ff_set_common_all_color_ranges(AVFilterContext *ctx) +{ + return ff_set_common_color_ranges(ctx, ff_all_color_ranges()); +} + /** * A helper for query_formats() which sets all links to the same list of * formats. If there are no links hooked to this filter, the list of formats is @@ -817,7 +914,14 @@ int ff_default_query_formats(AVFilterContext *ctx) ret = ff_set_common_formats(ctx, formats); if (ret < 0) return ret; - if (type == AVMEDIA_TYPE_AUDIO) { + if (type == AVMEDIA_TYPE_VIDEO) { + ret = ff_set_common_all_color_spaces(ctx); + if (ret < 0) + return ret; + ret = ff_set_common_all_color_ranges(ctx); + if (ret < 0) + return ret; + } else if (type == AVMEDIA_TYPE_AUDIO) { ret = ff_set_common_all_channel_counts(ctx); if (ret < 0) return ret; @@ -935,6 +1039,22 @@ int ff_formats_check_sample_rates(void *log, const AVFilterFormats *fmts) return check_list(log, "sample rate", fmts); } +int ff_formats_check_color_spaces(void *log, const AVFilterFormats *fmts) +{ + for (int i = 0; fmts && i < fmts->nb_formats; i++) { + if (fmts->formats[i] == AVCOL_SPC_RESERVED) { + av_log(log, AV_LOG_ERROR, "Invalid color range\n"); + return AVERROR(EINVAL); + } + } + return check_list(log, "color space", fmts); +} + +int ff_formats_check_color_ranges(void *log, const AVFilterFormats *fmts) +{ + return check_list(log, "color range", fmts); +} + static int layouts_compatible(const AVChannelLayout *a, const AVChannelLayout *b) { return !av_channel_layout_compare(a, b) || diff --git a/libavfilter/formats.h b/libavfilter/formats.h index d44890109e..82b3af4be1 100644 --- a/libavfilter/formats.h +++ b/libavfilter/formats.h @@ -130,6 +130,20 @@ AVFilterChannelLayouts *ff_all_channel_counts(void); av_warn_unused_result AVFilterChannelLayouts *ff_make_channel_layout_list(const AVChannelLayout *fmts); +/** + * Construct an AVFilterFormats representing all possible color spaces. + * + * Note: This list does not include AVCOL_SPC_RESERVED. + */ +av_warn_unused_result +AVFilterFormats *ff_all_color_spaces(void); + +/** + * Construct an AVFilterFormats representing all possible color ranges. + */ +av_warn_unused_result +AVFilterFormats *ff_all_color_ranges(void); + /** * Helpers for query_formats() which set all free audio links to the same list * of channel layouts/sample rates. If there are no links hooked to this list, @@ -165,6 +179,38 @@ int ff_set_common_samplerates_from_list(AVFilterContext *ctx, av_warn_unused_result int ff_set_common_all_samplerates(AVFilterContext *ctx); +av_warn_unused_result +int ff_set_common_color_spaces(AVFilterContext *ctx, + AVFilterFormats *color_spaces); +/** + * Equivalent to ff_set_common_color_spaces(ctx, ff_make_format_list(color_spaces)) + */ +av_warn_unused_result +int ff_set_common_color_spaces_from_list(AVFilterContext *ctx, + const int *color_spaces); + +/** + * Equivalent to ff_set_common_color_spaces(ctx, ff_all_color_spaces()) + */ +av_warn_unused_result +int ff_set_common_all_color_spaces(AVFilterContext *ctx); + +av_warn_unused_result +int ff_set_common_color_ranges(AVFilterContext *ctx, + AVFilterFormats *color_ranges); +/** + * Equivalent to ff_set_common_color_ranges(ctx, ff_make_format_list(color_ranges)) + */ +av_warn_unused_result +int ff_set_common_color_ranges_from_list(AVFilterContext *ctx, + const int *color_ranges); + +/** + * Equivalent to ff_set_common_color_ranges(ctx, ff_all_color_ranges()) + */ +av_warn_unused_result +int ff_set_common_all_color_ranges(AVFilterContext *ctx); + /** * A helper for query_formats() which sets all links to the same list of * formats. If there are no links hooked to this filter, the list of formats is @@ -328,6 +374,14 @@ int ff_formats_check_sample_rates(void *log, const AVFilterFormats *fmts); */ int ff_formats_check_channel_layouts(void *log, const AVFilterChannelLayouts *fmts); +/** + * Check that fmts is a valid formats list for YUV colorspace metadata. + * + * In particular, check for duplicates. + */ +int ff_formats_check_color_spaces(void *log, const AVFilterFormats *fmts); +int ff_formats_check_color_ranges(void *log, const AVFilterFormats *fmts); + typedef struct AVFilterFormatMerger { unsigned offset; int (*merge)(void *a, void *b); diff --git a/libavfilter/internal.h b/libavfilter/internal.h index 2dbc5def0a..a6cdf9994c 100644 --- a/libavfilter/internal.h +++ b/libavfilter/internal.h @@ -203,6 +203,12 @@ enum FilterFormatsState { */ int ff_fmt_is_in(int fmt, const int *fmts); +/** + * Returns true if a pixel format is "regular YUV", which includes all pixel + * formats that are affected by YUV colorspace negotiation. + */ +int ff_fmt_is_regular_yuv(enum AVPixelFormat fmt); + /* Functions to parse audio format arguments */ /** diff --git a/libavfilter/vaapi_vpp.c b/libavfilter/vaapi_vpp.c index cf2592e068..59961bfa4a 100644 --- a/libavfilter/vaapi_vpp.c +++ b/libavfilter/vaapi_vpp.c @@ -38,6 +38,10 @@ int ff_vaapi_vpp_query_formats(AVFilterContext *avctx) &avctx->outputs[0]->incfg.formats)) < 0) return err; + if ((err = ff_set_common_all_color_spaces(avctx)) < 0 || + (err = ff_set_common_all_color_ranges(avctx)) < 0) + return err; + return 0; } diff --git a/libavfilter/version.h b/libavfilter/version.h index 537df129cd..7642b670d1 100644 --- a/libavfilter/version.h +++ b/libavfilter/version.h @@ -31,7 +31,7 @@ #include "version_major.h" -#define LIBAVFILTER_VERSION_MINOR 13 +#define LIBAVFILTER_VERSION_MINOR 14 #define LIBAVFILTER_VERSION_MICRO 100 diff --git a/libavfilter/video.c b/libavfilter/video.c index 42eeb98c28..243762c8fd 100644 --- a/libavfilter/video.c +++ b/libavfilter/video.c @@ -96,6 +96,8 @@ AVFrame *ff_default_get_video_buffer2(AVFilterLink *link, int w, int h, int alig return NULL; frame->sample_aspect_ratio = link->sample_aspect_ratio; + frame->colorspace = link->colorspace; + frame->color_range = link->color_range; return frame; } diff --git a/tests/ref/fate/shortest-sub b/tests/ref/fate/shortest-sub index 9caee587ce..16b1324e83 100644 --- a/tests/ref/fate/shortest-sub +++ b/tests/ref/fate/shortest-sub @@ -1,5 +1,5 @@ -73d142a80965f9e0884a5863abde0dab *tests/data/fate/shortest-sub.matroska -139249 tests/data/fate/shortest-sub.matroska +d6608277c93097383e62388196dc62f0 *tests/data/fate/shortest-sub.matroska +139260 tests/data/fate/shortest-sub.matroska #extradata 1: 167, 0xf7272d5f #tb 0: 1/1000 #media_type 0: video From patchwork Thu Nov 9 12:19:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 44587 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4fa4:b0:181:818d:5e7f with SMTP id gh36csp444185pzb; Thu, 9 Nov 2023 04:26:28 -0800 (PST) X-Google-Smtp-Source: AGHT+IHAEy6wMOZyssn/fZqrR595CcoU3z6icyrrhrRovIUW10LCxPM/tgZQcxfsgdVSCTxXfYEr X-Received: by 2002:a50:cd49:0:b0:53e:bb41:7506 with SMTP id d9-20020a50cd49000000b0053ebb417506mr4042890edj.33.1699532787941; Thu, 09 Nov 2023 04:26:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699532787; cv=none; d=google.com; s=arc-20160816; b=bAU88+954TUfrume0dz7QgYWZQQYXiZ/hYrDtVj4hzA/f41IzFDXnUcv25/ZN73AoQ ivIfiphgONerfEJZp8kZPwTpDRZh5weI94VhdcMGjPWMjN6LqObJin48k/u89Ebrm6Dz ejjRxk48h6Bfk8bUYnUEoZ97gfC4cL/0ionx+dqIXJyb8C9G+c6wdG7wHaUVcq7n/iro ohlztbnJ/KgKYIdoYp2nAy9hWbQlzMfXk6Nw4GjO6QjVCw4hPl+y33sUj5Jgu4vfnbfF ekia7DNDfFQ6z40x46IeJYmhI71sNMHecj9aXYf+B+uwE9A7Jxgp9I0n4oAPu0YMmfbi z16w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=wqNHfi578BpS260RIplma3n+zy138Vrk/JrOy8mHrpU=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=FtdibNhFo5eoSCfW5oGoFM+NyXqIKfKkejdtGuq1iSV6DS0Xcf5y3yLgr+ThACkxYy 7jIhgj/T8tYJ6bLPHq1COCtpHfKkyxx9OaE6yT6Qg3WzZNv74TKdIphabCP1w9TCKefV s+DrFB7LfhfTSOpFJCzEcw/P2eAfCAGMe7bFLQspvjvGSZVzFNx2JDWyjLWNmah5nT/V vamOaU06rvRGZwPVMNQlc3/ZEwFEmgML82C/UfLiz2PkHvdvqQGMJ+ag3VXqxLnz0pXx UjhJwL0/1gNwxZVX1bl7Vxfgr1nAqgVajB1x7OiTXtPAkYwXx24/BEr8aZ/fPSK9VFtM IrnA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b=tcb1FrGj; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id o20-20020aa7d3d4000000b0053e31324eafsi7257634edr.504.2023.11.09.04.26.27; Thu, 09 Nov 2023 04:26:27 -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=@haasn.xyz header.s=mail header.b=tcb1FrGj; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 11C6268CC54; Thu, 9 Nov 2023 14:25:48 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id EFA9968CBDC for ; Thu, 9 Nov 2023 14:25:36 +0200 (EET) Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id B007A4BB22; Thu, 9 Nov 2023 13:25:36 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1699532736; bh=Lt2U3qANIACK/9ke9adoboGOHB7sOeWQnsnAsX9IZKw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tcb1FrGjlMr7wS01VvQsXSSUIvnvyBVNXaE+8sCydTTLv5xRtgx6a+li41p6mNwpU Ut89LcKqY5lYoXjlNhR5epvMydOev37HhpV6ogfD9KzBdv1786vyWQl0GAzWUzvMOX BP4IBrfHQDi/jfr4BygyfiqjxbIhtGkdM8IOrm+M= From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Thu, 9 Nov 2023 13:19:36 +0100 Message-ID: <20231109122534.124157-5-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231109122534.124157-1-ffmpeg@haasn.xyz> References: <20231109122534.124157-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 04/25] fftools/ffmpeg_filter: don't clear buffersrc params 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: Niklas Haas Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: gzZz4RIVAjwW From: Niklas Haas This memset is bogus, it accomplishes nothing in the best case and regresses future additions to AVBufferSrcParameters in the worst case. --- fftools/ffmpeg_filter.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c index b7da105141..e699798897 100644 --- a/fftools/ffmpeg_filter.c +++ b/fftools/ffmpeg_filter.c @@ -1400,11 +1400,8 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter, int ret, pad_idx = 0; int64_t tsoffset = 0; AVBufferSrcParameters *par = av_buffersrc_parameters_alloc(); - if (!par) return AVERROR(ENOMEM); - memset(par, 0, sizeof(*par)); - par->format = AV_PIX_FMT_NONE; if (ist->dec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) { av_log(fg, AV_LOG_ERROR, "Cannot connect video filter to audio input\n"); From patchwork Thu Nov 9 12:19:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 44600 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4fa4:b0:181:818d:5e7f with SMTP id gh36csp445808pzb; Thu, 9 Nov 2023 04:29:47 -0800 (PST) X-Google-Smtp-Source: AGHT+IEGd5QZaeORqTzPA5OvaLFu1GtqPNUS3gH3TleKYEtwf9w80MWb838fHKL11G24yLlC7xzD X-Received: by 2002:a50:d6d9:0:b0:53f:72a7:5ae with SMTP id l25-20020a50d6d9000000b0053f72a705aemr3767428edj.12.1699532986917; Thu, 09 Nov 2023 04:29:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699532986; cv=none; d=google.com; s=arc-20160816; b=JDguAUiB/VovptMAD7hq8z09b02/+BuO7EAzE0/ZDL3JYjS96htn3kaIW4/PJTP27o St2BejWejdU6lPsu6F4T1EiwlkPshcKLNqbeW7QMKv+XQC4J1dkrbMgj431ztRoowpUF RBZfiv+SNdbZDdfYFSjZS3RvML/hskXTPetLv2Bw4x8yKQh1ErxhVmXa5YP7ogbJWN7f i3uWuVp5S2HWOnPZft8Ytv49ZJN97mznWsCzMolEheg/J1Er4/l8WJMz/+2B4OvXecGH Q2XQF8QtMhbXIG0OI+FEXWldckCnGR1nyaAR+JNUVljjrphVHVvlSpolEuBpqTuVkKdY v9zw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=kE+G/9LmRRon3BgTABWK0DRKOHI6FK14SlvTHYFnYJI=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=Ntrl74XALINgjUHd2Dm4IYMCFbuSiKZ4XAHS5xVMWI1/tqE+u+eRuEfbNUZO+AhDJw z89ls8QSa5n/xN88bCyQE7jDBfkUuuD3gjst7OoSVinzhVYjcuXfGeUQhqlYDhXhusOO 2TwtZut/cNQgA4i1gRGSivL5IB4PMA3pPvz0qvcD6gIEXtcGnQWheH9wRiYRllqAaWMe izKhoZrn+2E2wpHAGEgDPNtSM9goveYPoCYyx54HN5L7C7VmWOl2Di86QRSlMdMCGEgX BKthJJsTn4BFkm7fTxyLBEW6allDr5q4OeMBrRk+JXnbKbvzg6OzG9+b4gOBRKwKy3HT AXQw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b=DOUppmnn; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id l24-20020a50d6d8000000b00540e7ac8ec7si7736161edj.80.2023.11.09.04.29.46; Thu, 09 Nov 2023 04:29:46 -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=@haasn.xyz header.s=mail header.b=DOUppmnn; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E9B5568CCEB; Thu, 9 Nov 2023 14:26:10 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F015868CC40 for ; Thu, 9 Nov 2023 14:25:41 +0200 (EET) Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id 9318A4BCF3; Thu, 9 Nov 2023 13:25:38 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1699532738; bh=rvGffnsPmGn3DwDREXkCY9Mj4QyBfWA+53EClC6m5Dk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DOUppmnnpPBUinZJKTwkv0JMBDV/hFRS77Wk42NoP06wzz4UJp5q3UP8OmBF0oITB m/5C8IJJpEjXQpT4aSySIjezy4PLsDCw31N3sZ94NVolwICulmu23njvUvkdgIGySX fkE3FbKKdusqpTvOxxavqj2gmCLM+sTkUJMlfaZ8= From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Thu, 9 Nov 2023 13:19:43 +0100 Message-ID: <20231109122534.124157-12-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231109122534.124157-1-ffmpeg@haasn.xyz> References: <20231109122534.124157-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 11/25] avfilter/vf_libplacebo: don't force dovi frames to bt.2020-ncl 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: Niklas Haas Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: sRjTw20sdfwO From: Niklas Haas This is at odds with the YUV matrix negotiation API, in which such dynamic changes in YUV encoding are no longer easily possible. There is also no really strong motivating reason to do this, since the choice of YUV matrix is essentially arbitrary and not actually related to the Dolby Vision decoding process. --- libavfilter/vf_libplacebo.c | 1 - 1 file changed, 1 deletion(-) diff --git a/libavfilter/vf_libplacebo.c b/libavfilter/vf_libplacebo.c index 8534945ba6..b6e82a61e0 100644 --- a/libavfilter/vf_libplacebo.c +++ b/libavfilter/vf_libplacebo.c @@ -888,7 +888,6 @@ static int output_frame(AVFilterContext *ctx, int64_t pts) if (s->apply_dovi && av_frame_get_side_data(ref, AV_FRAME_DATA_DOVI_METADATA)) { /* Output of dovi reshaping is always BT.2020+PQ, so infer the correct * output colorspace defaults */ - out->colorspace = AVCOL_SPC_BT2020_NCL; out->color_primaries = AVCOL_PRI_BT2020; out->color_trc = AVCOL_TRC_SMPTE2084; } From patchwork Thu Nov 9 12:19:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 44588 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4fa4:b0:181:818d:5e7f with SMTP id gh36csp444262pzb; Thu, 9 Nov 2023 04:26:37 -0800 (PST) X-Google-Smtp-Source: AGHT+IHDAYbfBb48Cqoonn0cR1lbU8oUPYHBZhB3BdM4/fVVVKoz0H3I6UXoY2HjG43DrLE82Daj X-Received: by 2002:a17:907:9304:b0:9d3:85b9:afdf with SMTP id bu4-20020a170907930400b009d385b9afdfmr4147623ejc.3.1699532797373; Thu, 09 Nov 2023 04:26:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699532797; cv=none; d=google.com; s=arc-20160816; b=SpDrbTzYx9hg/X+MSA6g6sdUTesjlE8rZwZKbWKqujgbkWORdwpVCexQYntQ0/k4AU y1TSiwFM+BsMWTHcLfKoPGxNBuaKCiXad5z5+TgQlgRixwpVPzHT4KyCwAbLDEGfBqaL AV24v3xETHBUyymiBT5SmLkBjAlwwXSNT2U8e7W3eQLGlIw9PHZj8MnSNUhwLy7yQLig ihJ28A8VUWUUJJ6OoHjxR4dDKqNuV69HxPvN9ozBY06G/4JNFuZrCcJpMR65eBcAwGcc smGChNLRgBitDbvf+zUnVyg6Df+kuqjGEFHWpWtvmsFcR0llJk8QPcCYNubi62hFPCHn WF6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=NWfRX9TJRHGpUxt0gHkeym7LCiGCK3dsMvMzcs9/+T0=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=aa6LTSebZ0Ayjm+pEKFVQ/ufPge6bX3y69towoqFHWAPjRnRwRsi76tMd/JvNaGhpH X7aagiqzmYfkIvwP4bNl5uTd2+qXvrfEGaO2zP/D3DICrD7U1rMYA3WmVXviq42yew0e IBpXfWFlms8xIXP3tDpa+KaZ1E5psr+vl2qyzCIAxKVZYSI7lT3VYkABz+aYJh9I941s sR1Ev2ZukxgfC4w0pXJVTqCrkeOYxYkj7b5Srha1XUDORnjf7Rmwh3Hcw4dyjWrkfLSI GEmbZ0w89UVItuzJ+xTNbCSGaNa7v+rXz9Ui3ndBorFSQ+XgtwGIAhSWp410u/sWlobS NOLQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b=TwAvx6Fl; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id t8-20020a056402240800b0053e87d6c435si8198665eda.689.2023.11.09.04.26.37; Thu, 09 Nov 2023 04:26:37 -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=@haasn.xyz header.s=mail header.b=TwAvx6Fl; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3551E68CC0C; Thu, 9 Nov 2023 14:25:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F3A3E68CBCB for ; Thu, 9 Nov 2023 14:25:41 +0200 (EET) Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id D27704BD04; Thu, 9 Nov 2023 13:25:38 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1699532738; bh=GwQ14Q+N3aQoCq7Q9YqAhsBz0du8jaC/HcWOvLykG5c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TwAvx6FlJYIMc3dlWckpQilKEd/0WxoL3jByhrzUb2ZeyR5YpsmigyzfTzz3FfXGA fJPG9YFTv63sjGHZczHbBs8to1nlhOmjjRaoU9h3ekJE0Urxe4a/F3c/LMZHFpBdpX m3/tA1a0mpxovYo4/UXXaC/QnTcdN94VHpZ8Cko0= From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Thu, 9 Nov 2023 13:19:44 +0100 Message-ID: <20231109122534.124157-13-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231109122534.124157-1-ffmpeg@haasn.xyz> References: <20231109122534.124157-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 12/25] avfilter/vf_libplacebo: switch to colorspace negotiation API 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: Niklas Haas Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: dhfcEMdqVbtD From: Niklas Haas --- libavfilter/vf_libplacebo.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/libavfilter/vf_libplacebo.c b/libavfilter/vf_libplacebo.c index b6e82a61e0..a9a3d884ce 100644 --- a/libavfilter/vf_libplacebo.c +++ b/libavfilter/vf_libplacebo.c @@ -882,6 +882,8 @@ static int output_frame(AVFilterContext *ctx, int64_t pts) out->pts = pts; out->width = outlink->w; out->height = outlink->h; + out->colorspace = outlink->colorspace; + out->color_range = outlink->color_range; if (s->fps.num) out->duration = 1; @@ -892,22 +894,11 @@ static int output_frame(AVFilterContext *ctx, int64_t pts) out->color_trc = AVCOL_TRC_SMPTE2084; } - if (s->colorspace >= 0) - out->colorspace = s->colorspace; - if (s->color_range >= 0) - out->color_range = s->color_range; if (s->color_trc >= 0) out->color_trc = s->color_trc; if (s->color_primaries >= 0) out->color_primaries = s->color_primaries; - /* Sanity colorspace overrides */ - if (outdesc->flags & AV_PIX_FMT_FLAG_RGB) { - out->colorspace = AVCOL_SPC_RGB; - } else if (out->colorspace == AVCOL_SPC_RGB) { - out->colorspace = AVCOL_SPC_UNSPECIFIED; - } - changed_csp = ref->colorspace != out->colorspace || ref->color_range != out->color_range || ref->color_trc != out->color_trc || @@ -1203,6 +1194,18 @@ static int libplacebo_query_format(AVFilterContext *ctx) for (int i = 0; i < s->nb_inputs; i++) RET(ff_formats_ref(infmts, &ctx->inputs[i]->outcfg.formats)); RET(ff_formats_ref(outfmts, &ctx->outputs[0]->incfg.formats)); + + /* Set colorspace properties */ + RET(ff_formats_ref(ff_all_color_spaces(), &ctx->inputs[0]->outcfg.color_spaces)); + RET(ff_formats_ref(ff_all_color_ranges(), &ctx->inputs[0]->outcfg.color_ranges)); + + outfmts = s->colorspace > 0 ? ff_make_formats_list_singleton(s->colorspace) + : ff_all_color_spaces(); + RET(ff_formats_ref(outfmts, &ctx->outputs[0]->incfg.color_spaces)); + + outfmts = s->color_range > 0 ? ff_make_formats_list_singleton(s->color_range) + : ff_all_color_ranges(); + RET(ff_formats_ref(outfmts, &ctx->outputs[0]->incfg.color_ranges)); return 0; fail: From patchwork Thu Nov 9 12:19:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 44590 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4fa4:b0:181:818d:5e7f with SMTP id gh36csp444409pzb; Thu, 9 Nov 2023 04:26:56 -0800 (PST) X-Google-Smtp-Source: AGHT+IG102E0SO5cWt5SdwWi3skGo99KmiH+MhxEwlhan4z7eUQ2fku40/fqs/MQM1IIVQJ6irln X-Received: by 2002:a05:6402:3896:b0:53f:c889:8f89 with SMTP id fd22-20020a056402389600b0053fc8898f89mr2670491edb.36.1699532816223; Thu, 09 Nov 2023 04:26:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699532816; cv=none; d=google.com; s=arc-20160816; b=FFWdnjFoCZwt81YJvgCWrJef4vIWxJ4GJcfKo+98khh6RHeTIkQx6NKA5eeKiTJ/Sw MSb3gfBBcqIWjSO5CD/PtZ3jnOnUJ+PlWnHNHh5wdCj1ozP+3HEUm3gXYXKLm/uq0WSD RduUfWKeFFIQ082oFJFYwxXDdcqKXbwXJ6Q+OYqLBK70d6tT1plxXfYKo5NtrGhTyNKF f2UrU3/LsnFwBrk/RSBR4oG4Mkj2L07VMQja/p0QBQgiRJB4YriurvwCewOzu79qF1Cw PE2D2rAOBsTR18Nz7eSs5cOkSrP2BPnUMiDvqYY2r1KD1mrU4fKwYdSLvTbClvtVpgI1 phug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=FXrRaGVVAFl12yOhiET+zhhHoWFwQei9DoFi9CMlfBI=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=XdL0NqX8exPTTn2hgCxXGVk0X9uk663OeIAX8qpGRQzHUxOYlVMrBZ4YHiK6AF4OWO QgyY/I5Ifs2cDL5nxCOOsAkjoxnG2rsROsExucVYPe2S0orL9XYTQBaP8jMjLHnute0d 7JfvZUyO54ZtK5bmkS02aYTCbivfdSofuqRGTq6gcADWEQwff+6wXOjC4mEVq/9srIRe RQPTv5dgjGVW59b0/4fwqlYWhhrb780aYOkxH8RmLJprtf9y1b77wtZUW7OvDHZDw4hS T1bQwimRUSw/bJqCNAD+JeLdQXneIjY/zihjMuwL4jqqwt5hZugH9zsvhVJwZmaTchXu 0XVQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b=TglwkNmn; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id k29-20020a508add000000b005435820cf9fsi7425932edk.22.2023.11.09.04.26.55; Thu, 09 Nov 2023 04:26:56 -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=@haasn.xyz header.s=mail header.b=TglwkNmn; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2963E68CC6C; Thu, 9 Nov 2023 14:25:51 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2950E68CBCB for ; Thu, 9 Nov 2023 14:25:42 +0200 (EET) Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id 1CFDA4BD11; Thu, 9 Nov 2023 13:25:39 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1699532739; bh=Gj/5Aq3EF4s1bUpMTVeWUBoHbx83SxH1VRcA1nTLQLc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TglwkNmnL+LfuJuJomuaqLXF74G6b6Ojan/mHkGeC3rkp+QKruVCLRWXe5IEmJG9b yHUxToW8zBH6kfoTypPewBllOIsZx6McNU7134PeAzirJvi7qbSrhETWCZocofyMQh BeQ3WYxmbe8dGm8J82s6BBaIlNgZFB3w979SCTx4= From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Thu, 9 Nov 2023 13:19:45 +0100 Message-ID: <20231109122534.124157-14-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231109122534.124157-1-ffmpeg@haasn.xyz> References: <20231109122534.124157-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 13/25] avfilter/buffersink: add color space/range accessors 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: Niklas Haas Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: huVGYQ7mA1ds From: Niklas Haas Needed for fftools. --- doc/APIchanges | 3 +++ libavfilter/buffersink.c | 2 ++ libavfilter/buffersink.h | 2 ++ libavfilter/version.h | 2 +- 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/doc/APIchanges b/doc/APIchanges index ce3f90a674..97b6de8276 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -2,6 +2,9 @@ The last version increases of all libraries were on 2023-02-09 API changes, most recent first: +2023-11-xx - xxxxxxxxxx - lavf 58.15.100 - buffersink.h + Add av_buffersink_get_colorspace and av_buffersink_get_color_range. + 2023-11-xx - xxxxxxxxxx - lavf 58.14.100 - avfilter.h formats.h Add AVFilterFormatsConfig.color_spaces, AVFilterFormatsConfig.color_ranges, AVFilterLink.colorspace, AVFilterLink.color_range, ff_all_color_spaces, diff --git a/libavfilter/buffersink.c b/libavfilter/buffersink.c index ca2af1bc07..8fb9ba0fa4 100644 --- a/libavfilter/buffersink.c +++ b/libavfilter/buffersink.c @@ -202,6 +202,8 @@ MAKE_AVFILTERLINK_ACCESSOR(AVRational , frame_rate ) MAKE_AVFILTERLINK_ACCESSOR(int , w ) MAKE_AVFILTERLINK_ACCESSOR(int , h ) MAKE_AVFILTERLINK_ACCESSOR(AVRational , sample_aspect_ratio) +MAKE_AVFILTERLINK_ACCESSOR(enum AVColorSpace, colorspace) +MAKE_AVFILTERLINK_ACCESSOR(enum AVColorRange, color_range) #if FF_API_OLD_CHANNEL_LAYOUT FF_DISABLE_DEPRECATION_WARNINGS diff --git a/libavfilter/buffersink.h b/libavfilter/buffersink.h index 64e08de53e..a9374b8b4f 100644 --- a/libavfilter/buffersink.h +++ b/libavfilter/buffersink.h @@ -117,6 +117,8 @@ AVRational av_buffersink_get_frame_rate (const AVFilterContext *c int av_buffersink_get_w (const AVFilterContext *ctx); int av_buffersink_get_h (const AVFilterContext *ctx); AVRational av_buffersink_get_sample_aspect_ratio (const AVFilterContext *ctx); +enum AVColorSpace av_buffersink_get_colorspace (const AVFilterContext *ctx); +enum AVColorRange av_buffersink_get_color_range (const AVFilterContext *ctx); int av_buffersink_get_channels (const AVFilterContext *ctx); #if FF_API_OLD_CHANNEL_LAYOUT diff --git a/libavfilter/version.h b/libavfilter/version.h index 7642b670d1..59330858bd 100644 --- a/libavfilter/version.h +++ b/libavfilter/version.h @@ -31,7 +31,7 @@ #include "version_major.h" -#define LIBAVFILTER_VERSION_MINOR 14 +#define LIBAVFILTER_VERSION_MINOR 15 #define LIBAVFILTER_VERSION_MICRO 100 From patchwork Thu Nov 9 12:19:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 44589 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4fa4:b0:181:818d:5e7f with SMTP id gh36csp444329pzb; Thu, 9 Nov 2023 04:26:47 -0800 (PST) X-Google-Smtp-Source: AGHT+IHqXhG8LbYmBwWKsN1PcVvHbZ2SzxvotgD9bu0Aj3RnOfrRpWT/xm3FzaTcelw6DIrRQ/pi X-Received: by 2002:a17:907:701:b0:9c7:56ee:b6e5 with SMTP id xb1-20020a170907070100b009c756eeb6e5mr3563750ejb.40.1699532806988; Thu, 09 Nov 2023 04:26:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699532806; cv=none; d=google.com; s=arc-20160816; b=XdpFu2n3mz7U+4lFF1o2oWU4upyZTqjcSBO6Ztx+2VN7Dbyc6pHESwYjqZqS5I4H5B GMnMRlTWI6xdTAZbBYlCyJB0oBheCLTilHupWi7joaXzaya9sui4SMYGRSG2wap1q/s+ gfsJ3TaPViXfsm/gJmqCbcXsB5ZWrhWiRGKJrUbztkRq/EAWRUgxV/NrBWbQzjI1+Di9 YRWP15asecpiWabakRwIOQC0AsvE0vOZ/sDNxl7kxktctGp+zu2ZHoFEyidfjV2zaZrx 4XcLurzVRWXqrZpEpHEIAe6dKZ6hNv3fx15UKFFQZPy3W58i16wf0sON40AqxSEi6f86 wjsQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=jRiRFFMwBXzcr55OYUYiCbCM48MT++xleL3jeO29k70=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=ashvUgJGNjnhvzZxfQli2TRTQ/rb/PD4y0hVyHCpKwpoXDR8e4jFTreDuEMiA/8L6h Edbxvo1h9mIypcFHgP0ydnixbY+iWOEJq88pGwqSllgx85/wH9r7UUFK98+lzbUeWzpQ 02jpNEs5w6kH2GAM17AYTdgsJmnkVI/CbTiB+I4Yj4gb6pDFFIzffNWjCc0smBqXkzEi p5Ihysr+31NkGP121IAe1kwuP4jFIzaesGEdn+fpu5BsIDqXg8O5pWWcml6oyMhGrZXp h0hBW0qvx7HqxUtvOS/MdtWsQrw3Jkk8eCn0VG7E0axR4Mwg/E1jeJlIHuaueFpDdGAw 18Ng== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b=EIKEQZhN; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id dp7-20020a170906c14700b009a197afe799si3449739ejc.368.2023.11.09.04.26.46; Thu, 09 Nov 2023 04:26:46 -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=@haasn.xyz header.s=mail header.b=EIKEQZhN; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2F68B68CBF8; Thu, 9 Nov 2023 14:25:50 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2975868CBDF for ; Thu, 9 Nov 2023 14:25:42 +0200 (EET) Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id 5FE134BD17; Thu, 9 Nov 2023 13:25:39 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1699532739; bh=vH0K/edrG+takWv3u5gJzwUJwav0nCQQrTTAc4odM4c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EIKEQZhNfaCbOEgkAk64dUtQtFCodupt5vsQPrAi8Nt22646lkAuFHKJ14qFeCTEJ 7RdPwfr1YhG7gMY9z7CaDBZ9mV00Nk3MrxjUlhss+AhRu9/OmOw4lHBBJ5UAjlPbwf s+GhB8K9pcBh1IqqJZkJ2eZIIAaG1vstBae46Mik= From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Thu, 9 Nov 2023 13:19:46 +0100 Message-ID: <20231109122534.124157-15-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231109122534.124157-1-ffmpeg@haasn.xyz> References: <20231109122534.124157-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 14/25] avfilter/vf_format: re-use AVFilterList for pix_fmt parsing 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: Niklas Haas Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: UOOFCxfTXseg From: Niklas Haas Rewrite the format parsing code to make it more easily generalizable. In particular, `invert_formats` does not depend on the type of format list passed to it, which allows me to re-use this helper in an upcoming commit. Slightly shortens the code, at the sole cost of doing several malloc (ff_add_format) instead of a single malloc. --- libavfilter/vf_format.c | 103 +++++++++++++++++----------------------- 1 file changed, 43 insertions(+), 60 deletions(-) diff --git a/libavfilter/vf_format.c b/libavfilter/vf_format.c index 1189bd61c2..b137e3075e 100644 --- a/libavfilter/vf_format.c +++ b/libavfilter/vf_format.c @@ -41,25 +41,48 @@ typedef struct FormatContext { const AVClass *class; char *pix_fmts; - /** - * pix_fmts parsed into AVPixelFormats and terminated with - * AV_PIX_FMT_NONE - */ - enum AVPixelFormat *formats; + AVFilterFormats *formats; ///< parsed from `pix_fmts` } FormatContext; static av_cold void uninit(AVFilterContext *ctx) { FormatContext *s = ctx->priv; - av_freep(&s->formats); + ff_formats_unref(&s->formats); +} + +static av_cold int invert_formats(AVFilterFormats **fmts, + AVFilterFormats *allfmts) +{ + if (!allfmts) + return AVERROR(ENOMEM); + if (!*fmts) { + /* empty fmt list means no restriction, regardless of filter type */ + ff_formats_unref(&allfmts); + return 0; + } + + for (int i = 0; i < allfmts->nb_formats; i++) { + for (int j = 0; j < (*fmts)->nb_formats; j++) { + if (allfmts->formats[i] == (*fmts)->formats[j]) { + /* format is forbidden, remove it from allfmts list */ + memmove(&allfmts->formats[i], &allfmts->formats[i+1], + (allfmts->nb_formats - (i+1)) * sizeof(*allfmts->formats)); + allfmts->nb_formats--; + i--; /* repeat loop with same idx */ + break; + } + } + } + + ff_formats_unref(fmts); + *fmts = allfmts; + return 0; } static av_cold int init(AVFilterContext *ctx) { FormatContext *s = ctx->priv; - char *cur, *sep; - int nb_formats = 1; - int i; + enum AVPixelFormat pix_fmt; int ret; if (!s->pix_fmts) { @@ -67,64 +90,24 @@ static av_cold int init(AVFilterContext *ctx) return AVERROR(EINVAL); } - /* count the formats */ - cur = s->pix_fmts; - while ((cur = strchr(cur, '|'))) { - nb_formats++; - if (*cur) - cur++; - } - - s->formats = av_malloc_array(nb_formats + 1, sizeof(*s->formats)); - if (!s->formats) - return AVERROR(ENOMEM); - - /* parse the list of formats */ - cur = s->pix_fmts; - for (i = 0; i < nb_formats; i++) { + for (char *sep, *cur = s->pix_fmts; cur; cur = sep) { sep = strchr(cur, '|'); - if (sep) + if (sep && *sep) *sep++ = 0; - - if ((ret = ff_parse_pixel_format(&s->formats[i], cur, ctx)) < 0) + if ((ret = ff_parse_pixel_format(&pix_fmt, cur, ctx)) < 0 || + (ret = ff_add_format(&s->formats, pix_fmt)) < 0) return ret; - - cur = sep; } - s->formats[nb_formats] = AV_PIX_FMT_NONE; if (!strcmp(ctx->filter->name, "noformat")) { - const AVPixFmtDescriptor *desc = NULL; - enum AVPixelFormat *formats_allowed; - int nb_formats_lavu = 0, nb_formats_allowed = 0; - - /* count the formats known to lavu */ - while ((desc = av_pix_fmt_desc_next(desc))) - nb_formats_lavu++; - - formats_allowed = av_malloc_array(nb_formats_lavu + 1, sizeof(*formats_allowed)); - if (!formats_allowed) - return AVERROR(ENOMEM); - - /* for each format known to lavu, check if it's in the list of - * forbidden formats */ - while ((desc = av_pix_fmt_desc_next(desc))) { - enum AVPixelFormat pix_fmt = av_pix_fmt_desc_get_id(desc); - - for (i = 0; i < nb_formats; i++) { - if (s->formats[i] == pix_fmt) - break; - } - if (i < nb_formats) - continue; - - formats_allowed[nb_formats_allowed++] = pix_fmt; - } - formats_allowed[nb_formats_allowed] = AV_PIX_FMT_NONE; - av_freep(&s->formats); - s->formats = formats_allowed; + if ((ret = invert_formats(&s->formats, ff_all_formats(AVMEDIA_TYPE_VIDEO))) < 0) + return ret; } + /* hold on to a ref for the lifetime of the filter */ + if ((ret = ff_formats_ref(s->formats, &s->formats)) < 0) + return ret; + return 0; } @@ -132,7 +115,7 @@ static int query_formats(AVFilterContext *ctx) { FormatContext *s = ctx->priv; - return ff_set_common_formats_from_list(ctx, s->formats); + return ff_set_common_formats(ctx, s->formats); } From patchwork Thu Nov 9 12:19:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 44592 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4fa4:b0:181:818d:5e7f with SMTP id gh36csp444570pzb; Thu, 9 Nov 2023 04:27:15 -0800 (PST) X-Google-Smtp-Source: AGHT+IFbWuUxZRnOcTtQq/AXfn6jzkEG9QeA0BwhaT4ClJKBeON/I51gFyivr3Cr+7mGD4LhDqIT X-Received: by 2002:a50:d6c2:0:b0:544:55c3:ccf9 with SMTP id l2-20020a50d6c2000000b0054455c3ccf9mr3929396edj.22.1699532834813; Thu, 09 Nov 2023 04:27:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699532834; cv=none; d=google.com; s=arc-20160816; b=X3x//cJmL4uOwa9nEkue6RVex9TY8wYT1hSbh8ujZpxDq2x9DFZYLefnl0eb3TyhH8 kSkLq9yUeOa4vxDx9UBlNKM0Wmktcfutx//10G6CjsLvMZDSuwZh695D5BGRKnFcE5HD XZv+P/99Pi+w6bIzrEJ2ROpoNlP22O8LIUbbbQcXYJJ4tL7TDOiDXMW862g2bWpaUVA0 w/XojSwVGwl07hu/68fSZbCfGeiUxJLecT7qFithfA2CZQ8xOZKD2w1mKLKLgdsNv9pN x4R3qfgEw7/glversGdt6lL2F6d1lBtlIWsNMfolBfdP+qvOO9ICDCQtQeQVQsZ6al+E +vuw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=uTkhHxXmJJIDfMyd4JLOf9hFRi5y1mlZsaVDuixMlEs=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=dCWOgJsTZ1RctkS2e8slT+f2S2ll1rP3xnGl9GLrOiXx66bw23hD0snnmwWAiGoj3E ApUpad9ZGlBZHA+KR3hE8M9VNgBI1Lq9FyM9GSvb1pDRzRMGo0JihHHCqvFpMXuoFgGw AIsHHjoi5GELpHYY2bCTLKHRYKkQ6nH17BlGRMt2OHvL8apGmhQgmGy05RMZPfeKssLf VaJ1PWrGrfD+qDanw6TuOAALzc6F7NrX9bSk5d6AzAZqnHwaVsD7Hyldpm+NoGjlHiuf EApx7H1Al7FmDy0yTOKjK2Wgkxe6jWU88tC2sJwsEcQuXTVpSQb06Rsj++7OabvABc59 WgaA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b="a/8PBTYv"; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id m25-20020a50c199000000b0054553c4adf0si741316edf.37.2023.11.09.04.27.14; Thu, 09 Nov 2023 04:27:14 -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=@haasn.xyz header.s=mail header.b="a/8PBTYv"; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5001268CC4A; Thu, 9 Nov 2023 14:25:53 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 32E8668CBE3 for ; Thu, 9 Nov 2023 14:25:42 +0200 (EET) Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id 9FDF34BD1E; Thu, 9 Nov 2023 13:25:39 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1699532739; bh=a3NF09iV07+nue11oD8PV+wxk0HNTb6i8Gjs4ZmZQf8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=a/8PBTYvx+5Ly1bVW6HwRZUIPlL+6dBiGVK55YNA0EIAUgoCdIw7TrSBt0/732EO5 rVFzxpHLpyQn+3W+JnGLoE4og4XOS8BKrH7sncFQg44ujVecfnz4JLW1CjCQJQIX9E XtTgW0wjcfz2hk4IoAEdx0+Hb+i77JJ+maFCBfeQ= From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Thu, 9 Nov 2023 13:19:47 +0100 Message-ID: <20231109122534.124157-16-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231109122534.124157-1-ffmpeg@haasn.xyz> References: <20231109122534.124157-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 15/25] avfilter/vf_format: add color_ranges/spaces 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: Niklas Haas Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: ac3Xih/onehd From: Niklas Haas Needed for fftools/ffmpeg_filter to be able to force specific output formats via the filter chain. --- doc/filters.texi | 8 ++++++++ libavfilter/vf_format.c | 44 +++++++++++++++++++++++++++++++++++++---- 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/doc/filters.texi b/doc/filters.texi index 55a333680c..4599d575a6 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -14241,6 +14241,14 @@ It accepts the following parameters: A '|'-separated list of pixel format names, such as "pix_fmts=yuv420p|monow|rgb24". +@item color_spaces +A '|'-separated list of color space names, such as +"color_spaces=bt709|bt470bg|bt2020nc". + +@item color_ranges +A '|'-separated list of color rangee names, such as +"color_spaces=tv|pc". + @end table @subsection Examples diff --git a/libavfilter/vf_format.c b/libavfilter/vf_format.c index b137e3075e..d1bb9daa97 100644 --- a/libavfilter/vf_format.c +++ b/libavfilter/vf_format.c @@ -40,18 +40,24 @@ typedef struct FormatContext { const AVClass *class; char *pix_fmts; + char *csps; + char *ranges; AVFilterFormats *formats; ///< parsed from `pix_fmts` + AVFilterFormats *color_spaces; ///< parsed from `csps` + AVFilterFormats *color_ranges; ///< parsed from `ranges` } FormatContext; static av_cold void uninit(AVFilterContext *ctx) { FormatContext *s = ctx->priv; ff_formats_unref(&s->formats); + ff_formats_unref(&s->color_spaces); + ff_formats_unref(&s->color_ranges); } static av_cold int invert_formats(AVFilterFormats **fmts, - AVFilterFormats *allfmts) + AVFilterFormats *allfmts) { if (!allfmts) return AVERROR(ENOMEM); @@ -99,13 +105,35 @@ static av_cold int init(AVFilterContext *ctx) return ret; } + for (char *sep, *cur = s->csps; cur; cur = sep) { + sep = strchr(cur, '|'); + if (sep && *sep) + *sep++ = 0; + if ((ret = av_color_space_from_name(cur)) < 0 || + (ret = ff_add_format(&s->color_spaces, ret)) < 0) + return ret; + } + + for (char *sep, *cur = s->ranges; cur; cur = sep) { + sep = strchr(cur, '|'); + if (sep && *sep) + *sep++ = 0; + if ((ret = av_color_range_from_name(cur)) < 0 || + (ret = ff_add_format(&s->color_ranges, ret)) < 0) + return ret; + } + if (!strcmp(ctx->filter->name, "noformat")) { - if ((ret = invert_formats(&s->formats, ff_all_formats(AVMEDIA_TYPE_VIDEO))) < 0) + if ((ret = invert_formats(&s->formats, ff_all_formats(AVMEDIA_TYPE_VIDEO))) < 0 || + (ret = invert_formats(&s->color_spaces, ff_all_color_spaces())) < 0 || + (ret = invert_formats(&s->color_ranges, ff_all_color_ranges())) < 0) return ret; } /* hold on to a ref for the lifetime of the filter */ - if ((ret = ff_formats_ref(s->formats, &s->formats)) < 0) + if ((ret = ff_formats_ref(s->formats, &s->formats)) < 0 || + s->color_spaces && (ret = ff_formats_ref(s->color_spaces, &s->color_spaces)) < 0 || + s->color_ranges && (ret = ff_formats_ref(s->color_ranges, &s->color_ranges)) < 0) return ret; return 0; @@ -114,14 +142,22 @@ static av_cold int init(AVFilterContext *ctx) static int query_formats(AVFilterContext *ctx) { FormatContext *s = ctx->priv; + int ret; + + if ((ret = ff_set_common_formats(ctx, s->formats)) < 0 || + s->color_spaces && (ret = ff_set_common_color_spaces(ctx, s->color_spaces)) < 0 || + s->color_ranges && (ret = ff_set_common_color_ranges(ctx, s->color_ranges)) < 0) + return ret; - return ff_set_common_formats(ctx, s->formats); + return 0; } #define OFFSET(x) offsetof(FormatContext, x) static const AVOption options[] = { { "pix_fmts", "A '|'-separated list of pixel formats", OFFSET(pix_fmts), AV_OPT_TYPE_STRING, .flags = AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_FILTERING_PARAM }, + { "color_spaces", "A '|'-separated list of color spaces", OFFSET(csps), AV_OPT_TYPE_STRING, .flags = AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_FILTERING_PARAM }, + { "color_ranges", "A '|'-separated list of color ranges", OFFSET(ranges), AV_OPT_TYPE_STRING, .flags = AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_FILTERING_PARAM }, { NULL } }; From patchwork Thu Nov 9 12:19:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 44591 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4fa4:b0:181:818d:5e7f with SMTP id gh36csp444492pzb; Thu, 9 Nov 2023 04:27:05 -0800 (PST) X-Google-Smtp-Source: AGHT+IFCqbHcUukqqQDUWYrqdRm+eRSNvRy+xEXvIeTt/2YshNJfsACz3eNe/lR/wKj1T4HIvGXb X-Received: by 2002:a50:c050:0:b0:543:74e6:9da2 with SMTP id u16-20020a50c050000000b0054374e69da2mr4586971edd.0.1699532825571; Thu, 09 Nov 2023 04:27:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699532825; cv=none; d=google.com; s=arc-20160816; b=AhOo+Nxe4bmOHEHS2VbtsTGTTb8S6Nb3hTaFP0mHSUL8LOY+WNsRe6JtNLtPDLCXNq 5od42UHs2kPy6KT4Ih9ED0TXm0Mk36GgASAj5JmxEI3ySk8NTwPAaXxWdl5cCNmX82D+ VTB6r9VtfXax5zIXlhzoPZUsvCx5KnzCLg7v+G/qNlLChGpViubDHH0JBQt/y31Dq84M GlOPtoCZmiMPnE50NluNthzCCfyVrcdhMGNjp2u6Cp/HHw8ygzGcpk5xfK4/7XQ6Pvl0 5mis6qIW9dfbUZC05+7Tm/3QJx0jUjCoWK/d+JbYRIE8ZkMQdjLZRHfHJrA7UTfwPAwD AZzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=RkHvey7vlgbFrce9qOi9st7dZ/PKgIsBV5MKNFi9y0w=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=mkWkI3kxBYLIkdISKcSECMDqXq1H3V6xe97JrwcniE4JxbTFokpwjXmXh4Vh3zfiWU otA0Ka1+uQcoj3iZj8z7RKZB4TpVzrAfsUcoWLEh/0IttamlI/wEEYt8DR2dbonQQQvj H3mfm6H8WSDg8t9Chdm0TZW4LhHC5z3/Um+ZgBahQ9SLhdoX+dTznzoyT+RF/uZOOVIO fMo9Y/Ka4quuw84nI87ZmO1m0tZ8ETIk+FuRnUUglfwn6p4uh0VIBbKJRH0DLbY/Yilx yrY62u+bEgIxg4H0xiq7xcz/8WcFVH/JQOdYoszPEpTjvuYUJCjrTj/CQN9ez/xE6ltr AFmw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b="k9/NqhNM"; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id l17-20020a50c111000000b00544f8271b62si2604780edf.521.2023.11.09.04.27.05; Thu, 09 Nov 2023 04:27:05 -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=@haasn.xyz header.s=mail header.b="k9/NqhNM"; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 45DB368CC48; Thu, 9 Nov 2023 14:25:52 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2E47168CBE0 for ; Thu, 9 Nov 2023 14:25:42 +0200 (EET) Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id DD4C24BD24; Thu, 9 Nov 2023 13:25:39 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1699532739; bh=vIn2DHeDJINUOJ3CO97KrlnY6mYWE+gZrpE7foQrotk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=k9/NqhNMcdnWy8Gpaocbp0EeuI7sFwmNW2CyV7TeHX4V+GN2rl/LFbU/sPlUK/Fs/ iFDuui4f+QKrjXta/FeFafNqRum1aSdnpJbnDjpeHx6FliIpZHDP9RzuuqU7u3/j9I 9BrqN9HgJLiaRrpKif0kS8Wpzx8DREQ1bYhkIRsI= From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Thu, 9 Nov 2023 13:19:48 +0100 Message-ID: <20231109122534.124157-17-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231109122534.124157-1-ffmpeg@haasn.xyz> References: <20231109122534.124157-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 16/25] avfilter/vf_format: allow empty pix_fmts list 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: Niklas Haas Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: sml/ppew4GRk From: Niklas Haas Which will impose no restriction. This makes sense when using e.g. `color_ranges=pc` to limit the color range, without also limiting the pixel format. --- libavfilter/vf_format.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/libavfilter/vf_format.c b/libavfilter/vf_format.c index d1bb9daa97..3a353bbb0d 100644 --- a/libavfilter/vf_format.c +++ b/libavfilter/vf_format.c @@ -91,11 +91,6 @@ static av_cold int init(AVFilterContext *ctx) enum AVPixelFormat pix_fmt; int ret; - if (!s->pix_fmts) { - av_log(ctx, AV_LOG_ERROR, "Empty output format string.\n"); - return AVERROR(EINVAL); - } - for (char *sep, *cur = s->pix_fmts; cur; cur = sep) { sep = strchr(cur, '|'); if (sep && *sep) @@ -131,7 +126,7 @@ static av_cold int init(AVFilterContext *ctx) } /* hold on to a ref for the lifetime of the filter */ - if ((ret = ff_formats_ref(s->formats, &s->formats)) < 0 || + if (s->formats && (ret = ff_formats_ref(s->formats, &s->formats)) < 0 || s->color_spaces && (ret = ff_formats_ref(s->color_spaces, &s->color_spaces)) < 0 || s->color_ranges && (ret = ff_formats_ref(s->color_ranges, &s->color_ranges)) < 0) return ret; @@ -144,7 +139,7 @@ static int query_formats(AVFilterContext *ctx) FormatContext *s = ctx->priv; int ret; - if ((ret = ff_set_common_formats(ctx, s->formats)) < 0 || + if (s->formats && (ret = ff_set_common_formats(ctx, s->formats)) < 0 || s->color_spaces && (ret = ff_set_common_color_spaces(ctx, s->color_spaces)) < 0 || s->color_ranges && (ret = ff_set_common_color_ranges(ctx, s->color_ranges)) < 0) return ret; From patchwork Thu Nov 9 12:19:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 44594 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4fa4:b0:181:818d:5e7f with SMTP id gh36csp444754pzb; Thu, 9 Nov 2023 04:27:34 -0800 (PST) X-Google-Smtp-Source: AGHT+IGQcgg4ql9zXaapw9Mfevd6JWAATAK/K1144I9t/TUiCpdyHIFUxNQQsq7h4ZEiztkbUxsy X-Received: by 2002:a17:907:987:b0:9e0:4910:1649 with SMTP id bf7-20020a170907098700b009e049101649mr4362504ejc.8.1699532853724; Thu, 09 Nov 2023 04:27:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699532853; cv=none; d=google.com; s=arc-20160816; b=lKlZFWlex2A9sghFCifZkCigOInzD0P/XyVxt9o1pY48RYDwu8l3U53S7efTN34wVQ dF2jioxdfcSBqx6km0u4RJCiEPfJcKDM5dlUXXs+m7zpwL8luczij/albGG35zjknfii b5uHuYyTLklUkVkfLghOaIpePIy1JhULOmm8oq33NiY52gI7ELGLXYAcOJ2gKBK1HOFD tPU8Sm6Hs/265LoZ8x+WxCM7EgwZuaVY5H7qjhQMQModDCQA2pZ6wBP0tsDN3vAtjsSD jdjFXR7Sm2+u5v7al5p6/iYvDv0AtFDkBNo6IC3WzRf+7/6CKQd6AuRIP3w/MMO0iaZb UbwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=wgF1HrNAP+g6AYjd4LqP3iwoEY254WhtHxapMNp3kMY=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=KV3ccTtouhLG3eJqPdyJWwcnGuPxBEE1UkWktC81R4D5zmNqhoCmNoprOSnr/hR0sf t0lTgUhAF0DiEx2Kk7EJMAh2ytk0rHwwUGKXXcp306PpUTMm12yPIZtjLLJDj5Abuom1 IlBOFpPKAAWeKY9L9coKrFWlkh/61SooIQfiKPDGKvM6X2PJNUax/kPJ1gejP2SK5UyZ bjZlrd58yJDiacRKOLsJ03InKH+milpuYUWLGgMovpmPw0d55AvFNtblFx0G7OfG7qA5 Y2XxnNNXW390YQZeMG1FRArwAS8ddhGyCXeE1CdKQBfJvwvfb2BSLc7hIDS4GACapxyq TwAA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b=JxTIL6Dr; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id ww3-20020a170907084300b009b953f26abbsi3511597ejb.1019.2023.11.09.04.27.33; Thu, 09 Nov 2023 04:27:33 -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=@haasn.xyz header.s=mail header.b=JxTIL6Dr; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 49EC668CC86; Thu, 9 Nov 2023 14:25:55 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 45E7468CBE7 for ; Thu, 9 Nov 2023 14:25:42 +0200 (EET) Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id 27EC94BD25; Thu, 9 Nov 2023 13:25:40 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1699532740; bh=h5LwYhtDbeR8KDwAZPYQzL1/cWUVcnYK8MtEXItqnzc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JxTIL6DrMz6rSkeYFKtGpcM+xwejIeARytKHGxREAkvzz1w/E5ipFb37KrMFclJHm O0/yQlOp7q4GOYbdLnEAKBFaHu7tLKFaGSnobtPVNvhPN7su2YycMNkRVVp3p6WHtl gNECIjo/TGeKhDwHOQQSdNxAf+4frqC3wnlmmsek= From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Thu, 9 Nov 2023 13:19:49 +0100 Message-ID: <20231109122534.124157-18-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231109122534.124157-1-ffmpeg@haasn.xyz> References: <20231109122534.124157-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 17/25] avcodec: add YUV color space metadata to AVCodec 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: Niklas Haas Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: /ZDxTO4Ygl5x From: Niklas Haas This is motivated primarily by a desire for YUVJ removal, which will require signalling the supported color ranges as part of the codec capabilities. But since we're adding YUV range, we might as well add the YUV color matrix as well - since some codecs (e.g. VP8, JPEG) only support certain values. I decided to preserve the ambiguous and misleading "color_spaces" name, for symmetry with AVFrame.colorspace. (Though this would IMO be better called "color_matrix" or "color_system") I also decided to omit the other AVColor* fields for now, because vf_scale cannot handle auto-conversion between primaries/transfer/etc. There is little value in adding metadata we cannot do anything with, and no harm in extending the API again in the future. In theory, vf_scale can handle conversion between chroma locations, but also the signalling for this is annoying, so I'll defer it to a future commit. --- doc/APIchanges | 3 +++ libavcodec/codec.h | 6 ++++++ libavcodec/version.h | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/doc/APIchanges b/doc/APIchanges index 97b6de8276..87f4368e03 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -2,6 +2,9 @@ The last version increases of all libraries were on 2023-02-09 API changes, most recent first: +2023-11-xx - xxxxxxxxxx - lavc 60.34.100 - avcodec.h + Add AVCodec.color_ranges and AVCodec.color_spaces. + 2023-11-xx - xxxxxxxxxx - lavf 58.15.100 - buffersink.h Add av_buffersink_get_colorspace and av_buffersink_get_color_range. diff --git a/libavcodec/codec.h b/libavcodec/codec.h index 8034f1a53c..8bd678de7a 100644 --- a/libavcodec/codec.h +++ b/libavcodec/codec.h @@ -235,6 +235,12 @@ typedef struct AVCodec { * Array of supported channel layouts, terminated with a zeroed layout. */ const AVChannelLayout *ch_layouts; + + /** + * Array of supported YUV color formats. Ignored for RGB/Gray formats. + */ + const enum AVColorRange *color_ranges; ///< terminated by AVCOL_RANGE_UNSPECIFIED + const enum AVColorSpace *color_spaces; ///< terminated by AVCOL_SPC_UNSPECIFIED } AVCodec; /** diff --git a/libavcodec/version.h b/libavcodec/version.h index 2a08e42d7e..0ef6c991f3 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -29,7 +29,7 @@ #include "version_major.h" -#define LIBAVCODEC_VERSION_MINOR 33 +#define LIBAVCODEC_VERSION_MINOR 34 #define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ From patchwork Thu Nov 9 12:19:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 44583 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4fa4:b0:181:818d:5e7f with SMTP id gh36csp444840pzb; Thu, 9 Nov 2023 04:27:43 -0800 (PST) X-Google-Smtp-Source: AGHT+IFsvh1WWSoju6QFDh8c+YomTyHtnhmfI2UwaM/YNMCVUWlqbtr/IFFxJyzO3+rMKKaEODS3 X-Received: by 2002:a50:9b06:0:b0:543:5b0b:8902 with SMTP id o6-20020a509b06000000b005435b0b8902mr4205241edi.24.1699532863135; Thu, 09 Nov 2023 04:27:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699532863; cv=none; d=google.com; s=arc-20160816; b=wBd+7xXQqQXALWYCdQauxUuccO+G9C+tk4xaHCd5Vkh+uvF1LOZZlQ7VEstSEfT2W3 u4563sU7ckCxFcmi+pbAtaf6Q39Ls3Apg03nF4dYxDiMCt87YQSn9FKNIuxe6xytOJmS U/UmQtoaSXxzdGbFEM0gCGkjQtsw8XZfmAN+6zTSYzbNLJEu16/2ixuilw1Q4rmMyufe ZVrU7NLhIMVjHnFZ5HU4Fx2eHT84Nwdq063hqKLqeKcXWGmDpR0gmyYGcfODbchHnrrc QmuZ6HiHP2ndYHm0PADuerKO3+PbPjIeuzy2WV/WVsiFyQPf7iocBCELYasYmmokN3sT KCyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=0QTPXtZsijyB0gX6pF1yRnG5J3AEVW63K0R3T0MWhK0=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=DoqzWqneUBwxUdhhvaYjugg7fwfyfb04Wnl/ifr5M24sW5ErLgTSR60G2ihJbbG0qB 0AdDBj1cErC9ZBvgXx/SsD+aSdoLxraKPAQtMhwinNUIm8Vwv9Uuvany9vHXK3+4gBBO ZWJ1z+ZLpJLZt43NnsaoM7kQg3/rObjkL8FuaXYbWTExbFp/teS5wXfiH1g9krZGxVin uEzUWNXUD+VOCA3SDDfdvstVyvO83g2meMgF8+fszJmA1ljouezSwAQ288oOz6xHYelH Bs+L66BYgm4C32r7OH+Uy1yxh6hk8RVH9qSkgoK8Dg4x8qIZryhWYkEWP6/t/9E4iMhL tcSw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b=B+qI8OPj; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id k29-20020a508add000000b005435820cf9fsi7426500edk.22.2023.11.09.04.27.42; Thu, 09 Nov 2023 04:27:43 -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=@haasn.xyz header.s=mail header.b=B+qI8OPj; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 490D068CC8B; Thu, 9 Nov 2023 14:25:56 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 61D9768CBF2 for ; Thu, 9 Nov 2023 14:25:42 +0200 (EET) Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id 6B6314BD2A; Thu, 9 Nov 2023 13:25:40 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1699532740; bh=lfK4Jc6rWQLTow6LTYGK02lp+Bo1XCrUxQr8vEirom4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=B+qI8OPjLuuUUuYP0Ddmtxzjnj0dxxWd9TPX7A+1o/ha6Lo9LSeK7LTbFFBWEuAoN YWd5YrRXyF50gnzUqIr7cJJTvuFZduWCB92+ph92zo+vlfVWcazNWVRgL+LqTeRpPI fq/dhtHn1QEnaEzWVChAkF4dvq2i/suZYl+4CWbk= From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Thu, 9 Nov 2023 13:19:50 +0100 Message-ID: <20231109122534.124157-19-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231109122534.124157-1-ffmpeg@haasn.xyz> References: <20231109122534.124157-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 18/25] lavc: set color_ranges for YUVJ-only 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: Niklas Haas Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 9zLMf8ddN2WA From: Niklas Haas Only affects amv and roqvideo. (mjpeg is handled separately by fftools) --- libavcodec/mjpegenc.c | 3 +++ libavcodec/roqvideoenc.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c index 508772987f..c827a47e59 100644 --- a/libavcodec/mjpegenc.c +++ b/libavcodec/mjpegenc.c @@ -685,6 +685,9 @@ const FFCodec ff_amv_encoder = { .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_NONE }, + .p.color_ranges = (const enum AVColorRange[]) { + AVCOL_RANGE_JPEG, AVCOL_RANGE_UNSPECIFIED + }, .p.priv_class = &amv_class, .p.capabilities = AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, }; diff --git a/libavcodec/roqvideoenc.c b/libavcodec/roqvideoenc.c index 0933abf4f9..b584ee1142 100644 --- a/libavcodec/roqvideoenc.c +++ b/libavcodec/roqvideoenc.c @@ -1127,6 +1127,8 @@ const FFCodec ff_roq_encoder = { .close = roq_encode_end, .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_NONE }, + .p.color_ranges = (const enum AVColorRange[]){ AVCOL_RANGE_JPEG, + AVCOL_RANGE_UNSPECIFIED }, .p.priv_class = &roq_class, .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, }; From patchwork Thu Nov 9 12:19:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 44593 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4fa4:b0:181:818d:5e7f with SMTP id gh36csp444666pzb; Thu, 9 Nov 2023 04:27:24 -0800 (PST) X-Google-Smtp-Source: AGHT+IFVqoDyU2J2lBeuHJnNL+PEUiIgf3d/Q2Su49QpaMfP8n9gh/gqFEoiGg3/FYMbJTEAhc98 X-Received: by 2002:a50:ab12:0:b0:53e:467c:33f1 with SMTP id s18-20020a50ab12000000b0053e467c33f1mr4715335edc.8.1699532844560; Thu, 09 Nov 2023 04:27:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699532844; cv=none; d=google.com; s=arc-20160816; b=uEIDLs7bIeAzupOd83P6CWnsN9t70ibW56WD1jlTf442GhZZyXdaFi9lZStu3n/zlb i3cdPibqU33bSQ1okkLfk8QdTvo4r1njxt/Ni7CQ8P8UaOFEwQGuja1rbg+AlAWTYL8W pN2rYQxi3AlFaGjURusTVEoIvmMuMz4QMUTPct6zku+ZHpwcpGhAA+OrwU8Asj0e6zCU ZuNZBvRPNLKeSPE+wT8YXFYWIWjr4W28jlxmLpBks3rdPON00CLwUBPAS5XLBGw+pINv yDRQeOY6JkD6a+nNRIstp+NsScsdoj12YvwuQdiITSDkz6YvVZ6buw9pBLO7qcoEMAHG cJZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=tGuuFLs/W/+ij94Yuf9EQOHjGw6F9JnQQAZ5ilGXdIY=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=gdwBizZOY+fPkUxMdE4o2jlcvmVUYe/lS+gRYQCg6ut4o0MDPuLuzk1vnszcnbNSpu GlpOtfDzlVxQ6jQbdh49WUDtwYodFcwU98wqSznjjeA+viNKQmXhe5kROx5lxehHl6k8 MmIR23LsxfviWx5EM4Nd6ROgngc8o5j2rJzp5211Rj/SjrPQyKmim6+0TrWIMQTkjAPn M0mvGqBNDc80kGzFtN2GzKHn94Du+NydyYzSlw+aK3bXCeUAX2EScFcNt2zCxEghKdmN HRlLL8wyfPhouUX1lml9fqqo4Hm4q7vUA66NCQ5jB9Jd3s5DkHHKoFCAwGwt2wwcac/Z HuJg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b=jnzzSuP1; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a30-20020a509ea1000000b0053ec457caffsi7999069edf.114.2023.11.09.04.27.24; Thu, 09 Nov 2023 04:27:24 -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=@haasn.xyz header.s=mail header.b=jnzzSuP1; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4C62168CC72; Thu, 9 Nov 2023 14:25:54 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4457A68CBE6 for ; Thu, 9 Nov 2023 14:25:42 +0200 (EET) Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id A8FD74BD2B; Thu, 9 Nov 2023 13:25:40 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1699532740; bh=wulJWKl7Mr2uR8TX4zMorRfpdCPdtyVCqpp8H1JE17U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jnzzSuP1qhgceRaOyleLGVpKHH8QpJWR/mtH6Pvhxz8iZr6Lld+FlWA1UC9a9kwyb 3LbM/ctX7BfZj2gBlONgTwqaSbXSNkrqGgoajZGvEYWeeOrxP8pRBhlH60q74u3TPv T2b5HmIM4XdBTvWmnOydHVDV523iEcSzV9t3n67g= From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Thu, 9 Nov 2023 13:19:51 +0100 Message-ID: <20231109122534.124157-20-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231109122534.124157-1-ffmpeg@haasn.xyz> References: <20231109122534.124157-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 19/25] (WIP) lavc: set color_ranges for MPEG-only 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: Niklas Haas Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: O2NiBGLGj7A3 From: Niklas Haas Mirroring the previous commit, all codecs which previously never accepted YUVJ now need to be labelled as MPEG range only. TODO: - add the rest of the codecs --- libavcodec/mpeg4videoenc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libavcodec/mpeg4videoenc.c b/libavcodec/mpeg4videoenc.c index d1e50612dd..bb98c84eab 100644 --- a/libavcodec/mpeg4videoenc.c +++ b/libavcodec/mpeg4videoenc.c @@ -1403,6 +1403,9 @@ const FFCodec ff_mpeg4_encoder = { FF_CODEC_ENCODE_CB(ff_mpv_encode_picture), .close = ff_mpv_encode_end, .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE }, + .p.color_ranges = (const enum AVColorRange[]) { + AVCOL_RANGE_MPEG, AVCOL_RANGE_UNSPECIFIED + }, .p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_SLICE_THREADS | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, From patchwork Thu Nov 9 12:19:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 44595 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4fa4:b0:181:818d:5e7f with SMTP id gh36csp444904pzb; Thu, 9 Nov 2023 04:27:51 -0800 (PST) X-Google-Smtp-Source: AGHT+IFLrCNECeZ8F0vuTWBoSGhWluwM2fOuW9kHpTpdIcTcANwcLY2SoVwPWu4KJGLTOsyxRsZG X-Received: by 2002:a17:906:4a53:b0:9e5:1db7:31b1 with SMTP id a19-20020a1709064a5300b009e51db731b1mr862370ejv.2.1699532871289; Thu, 09 Nov 2023 04:27:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699532871; cv=none; d=google.com; s=arc-20160816; b=rHxrPZhpOiz5Y+ypyE3UKlODo1r5dHIGbafqNm0uZNxLLHEe9BK7WbtkPiIcAj5RM3 4xOwH69Es3clU6mx0vkQ3CtHfisNrzHhJZgB4n1QIJS94UhIuFANqN3DEwHm6lZErkYz bl6PaYcmIeRFoHlAl3GOQOf06kpPWA6sBy5411VeaES5CGhLeslSDKMItlUwwU+b67uL j+w/Vf97yyDdKLIGsjguWRsdrWaTosZCFpWCvvCuSGWFPkmgECt/hA0lWoiBwmMRK7o4 Sw+wtINE1ct8IADh/YMlSnrgpERL0RwuRxrQfILLWm9ilvlJdr/AccoQQfUfOe3RneWj FHAQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=IbcmFZttkurAS91wUd3VKGpt24xBNWTlIyPxnGa03Lk=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=oSQMT2RndH1Izgt5a4bHss3HLEQcSdbuTopz8NNGAkHxKxhYH+gAxrejPGIL+4TVk9 TpOzN/cq1W/PE1ovrleRxU7dsgkyzFY7ynkNAsKeGKFqPhBTd3LBH/ZgRp45H8qjz/QU PkFtjYFiFJ/BJvynn8W79mTG2+ne7T39e0sefjbii+iT4bNnA981cH+iMZKTJ95P706V ZZ4155jcpo1Ksz6yXqSdcCH31QjgIKxBCYKFPQ4UEAEDAzMPK0ZDIeVDgldqivns1EY2 3Ry5CWrlfxA9GsZuYtV5ggz5LDtA5j8B/m1qPzx3TrNuxyJSYinfLk865b29ZMM+FKXR HGSg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b=TGr4A+kQ; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id f11-20020a170906738b00b009d38bf5a215si3330331ejl.612.2023.11.09.04.27.50; Thu, 09 Nov 2023 04:27:51 -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=@haasn.xyz header.s=mail header.b=TGr4A+kQ; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4D7DB68CC92; Thu, 9 Nov 2023 14:25:57 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 48A5068CBED for ; Thu, 9 Nov 2023 14:25:42 +0200 (EET) Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id E97AE4BD2C; Thu, 9 Nov 2023 13:25:40 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1699532741; bh=B1xQF4rSPco1D2cqzX0mix2WghfnFi7FeYIO/qOKkU4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TGr4A+kQnOFjuy1OzLGrnDdnftkM8FV/s+psxwBViu6ewjHPuubEpDSh+RbK2WG4I 1TnVwEgIbuDcLfVZyagRZWdgl9CFjdGPy00Y4xX19VMWbw1IWgImWe7zRFPRCgwade JhE+krWlY8C2MZZnpow1evdN2PXsVnmTAJx6KT1s= From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Thu, 9 Nov 2023 13:19:52 +0100 Message-ID: <20231109122534.124157-21-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231109122534.124157-1-ffmpeg@haasn.xyz> References: <20231109122534.124157-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 20/25] fftools/ffmpeg_filter: simplify choose_pix_fmts 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: Niklas Haas Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 3mL92Vp/xnIE From: Niklas Haas The only meaningful difference between choose_pix_fmts and the default code was the inclusion of an extra branch for `keep_pix_fmt` being true. However, in this case, we either: 1. Force the specific `ofp->format` that we inherited from ofilter_bind_ost, or if no format was set: 2. Print an empty format list Both of these goals can be accomplished by simply moving the decision logic to ofilter_bind_ost, to avoid setting any format list when keep_pix_fmt is enabled. This is arguably cleaner as it moves format selection logic to a single function. In the case of branch 1, nothing else needs to be done as we already force the format provided in ofp->format, if any is set. Add an assertion to verify this assumption just in case. (Side note: The "choose_*" family of functions are arguably misnomers, as they should really be called "print_*" - their current behavior is to print the relevant format lists to the `vf/af_format` filter arguments) --- fftools/ffmpeg_filter.c | 49 ++++++++--------------------------------- 1 file changed, 9 insertions(+), 40 deletions(-) diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c index dd5cfe4481..5b99c4ba40 100644 --- a/fftools/ffmpeg_filter.c +++ b/fftools/ffmpeg_filter.c @@ -313,36 +313,6 @@ static void sub2video_update(InputFilterPriv *ifp, int64_t heartbeat_pts, ifp->sub2video.initialize = 0; } -/* *dst may return be set to NULL (no pixel format found), a static string or a - * string backed by the bprint. Nothing has been written to the AVBPrint in case - * NULL is returned. The AVBPrint provided should be clean. */ -static int choose_pix_fmts(OutputFilter *ofilter, AVBPrint *bprint, - const char **dst) -{ - OutputFilterPriv *ofp = ofp_from_ofilter(ofilter); - OutputStream *ost = ofilter->ost; - - *dst = NULL; - - if (ost->keep_pix_fmt || ofp->format != AV_PIX_FMT_NONE) { - *dst = ofp->format == AV_PIX_FMT_NONE ? NULL : - av_get_pix_fmt_name(ofp->format); - } else if (ofp->formats) { - const enum AVPixelFormat *p = ofp->formats; - - for (; *p != AV_PIX_FMT_NONE; p++) { - const char *name = av_get_pix_fmt_name(*p); - av_bprintf(bprint, "%s%c", name, p[1] == AV_PIX_FMT_NONE ? '\0' : '|'); - } - if (!av_bprint_is_complete(bprint)) - return AVERROR(ENOMEM); - - *dst = bprint->str; - } - - return 0; -} - /* Define a function for appending a list of allowed formats * to an AVBPrint. If nonempty, the list will have a header. */ #define DEF_CHOOSE_FORMAT(name, type, var, supported_list, none, printf_format, get_name) \ @@ -365,8 +335,8 @@ static void choose_ ## name (OutputFilterPriv *ofp, AVBPrint *bprint) \ av_bprint_chars(bprint, ':', 1); \ } -//DEF_CHOOSE_FORMAT(pix_fmts, enum AVPixelFormat, format, formats, AV_PIX_FMT_NONE, -// GET_PIX_FMT_NAME) +DEF_CHOOSE_FORMAT(pix_fmts, enum AVPixelFormat, format, formats, + AV_PIX_FMT_NONE, "%s", av_get_pix_fmt_name) DEF_CHOOSE_FORMAT(sample_fmts, enum AVSampleFormat, format, formats, AV_SAMPLE_FMT_NONE, "%s", av_get_sample_fmt_name) @@ -690,7 +660,7 @@ int ofilter_bind_ost(OutputFilter *ofilter, OutputStream *ost) ofp->height = ost->enc_ctx->height; if (ost->enc_ctx->pix_fmt != AV_PIX_FMT_NONE) { ofp->format = ost->enc_ctx->pix_fmt; - } else { + } else if (!ost->keep_pix_fmt) { ofp->formats = c->pix_fmts; // MJPEG encoder exports a full list of supported pixel formats, @@ -1169,7 +1139,6 @@ static int configure_output_video_filter(FilterGraph *fg, OutputFilter *ofilter, AVBPrint bprint; int pad_idx = out->pad_idx; int ret; - const char *pix_fmts; char name[255]; snprintf(name, sizeof(name), "out_%d_%d", ost->file_index, ost->index); @@ -1204,17 +1173,17 @@ static int configure_output_video_filter(FilterGraph *fg, OutputFilter *ofilter, pad_idx = 0; } + av_assert0(!ost->keep_pix_fmt || (!ofp->format && !ofp->formats)); av_bprint_init(&bprint, 0, AV_BPRINT_SIZE_UNLIMITED); - ret = choose_pix_fmts(ofilter, &bprint, &pix_fmts); - if (ret < 0) - return ret; - - if (pix_fmts) { + choose_pix_fmts(ofp, &bprint); + if (!av_bprint_is_complete(&bprint)) + return AVERROR(ENOMEM); + if (bprint.len) { AVFilterContext *filter; ret = avfilter_graph_create_filter(&filter, avfilter_get_by_name("format"), - "format", pix_fmts, NULL, fg->graph); + "format", bprint.str, NULL, fg->graph); av_bprint_finalize(&bprint, NULL); if (ret < 0) return ret; From patchwork Thu Nov 9 12:19:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 44596 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4fa4:b0:181:818d:5e7f with SMTP id gh36csp444978pzb; Thu, 9 Nov 2023 04:28:01 -0800 (PST) X-Google-Smtp-Source: AGHT+IHXouAxK3sZHQHrtb0gv7juBjhkD0eD8Q6NmpLsjsGx+Z0rIz3No5H8bQpIseEQtZHhAirx X-Received: by 2002:a17:906:2a0c:b0:9b2:aa2f:ab69 with SMTP id j12-20020a1709062a0c00b009b2aa2fab69mr3431522eje.30.1699532880703; Thu, 09 Nov 2023 04:28:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699532880; cv=none; d=google.com; s=arc-20160816; b=Hecxg+mirNizK99+cnfJwN3nwXg+ImgnrtiWBPyWoLJj3oDfB98DIs0mkRMLi4rOlC ysC0TJtvKbUSU0rzVEWMZqwKEqzyb1RKknFk7gszAyxKggqp7DtpvDpdZqGgsLxYFG3G 6HbeFcGib8nD3nsqaDCRgQhLgGCQZOfZXZehQy63L86dKunDoLIQTXmMkgIIQ9oSXG19 i2H6P8jkfEpibYxjyZk+6iW+bj5cXlldDOANPuB3689eVUlkHJXL+XMyWVbWM1ETjWSh dO2IoU0NNjES29sVTBtG3aCcK/gdeLUG6tH/hUnYix7QdRDATISUFKPbFhSuym17Vz/Q b7jA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=3kS4fuLEGVFRvTLnjKupsKvrfPuuUgU1ogLHbWUlYCY=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=mXTWkkhRFEWafpIIYZ28/By69a0Eow9fESMxju5Y+5HfhGDG46zp7xSqFJX1cyVhpt G5+zc8YjMs61G/optC+pBPn31jYg5eqY1qUagAIeRGjqasEwkBH69oAMBp7megA7JgRo lvvxti8im4Ra0h8mVgTwqbrDCQhCw+V6CRWSYU1xT+/rZqRLqWxMPa8+rV9TdPLp97KC UGsLRoOBaBsUNrNSq/DZkNChYVKyVWlWHDoqNykagGXkgsGh9gCQPjfb1UDxfIchG3/J aCw4oH6CLwvhnODZuofFxnxFrUCgpjK45XETmNUSMYSGhIvLnbHQ26oeKRDnZiOopJ6G LxTw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b="okv/ADFk"; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id oz38-20020a1709077da600b0099b7f483374si3140668ejc.183.2023.11.09.04.28.00; Thu, 09 Nov 2023 04:28: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=@haasn.xyz header.s=mail header.b="okv/ADFk"; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BC4B668CC9B; Thu, 9 Nov 2023 14:25:58 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 61D2568CBE0 for ; Thu, 9 Nov 2023 14:25:42 +0200 (EET) Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id 343954BD2D; Thu, 9 Nov 2023 13:25:41 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1699532741; bh=yvpC3EjuKot+GyIBwEu/eJvsbqAvWISjmNO8tD0zTFU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=okv/ADFk22b0exECiBOQM7K/ZSdu5UndnY0Zn3gA8/MfMgY2y3kVb8tyeMMDlMn2D dYELnvgsnDb46n1QrIspZ8RxpJMJPxo0e3FFtsw2hCKT+HVimShRVZwkz86g5tkLn+ zwjV5WzKDn4gzPHEjZhaRrTRZW4lw5k+YPQhs6Ts= From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Thu, 9 Nov 2023 13:19:53 +0100 Message-ID: <20231109122534.124157-22-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231109122534.124157-1-ffmpeg@haasn.xyz> References: <20231109122534.124157-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 21/25] fftools/ffmpeg_filter: propagate codec yuv metadata to filters 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: Niklas Haas Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: mxEqucEThrhb From: Niklas Haas To convert between color spaces/ranges, if needed by the codec properties. We momentarily duplicate the mjpeg strictness logic to also enfoce full range. This duplication will be cleaned up in an upcoming commit. Due to avcodec_open2 being called after ofilter_bind_ost, we need to look up the eventual encoder options from the options dictionary directly, following the same design as the "strict" option. --- fftools/ffmpeg_filter.c | 55 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c index 5b99c4ba40..da770ef650 100644 --- a/fftools/ffmpeg_filter.c +++ b/fftools/ffmpeg_filter.c @@ -173,6 +173,8 @@ typedef struct OutputFilterPriv { int width, height; int sample_rate; AVChannelLayout ch_layout; + enum AVColorSpace color_space; + enum AVColorRange color_range; // time base in which the output is sent to our downstream // does not need to match the filtersink's timebase @@ -188,6 +190,8 @@ typedef struct OutputFilterPriv { const int *formats; const AVChannelLayout *ch_layouts; const int *sample_rates; + const enum AVColorSpace *color_spaces; + const enum AVColorRange *color_ranges; AVRational enc_timebase; // offset for output timestamps, in AV_TIME_BASE_Q @@ -344,6 +348,12 @@ DEF_CHOOSE_FORMAT(sample_fmts, enum AVSampleFormat, format, formats, DEF_CHOOSE_FORMAT(sample_rates, int, sample_rate, sample_rates, 0, "%d", ) +DEF_CHOOSE_FORMAT(color_spaces, enum AVColorSpace, color_space, color_spaces, + AVCOL_SPC_UNSPECIFIED, "%s", av_color_space_name); + +DEF_CHOOSE_FORMAT(color_ranges, enum AVColorRange, color_range, color_ranges, + AVCOL_RANGE_UNSPECIFIED, "%s", av_color_range_name); + static void choose_channel_layouts(OutputFilterPriv *ofp, AVBPrint *bprint) { if (av_channel_layout_check(&ofp->ch_layout)) { @@ -570,6 +580,8 @@ static OutputFilter *ofilter_alloc(FilterGraph *fg) ofilter = &ofp->ofilter; ofilter->graph = fg; ofp->format = -1; + ofp->color_space = AVCOL_SPC_UNSPECIFIED; + ofp->color_range = AVCOL_RANGE_UNSPECIFIED; ofilter->last_pts = AV_NOPTS_VALUE; return ofilter; @@ -638,6 +650,17 @@ static int set_channel_layout(OutputFilterPriv *f, OutputStream *ost) return 0; } +static int ost_opt_int(OutputStream *ost, const char *name, int defval) +{ + const AVDictionaryEntry *e = av_dict_get(ost->encoder_opts, name, NULL, 0); + if (e) { + const AVOption *o = av_opt_find(ost->enc_ctx, e->key, NULL, 0, 0); + av_assert0(o); + av_opt_eval_int(ost->enc_ctx, o, e->value, &defval); + } + return defval; +} + int ofilter_bind_ost(OutputFilter *ofilter, OutputStream *ost) { const OutputFile *of = output_files[ost->file_index]; @@ -645,6 +668,8 @@ int ofilter_bind_ost(OutputFilter *ofilter, OutputStream *ost) FilterGraph *fg = ofilter->graph; FilterGraphPriv *fgp = fgp_from_fg(fg); const AVCodec *c = ost->enc_ctx->codec; + enum AVColorSpace color_space; + enum AVColorRange color_range; av_assert0(!ofilter->ost); @@ -658,6 +683,8 @@ int ofilter_bind_ost(OutputFilter *ofilter, OutputStream *ost) case AVMEDIA_TYPE_VIDEO: ofp->width = ost->enc_ctx->width; ofp->height = ost->enc_ctx->height; + color_space = ost_opt_int(ost, "color_space", ost->enc_ctx->colorspace); + color_range = ost_opt_int(ost, "color_range", ost->enc_ctx->color_range); if (ost->enc_ctx->pix_fmt != AV_PIX_FMT_NONE) { ofp->format = ost->enc_ctx->pix_fmt; } else if (!ost->keep_pix_fmt) { @@ -687,6 +714,30 @@ int ofilter_bind_ost(OutputFilter *ofilter, OutputStream *ost) ofp->formats = mjpeg_formats; } } + if (color_space != AVCOL_SPC_UNSPECIFIED) { + ofp->color_space = color_space; + } else { + ofp->color_spaces = c->color_spaces; + } + if (color_range != AVCOL_RANGE_UNSPECIFIED) { + ofp->color_range = color_range; + } else { + ofp->color_ranges = c->color_ranges; + + // MJPEG encoder exports a full list of supported pixel formats, + // but the full-range ones are experimental-only. + // Restrict the auto-conversion list unless -strict experimental + // has been specified. + if (!strcmp(c->name, "mjpeg")) { + static const enum AVColorRange mjpeg_ranges[] = + { AVCOL_RANGE_JPEG, AVCOL_RANGE_UNSPECIFIED }; + + int strict_val = ost->enc_ctx->strict_std_compliance; + strict_val = ost_opt_int(ost, "strict", strict_val); + if (strict_val > FF_COMPLIANCE_UNOFFICIAL) + ofp->color_ranges = mjpeg_ranges; + } + } fgp->disable_conversions |= ost->keep_pix_fmt; @@ -1176,6 +1227,8 @@ static int configure_output_video_filter(FilterGraph *fg, OutputFilter *ofilter, av_assert0(!ost->keep_pix_fmt || (!ofp->format && !ofp->formats)); av_bprint_init(&bprint, 0, AV_BPRINT_SIZE_UNLIMITED); choose_pix_fmts(ofp, &bprint); + choose_color_spaces(ofp, &bprint); + choose_color_ranges(ofp, &bprint); if (!av_bprint_is_complete(&bprint)) return AVERROR(ENOMEM); if (bprint.len) { @@ -1678,6 +1731,8 @@ static int configure_filtergraph(FilterGraph *fg) ofp->width = av_buffersink_get_w(sink); ofp->height = av_buffersink_get_h(sink); + ofp->color_space = av_buffersink_get_colorspace(sink); + ofp->color_range = av_buffersink_get_color_range(sink); // If the timing parameters are not locked yet, get the tentative values // here but don't lock them. They will only be used if no output frames From patchwork Thu Nov 9 12:19:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 44597 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4fa4:b0:181:818d:5e7f with SMTP id gh36csp445064pzb; Thu, 9 Nov 2023 04:28:10 -0800 (PST) X-Google-Smtp-Source: AGHT+IE/kVysXSTkMLrhBYavos0I8QFny1h+dwcCxcRvt+W2Wl3PiI14Xs1O4V6l3IplL6e4XJJ6 X-Received: by 2002:a17:907:2d27:b0:9c7:fd91:4309 with SMTP id gs39-20020a1709072d2700b009c7fd914309mr4457688ejc.0.1699532890090; Thu, 09 Nov 2023 04:28:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699532890; cv=none; d=google.com; s=arc-20160816; b=qbtdRAEbYaCyNhRWsSqkh3PcTwXeLIeiL3iskntTD3dZJ5PMOn/M6o5JNG+18Tjr/6 aK0fc1/UIoymKjcWzvRYc4Oq4h31XKcMAGBEqDBHqASmihGGwb3/WV0go4bw31dZva7A VWHVO42AATKRzS4cPle0/WILo2VK8sGgsW+D6QHphBnX86WKY9GrcgmR3pCDwjCTMBBB 6qGEcRFv8Ahn5j+xC64rj0kLy5y8sP5zabI1C9PIFUHVs5oNwo14DMhsnsHusXRUZr/t k3+ylBlPNzOdEuwqRNNfk+biuXVtguMj8+izKv9RoCGWQ+0DUzF9jyji3493qolOhRCK cwrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=S9Dtg3AfyTQBj/2Bz2JwvPJh/lMX6Yurldc8dno7s5I=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=PWN8lU4s55XCKBZfH7IQrAX7qgOGv4a+88vf0OMiXIeanfvTGm3XpefLJwsfBpARNa CI1IyAk94+AR5Z6XM6OOFNgEMCx+6VLcgG4kCAFNBWWGPJoOaEiLiYv6LUOtvVvmESGL dBBiRo7l2CbZOs2+PvtphJs0vNCAgUCSEh+0u2aihEuMgyJhirxobn+wt9LzRNsLlKPP iUVa4osJ+OqJCn3PdOFSuD3JG2YCagKGmmqDkX8m5mBK+oiqzhKyOyzBxQl0DcXQ2VUs dvKrOKuxieJBYahGdJINPgrvG6o1X/EVzKluKNfefImryBHLTKYyKVqne2dME8R+JJKy 6OBQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b=Ufz1yZgD; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id be5-20020a1709070a4500b009c569bd1e8asi3193925ejc.668.2023.11.09.04.28.09; Thu, 09 Nov 2023 04:28:10 -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=@haasn.xyz header.s=mail header.b=Ufz1yZgD; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1249668CC9E; Thu, 9 Nov 2023 14:26:01 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 66B6D68CBE3 for ; Thu, 9 Nov 2023 14:25:42 +0200 (EET) Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id 7A5F24BD2E; Thu, 9 Nov 2023 13:25:41 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1699532741; bh=5t2ivg9cjwNVLfJlGdX7waYvnz1XmMjnPqcyYVdOCt4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ufz1yZgDUfwN/A5XyykSZUJKFzLPbV5Oy9uNBwmbK2msy3IjdQHp2xNHg0Io5HtaZ Sk9blAjWRpqgEawsUdSW3r689zLjwPjQYfI5SJt7WxbLbPvLp805echpSXyPG6XA++ c0jIXV9XiaOnlzrl9h/S13iNlk/pP9AYmzfTvMIQ= From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Thu, 9 Nov 2023 13:19:54 +0100 Message-ID: <20231109122534.124157-23-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231109122534.124157-1-ffmpeg@haasn.xyz> References: <20231109122534.124157-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 22/25] tests/fate: force MPEG range for rawvideo tests 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: Niklas Haas Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 8GNQ0sFgjXyt From: Niklas Haas The input file is MPEG range, so we should also encode to MPEG range before comparing against it. This bug was avoided in the past because JPEG range YUV inputs were tagged as YUVJ, which resulted in an automatic conversion to PC range by default. After YUVJ removal, we will need to explicitly specify that we want MPEG range, since rawvideo does not care (or signal) if the output is JPEG or MPEG range. Affects both vsynth and owdenoise. --- tests/fate/filter-video.mak | 2 +- tests/fate/vcodec.mak | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/fate/filter-video.mak b/tests/fate/filter-video.mak index 58edc70f46..2a9c5c682e 100644 --- a/tests/fate/filter-video.mak +++ b/tests/fate/filter-video.mak @@ -2,7 +2,7 @@ VIDEO_FILTER = $(call ALLYES, $(1:%=%_FILTER) $(2) FILE_PROTOCOL IMAGE2_DEMUXER PGMYUV_DECODER RAWVIDEO_ENCODER NUT_MUXER MD5_PROTOCOL) FATE_FILTER_SAMPLES-$(call FILTERDEMDECENCMUX, PERMS OWDENOISE TRIM SCALE, SMJPEG, MJPEG, RAWVIDEO, RAWVIDEO, PIPE_PROTOCOL) += fate-filter-owdenoise-sample -fate-filter-owdenoise-sample: CMD = ffmpeg -auto_conversion_filters -idct simple -i $(TARGET_SAMPLES)/smjpeg/scenwin.mjpg -vf "trim=duration=0.5,perms=random,owdenoise=10:20:20:enable=not(between(t\,0.2\,1.2))" -an -f rawvideo - +fate-filter-owdenoise-sample: CMD = ffmpeg -auto_conversion_filters -idct simple -i $(TARGET_SAMPLES)/smjpeg/scenwin.mjpg -vf "trim=duration=0.5,perms=random,owdenoise=10:20:20:enable=not(between(t\,0.2\,1.2))" -an -f rawvideo -color_range mpeg - fate-filter-owdenoise-sample: REF = $(SAMPLES)/filter-reference/owdenoise-scenwin.raw fate-filter-owdenoise-sample: CMP_TARGET = 1 fate-filter-owdenoise-sample: FUZZ = 3539 diff --git a/tests/fate/vcodec.mak b/tests/fate/vcodec.mak index 45ed88da96..e3205127ff 100644 --- a/tests/fate/vcodec.mak +++ b/tests/fate/vcodec.mak @@ -6,7 +6,7 @@ fate-vsynth%: CODEC = $(word 3, $(subst -, ,$(@))) fate-vsynth%: FMT = avi fate-vsynth%: DEFAULT_SIZE = -s 352x288 fate-vsynth3-%: DEFAULT_SIZE = -s $(FATEW)x$(FATEH) -fate-vsynth%: CMD = enc_dec "rawvideo $(DEFAULT_SIZE) -pix_fmt yuv420p $(RAWDECOPTS)" $(SRC) $(FMT) "-c $(CODEC) $(ENCOPTS)" rawvideo "-pix_fmt yuv420p -vsync passthrough $(DECOPTS)" "" "" ${TWOPASS} +fate-vsynth%: CMD = enc_dec "rawvideo $(DEFAULT_SIZE) -color_range mpeg -pix_fmt yuv420p $(RAWDECOPTS)" $(SRC) $(FMT) "-c $(CODEC) $(ENCOPTS)" rawvideo "-pix_fmt yuv420p -color_range mpeg -vsync passthrough $(DECOPTS)" "" "" ${TWOPASS} fate-vsynth%: CMP_UNIT = 1 fate-vsynth%: REF = $(SRC_PATH)/tests/ref/vsynth/$(@:fate-%=%) From patchwork Thu Nov 9 12:19:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 44598 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4fa4:b0:181:818d:5e7f with SMTP id gh36csp445131pzb; Thu, 9 Nov 2023 04:28:22 -0800 (PST) X-Google-Smtp-Source: AGHT+IEOAUJAVEDNy6+PfRX7CwuH57Oyn2XACQsTW5gWB7TXbag/oeGDDBpiENIoA99PQGgL4RPU X-Received: by 2002:a50:d51d:0:b0:543:b9ae:a0d5 with SMTP id u29-20020a50d51d000000b00543b9aea0d5mr4068416edi.4.1699532901731; Thu, 09 Nov 2023 04:28:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699532901; cv=none; d=google.com; s=arc-20160816; b=d+sJ2l0oRX1W8gHYURkMKqY00lb21yLp1mE8/lZu3QHfW3PRTuXS9bCAnbAKYqlrdv O0EljID5tC6mMrj3MpRg/G6O5Zi7cb1MsdDSaOH/yR3ApJxbebfWDV/c+FNLK5uT4Ypa 4artevl6ENdvmKZ4QMRXh0c0kIi8/eC1PSsi8JWCueoDBykJ81pq3psQ6+EVxTwMBfWY jmdJpMUeBq1auMZ2Tf09MeObznozFn20UIuti2Z/p6HWS16muDZRiGSs722Zm219Vj7d usptj+qJVnIrAFp9bbw5j1m/QjPGYP7Vq6OiSCykNlod+ru+MNI30djvKcXBgvHABAYd UTlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=9G23snLR24Y+r+z0lCJpzUsDN+7RFApdCcA9nvFJePQ=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=XnRZydsAxc+6qczLnAt9KrfLp+CJqutW2S0R7QT4ancWxWko9eTNaJsaU228taA37A z+UlH63t4s+22IiZ1Xs+Z2lS31+Mn0nwibmLhJtF4veiEyogjOlx8IaXAuB5IbUgByTA ZP8WQV1/dxqXah+9KQczuCdVr/m8wjtoNUatR+4Uvmu6lWSEpch0o9GvyKpWMPJI1YAY enANw4PokPWCEMQSrZzhxgcaAQblPtJq6djqepWPCS1Z19CEle4+e79/2IVMQeAfiAu5 1HZaSQLcUldq8/7ZGdS3dkbCW3ObXD9ioVlk0WAaP1ElkT2kYCxhalrIjrowsC/dHKHe /IJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b=cgTnuWB0; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id c12-20020a056402120c00b0053e2f974979si7639902edw.512.2023.11.09.04.28.21; Thu, 09 Nov 2023 04:28:21 -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=@haasn.xyz header.s=mail header.b=cgTnuWB0; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F0FF168CCAA; Thu, 9 Nov 2023 14:26:01 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4C16068CBF0 for ; Thu, 9 Nov 2023 14:25:42 +0200 (EET) Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id C411C4151A; Thu, 9 Nov 2023 13:25:41 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1699532741; bh=qkQah7IR6+LPOGbUm2Xm7Eypqz1HUnE8X1orf90Wt20=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cgTnuWB0u66EWKBm5hGSkPtihxhFt6EAwZe4pD+UnlmZTeaV37ONRMkQ5WcRtqUOF VKVPyKck0vlv6N7BgIuNW8vWeMsigjyEl84MW59dtH7mdyn/NQC/qAg27sEHg3Qlht cx8oguoLLxdvDoZtthYWwUhwM019VzrjilY1+n28= From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Thu, 9 Nov 2023 13:19:55 +0100 Message-ID: <20231109122534.124157-24-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231109122534.124157-1-ffmpeg@haasn.xyz> References: <20231109122534.124157-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 23/25] lavfi/lavu/lavc: remove YUVJ pixel formats 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: Niklas Haas Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: /TAxeC7i73Ld From: Niklas Haas To avoid regressing any particular filter or codec, and to ensure every commit still passes FATE while bisecting, removal of the YUVJ pixel format and removal of YUVJ pixel format handling code was done in a single, atomic commit. Because this is a broad, sweeping change, the commit touches very many places in the code. However, while this commit is very large, all of the changes can be described as either: - Setting the pixel format to YUV instead of YUVJ (for decoders which already correctly set range metadata) - Removing YUVJ from pixel format lists (for filters/encoders that already natively handle color range metadata correctly) - Replacing `pix_fmt = YUVJ` by `pix_fmt = YUV, color_ranges = JPEG` (for encoders which only supported YUVJ) - Replacing a check of type (range == JPEG || pixfmt == YUVJ) by just (range == JPEG). The only non-trivial exception to this is the change to ffmpeg_filter.c, in which case the special handling of mjpeg was simply removed entirely, since the new logic of setting c->color_ranges replaces it. --- doc/APIchanges | 4 ++ fftools/ffmpeg_filter.c | 24 -------- libavcodec/encode.c | 6 -- libavcodec/fraps.c | 2 +- libavcodec/h264_slice.c | 26 +------- libavcodec/hevc_ps.c | 2 - libavcodec/hevcdec.c | 1 - libavcodec/libopenh264enc.c | 5 +- libavcodec/librav1e.c | 17 +----- libavcodec/libx264.c | 14 ----- libavcodec/libx265.c | 14 +---- libavcodec/ljpegenc.c | 1 - libavcodec/mdec.c | 2 +- libavcodec/mjpegdec.c | 28 ++++----- libavcodec/mjpegenc.c | 3 +- libavcodec/mjpegenc_common.c | 2 +- libavcodec/mpegvideo_enc.c | 3 - libavcodec/nvenc.c | 9 +-- libavcodec/qsv.c | 1 - libavcodec/raw.c | 14 ----- libavcodec/roqvideodec.c | 2 +- libavcodec/roqvideoenc.c | 2 +- libavcodec/svq3.c | 4 +- libavcodec/tdsc.c | 2 +- libavcodec/utils.c | 5 -- libavcodec/vdpau.c | 3 - libavfilter/avf_showcwt.c | 2 +- libavfilter/avf_showspectrum.c | 2 +- libavfilter/avfiltergraph.c | 12 +--- libavfilter/drawutils.c | 5 +- libavfilter/f_select.c | 4 +- libavfilter/vaf_spectrumsynth.c | 6 +- libavfilter/vf_amplify.c | 3 - libavfilter/vf_atadenoise.c | 3 - libavfilter/vf_avgblur.c | 4 +- libavfilter/vf_bbox.c | 3 - libavfilter/vf_bilateral.c | 4 +- libavfilter/vf_bitplanenoise.c | 2 - libavfilter/vf_blackdetect.c | 11 +--- libavfilter/vf_blend.c | 1 - libavfilter/vf_blockdetect.c | 2 - libavfilter/vf_blurdetect.c | 2 - libavfilter/vf_bm3d.c | 3 - libavfilter/vf_bwdif.c | 2 - libavfilter/vf_cas.c | 3 - libavfilter/vf_chromanr.c | 1 - libavfilter/vf_chromashift.c | 1 - libavfilter/vf_colorcorrect.c | 1 - libavfilter/vf_colorize.c | 3 - libavfilter/vf_colorspace.c | 1 - libavfilter/vf_convolution.c | 4 +- libavfilter/vf_convolve.c | 4 +- libavfilter/vf_corr.c | 2 - libavfilter/vf_cover_rect.c | 4 +- libavfilter/vf_cropdetect.c | 6 +- libavfilter/vf_dblur.c | 4 +- libavfilter/vf_deband.c | 4 +- libavfilter/vf_deblock.c | 4 +- libavfilter/vf_decimate.c | 2 - libavfilter/vf_dedot.c | 4 +- libavfilter/vf_deflicker.c | 3 - libavfilter/vf_deshake.c | 3 +- libavfilter/vf_displace.c | 4 +- libavfilter/vf_drawbox.c | 4 +- libavfilter/vf_entropy.c | 2 - libavfilter/vf_estdif.c | 3 - libavfilter/vf_extractplanes.c | 3 - libavfilter/vf_fade.c | 4 +- libavfilter/vf_fftdnoiz.c | 3 - libavfilter/vf_fftfilt.c | 4 +- libavfilter/vf_fieldmatch.c | 3 - libavfilter/vf_fillborders.c | 4 +- libavfilter/vf_find_rect.c | 2 +- libavfilter/vf_framepack.c | 3 - libavfilter/vf_framerate.c | 10 ++-- libavfilter/vf_freezedetect.c | 5 +- libavfilter/vf_fspp.c | 2 - libavfilter/vf_gblur.c | 4 +- libavfilter/vf_guided.c | 4 +- libavfilter/vf_histogram.c | 8 +-- libavfilter/vf_hqdn3d.c | 1 - libavfilter/vf_hysteresis.c | 4 +- libavfilter/vf_identity.c | 2 - libavfilter/vf_idet.c | 4 -- libavfilter/vf_lagfun.c | 3 - libavfilter/vf_lenscorrection.c | 3 - libavfilter/vf_limitdiff.c | 4 +- libavfilter/vf_limiter.c | 4 +- libavfilter/vf_lut.c | 2 - libavfilter/vf_lut2.c | 4 +- libavfilter/vf_maskedclamp.c | 4 +- libavfilter/vf_maskedmerge.c | 4 +- libavfilter/vf_maskedminmax.c | 4 +- libavfilter/vf_maskedthreshold.c | 4 +- libavfilter/vf_maskfun.c | 4 +- libavfilter/vf_median.c | 4 +- libavfilter/vf_mestimate.c | 3 - libavfilter/vf_midequalizer.c | 4 +- libavfilter/vf_minterpolate.c | 3 - libavfilter/vf_monochrome.c | 3 - libavfilter/vf_morpho.c | 4 +- libavfilter/vf_mpdecimate.c | 2 - libavfilter/vf_negate.c | 2 - libavfilter/vf_neighbor.c | 4 +- libavfilter/vf_nlmeans.c | 3 - libavfilter/vf_nnedi.c | 3 - libavfilter/vf_ocr.c | 3 - libavfilter/vf_overlay.c | 6 +- libavfilter/vf_perspective.c | 1 - libavfilter/vf_phase.c | 3 - libavfilter/vf_pixelize.c | 3 - libavfilter/vf_pp.c | 12 ++-- libavfilter/vf_pp7.c | 2 - libavfilter/vf_premultiply.c | 10 +--- libavfilter/vf_psnr.c | 2 - libavfilter/vf_pullup.c | 4 +- libavfilter/vf_readeia608.c | 3 - libavfilter/vf_readvitc.c | 5 -- libavfilter/vf_remap.c | 1 - libavfilter/vf_removegrain.c | 2 - libavfilter/vf_rotate.c | 4 +- libavfilter/vf_scdet.c | 8 +-- libavfilter/vf_scroll.c | 4 +- libavfilter/vf_shear.c | 3 - libavfilter/vf_signalstats.c | 2 - libavfilter/vf_signature.c | 3 - libavfilter/vf_siti.c | 12 +--- libavfilter/vf_spp.c | 2 - libavfilter/vf_ssim.c | 2 - libavfilter/vf_ssim360.c | 2 - libavfilter/vf_stereo3d.c | 5 -- libavfilter/vf_threshold.c | 4 +- libavfilter/vf_thumbnail.c | 3 - libavfilter/vf_tinterlace.c | 25 +++----- libavfilter/vf_tmidequalizer.c | 4 +- libavfilter/vf_unsharp.c | 4 +- libavfilter/vf_uspp.c | 2 - libavfilter/vf_v360.c | 5 -- libavfilter/vf_vaguedenoiser.c | 3 - libavfilter/vf_varblur.c | 4 +- libavfilter/vf_vectorscope.c | 10 ++-- libavfilter/vf_vif.c | 2 - libavfilter/vf_w3fdif.c | 3 - libavfilter/vf_waveform.c | 8 +-- libavfilter/vf_xfade.c | 1 - libavfilter/vf_xmedian.c | 3 - libavfilter/vf_yadif.c | 2 - libavfilter/vf_yaepblur.c | 4 +- libavfilter/vf_zoompan.c | 3 - libavfilter/vf_zscale.c | 3 - libavfilter/vsrc_testsrc.c | 2 +- libavformat/yuv4mpegenc.c | 16 ----- libavutil/pixdesc.c | 60 ------------------- libavutil/pixfmt.h | 5 -- libavutil/version.h | 2 +- libswscale/utils.c | 32 +--------- tests/fate/lavf-image.mak | 2 +- tests/fate/pixfmt.mak | 4 -- tests/fate/vcodec.mak | 12 ++-- tests/ref/fate/exif-image-embedded | 2 +- tests/ref/fate/exif-image-jpg | 2 +- tests/ref/fate/filter-pixdesc-yuvj411p | 1 - tests/ref/fate/filter-pixdesc-yuvj420p | 1 - tests/ref/fate/filter-pixdesc-yuvj422p | 1 - tests/ref/fate/filter-pixdesc-yuvj440p | 1 - tests/ref/fate/filter-pixdesc-yuvj444p | 1 - tests/ref/fate/filter-pixfmts-copy | 5 -- tests/ref/fate/filter-pixfmts-crop | 5 -- tests/ref/fate/filter-pixfmts-field | 5 -- tests/ref/fate/filter-pixfmts-fieldorder | 3 - tests/ref/fate/filter-pixfmts-hflip | 5 -- tests/ref/fate/filter-pixfmts-il | 5 -- tests/ref/fate/filter-pixfmts-lut | 4 -- tests/ref/fate/filter-pixfmts-null | 5 -- tests/ref/fate/filter-pixfmts-pad | 5 -- tests/ref/fate/filter-pixfmts-pullup | 5 -- tests/ref/fate/filter-pixfmts-rotate | 2 - tests/ref/fate/filter-pixfmts-scale | 5 -- tests/ref/fate/filter-pixfmts-swapuv | 5 -- .../ref/fate/filter-pixfmts-tinterlace_cvlpf | 4 -- .../ref/fate/filter-pixfmts-tinterlace_merge | 4 -- tests/ref/fate/filter-pixfmts-tinterlace_pad | 4 -- tests/ref/fate/filter-pixfmts-tinterlace_vlpf | 4 -- tests/ref/fate/filter-pixfmts-transpose | 2 - tests/ref/fate/filter-pixfmts-vflip | 5 -- tests/ref/fate/imgutils | 5 -- tests/ref/fate/jpg-icc | 2 +- tests/ref/fate/sws-pixdesc-query | 15 ----- tests/ref/pixfmt/yuvj420p | 2 - tests/ref/pixfmt/yuvj422p | 2 - tests/ref/pixfmt/yuvj440p | 2 - tests/ref/pixfmt/yuvj444p | 2 - 192 files changed, 139 insertions(+), 793 deletions(-) delete mode 100644 tests/ref/fate/filter-pixdesc-yuvj411p delete mode 100644 tests/ref/fate/filter-pixdesc-yuvj420p delete mode 100644 tests/ref/fate/filter-pixdesc-yuvj422p delete mode 100644 tests/ref/fate/filter-pixdesc-yuvj440p delete mode 100644 tests/ref/fate/filter-pixdesc-yuvj444p delete mode 100644 tests/ref/pixfmt/yuvj420p delete mode 100644 tests/ref/pixfmt/yuvj422p delete mode 100644 tests/ref/pixfmt/yuvj440p delete mode 100644 tests/ref/pixfmt/yuvj444p diff --git a/doc/APIchanges b/doc/APIchanges index 87f4368e03..508b215bc0 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -2,6 +2,10 @@ The last version increases of all libraries were on 2023-02-09 API changes, most recent first: +2023-10-xx - xxxxxxxxxx - lavu 58.33.100 - pixfmt.h + Remove AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, + AV_PIX_FMT_YUVJ440P and AV_PIX_FMT_YUVJ411P. + 2023-11-xx - xxxxxxxxxx - lavc 60.34.100 - avcodec.h Add AVCodec.color_ranges and AVCodec.color_spaces. diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c index da770ef650..4aa4b8b84c 100644 --- a/fftools/ffmpeg_filter.c +++ b/fftools/ffmpeg_filter.c @@ -689,30 +689,6 @@ int ofilter_bind_ost(OutputFilter *ofilter, OutputStream *ost) ofp->format = ost->enc_ctx->pix_fmt; } else if (!ost->keep_pix_fmt) { ofp->formats = c->pix_fmts; - - // MJPEG encoder exports a full list of supported pixel formats, - // but the full-range ones are experimental-only. - // Restrict the auto-conversion list unless -strict experimental - // has been specified. - if (!strcmp(c->name, "mjpeg")) { - // FIXME: YUV420P etc. are actually supported with full color range, - // yet the latter information isn't available here. - static const enum AVPixelFormat mjpeg_formats[] = - { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_NONE }; - - const AVDictionaryEntry *strict = av_dict_get(ost->encoder_opts, "strict", NULL, 0); - int strict_val = ost->enc_ctx->strict_std_compliance; - - if (strict) { - const AVOption *o = av_opt_find(ost->enc_ctx, strict->key, NULL, 0, 0); - av_assert0(o); - av_opt_eval_int(ost->enc_ctx, o, strict->value, &strict_val); - } - - if (strict_val > FF_COMPLIANCE_UNOFFICIAL) - ofp->formats = mjpeg_formats; - } } if (color_space != AVCOL_SPC_UNSPECIFIED) { ofp->color_space = color_space; diff --git a/libavcodec/encode.c b/libavcodec/encode.c index a436be2657..31565638fa 100644 --- a/libavcodec/encode.c +++ b/libavcodec/encode.c @@ -603,12 +603,6 @@ static int encode_preinit_video(AVCodecContext *avctx) return AVERROR(EINVAL); } - if (c->pix_fmts[i] == AV_PIX_FMT_YUVJ420P || - c->pix_fmts[i] == AV_PIX_FMT_YUVJ411P || - c->pix_fmts[i] == AV_PIX_FMT_YUVJ422P || - c->pix_fmts[i] == AV_PIX_FMT_YUVJ440P || - c->pix_fmts[i] == AV_PIX_FMT_YUVJ444P) - avctx->color_range = AVCOL_RANGE_JPEG; } if ( avctx->bits_per_raw_sample < 0 diff --git a/libavcodec/fraps.c b/libavcodec/fraps.c index bed244e4e9..77f6e68e34 100644 --- a/libavcodec/fraps.c +++ b/libavcodec/fraps.c @@ -217,7 +217,7 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *f, f->pict_type = AV_PICTURE_TYPE_I; f->flags |= AV_FRAME_FLAG_KEY; - avctx->pix_fmt = version & 1 ? is_pal ? AV_PIX_FMT_PAL8 : AV_PIX_FMT_BGR24 : AV_PIX_FMT_YUVJ420P; + avctx->pix_fmt = version & 1 ? is_pal ? AV_PIX_FMT_PAL8 : AV_PIX_FMT_BGR24 : AV_PIX_FMT_YUV420P; avctx->color_range = version & 1 ? AVCOL_RANGE_UNSPECIFIED : AVCOL_RANGE_JPEG; avctx->colorspace = version & 1 ? AVCOL_SPC_UNSPECIFIED : AVCOL_SPC_BT709; diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c index 07cc1b094f..c2bc8f2448 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -869,15 +869,10 @@ static enum AVPixelFormat get_pixel_format(H264Context *h, int force_callback) if (CHROMA444(h)) { if (h->avctx->colorspace == AVCOL_SPC_RGB) *fmt++ = AV_PIX_FMT_GBRP; - else if (h->avctx->color_range == AVCOL_RANGE_JPEG) - *fmt++ = AV_PIX_FMT_YUVJ444P; else *fmt++ = AV_PIX_FMT_YUV444P; } else if (CHROMA422(h)) { - if (h->avctx->color_range == AVCOL_RANGE_JPEG) - *fmt++ = AV_PIX_FMT_YUVJ422P; - else - *fmt++ = AV_PIX_FMT_YUV422P; + *fmt++ = AV_PIX_FMT_YUV422P; } else { #if CONFIG_H264_DXVA2_HWACCEL *fmt++ = AV_PIX_FMT_DXVA2_VLD; @@ -889,10 +884,7 @@ static enum AVPixelFormat get_pixel_format(H264Context *h, int force_callback) #if CONFIG_H264_VAAPI_HWACCEL *fmt++ = AV_PIX_FMT_VAAPI; #endif - if (h->avctx->color_range == AVCOL_RANGE_JPEG) - *fmt++ = AV_PIX_FMT_YUVJ420P; - else - *fmt++ = AV_PIX_FMT_YUV420P; + *fmt++ = AV_PIX_FMT_YUV420P; } break; default: @@ -1032,17 +1024,6 @@ fail: return ret; } -static enum AVPixelFormat non_j_pixfmt(enum AVPixelFormat a) -{ - switch (a) { - case AV_PIX_FMT_YUVJ420P: return AV_PIX_FMT_YUV420P; - case AV_PIX_FMT_YUVJ422P: return AV_PIX_FMT_YUV422P; - case AV_PIX_FMT_YUVJ444P: return AV_PIX_FMT_YUV444P; - default: - return a; - } -} - static int h264_init_ps(H264Context *h, const H264SliceContext *sl, int first_slice) { const SPS *sps; @@ -1075,8 +1056,7 @@ static int h264_init_ps(H264Context *h, const H264SliceContext *sl, int first_sl || h->mb_width != sps->mb_width || h->mb_height != sps->mb_height )); - if (h->avctx->pix_fmt == AV_PIX_FMT_NONE - || (non_j_pixfmt(h->avctx->pix_fmt) != non_j_pixfmt(get_pixel_format(h, 0)))) + if (h->avctx->pix_fmt == AV_PIX_FMT_NONE || (h->avctx->pix_fmt != get_pixel_format(h, 0))) must_reinit = 1; if (first_slice && av_cmp_q(sps->vui.sar, h->avctx->sample_aspect_ratio)) diff --git a/libavcodec/hevc_ps.c b/libavcodec/hevc_ps.c index fb997066d9..e69fa60ba1 100644 --- a/libavcodec/hevc_ps.c +++ b/libavcodec/hevc_ps.c @@ -577,8 +577,6 @@ static void decode_vui(GetBitContext *gb, AVCodecContext *avctx, ff_h2645_decode_common_vui_params(gb, &sps->vui.common, avctx); if (vui->common.video_signal_type_present_flag) { - if (vui->common.video_full_range_flag && sps->pix_fmt == AV_PIX_FMT_YUV420P) - sps->pix_fmt = AV_PIX_FMT_YUVJ420P; if (vui->common.colour_description_present_flag) { if (vui->common.matrix_coeffs == AVCOL_SPC_RGB) { switch (sps->pix_fmt) { diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c index 3ce845dddb..0859e1d2d0 100644 --- a/libavcodec/hevcdec.c +++ b/libavcodec/hevcdec.c @@ -407,7 +407,6 @@ static enum AVPixelFormat get_format(HEVCContext *s, const HEVCSPS *sps) switch (sps->pix_fmt) { case AV_PIX_FMT_YUV420P: - case AV_PIX_FMT_YUVJ420P: #if CONFIG_HEVC_DXVA2_HWACCEL *fmt++ = AV_PIX_FMT_DXVA2_VLD; #endif diff --git a/libavcodec/libopenh264enc.c b/libavcodec/libopenh264enc.c index f518d0894e..d3e7b0c746 100644 --- a/libavcodec/libopenh264enc.c +++ b/libavcodec/libopenh264enc.c @@ -313,10 +313,8 @@ FF_ENABLE_DEPRECATION_WARNINGS #if OPENH264_VER_AT_LEAST(1, 6) param.sSpatialLayers[0].uiVideoFormat = VF_UNDEF; - if (avctx->color_range != AVCOL_RANGE_UNSPECIFIED) { + if (avctx->color_range != AVCOL_RANGE_UNSPECIFIED) param.sSpatialLayers[0].bFullRange = (avctx->color_range == AVCOL_RANGE_JPEG); - } else if (avctx->pix_fmt == AV_PIX_FMT_YUVJ420P) - param.sSpatialLayers[0].bFullRange = 1; if (avctx->colorspace != AVCOL_SPC_UNSPECIFIED || avctx->color_primaries != AVCOL_PRI_UNSPECIFIED || @@ -447,7 +445,6 @@ const FFCodec ff_libopenh264_encoder = { .caps_internal = FF_CODEC_CAP_INIT_CLEANUP | FF_CODEC_CAP_AUTO_THREADS, .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_NONE }, .defaults = svc_enc_defaults, .p.priv_class = &class, diff --git a/libavcodec/librav1e.c b/libavcodec/librav1e.c index 56539435a7..dc18869e87 100644 --- a/libavcodec/librav1e.c +++ b/libavcodec/librav1e.c @@ -65,15 +65,8 @@ typedef struct FrameData { AVBufferRef *frame_opaque_ref; } FrameData; -static inline RaPixelRange range_map(enum AVPixelFormat pix_fmt, enum AVColorRange range) +static inline RaPixelRange range_map(enum AVColorRange range) { - switch (pix_fmt) { - case AV_PIX_FMT_YUVJ420P: - case AV_PIX_FMT_YUVJ422P: - case AV_PIX_FMT_YUVJ444P: - return RA_PIXEL_RANGE_FULL; - } - switch (range) { case AVCOL_RANGE_JPEG: return RA_PIXEL_RANGE_FULL; @@ -87,17 +80,14 @@ static inline RaChromaSampling pix_fmt_map(enum AVPixelFormat pix_fmt) { switch (pix_fmt) { case AV_PIX_FMT_YUV420P: - case AV_PIX_FMT_YUVJ420P: case AV_PIX_FMT_YUV420P10: case AV_PIX_FMT_YUV420P12: return RA_CHROMA_SAMPLING_CS420; case AV_PIX_FMT_YUV422P: - case AV_PIX_FMT_YUVJ422P: case AV_PIX_FMT_YUV422P10: case AV_PIX_FMT_YUV422P12: return RA_CHROMA_SAMPLING_CS422; case AV_PIX_FMT_YUV444P: - case AV_PIX_FMT_YUVJ444P: case AV_PIX_FMT_YUV444P10: case AV_PIX_FMT_YUV444P12: return RA_CHROMA_SAMPLING_CS444; @@ -384,7 +374,7 @@ FF_ENABLE_DEPRECATION_WARNINGS rret = rav1e_config_set_pixel_format(cfg, desc->comp[0].depth, pix_fmt_map(avctx->pix_fmt), chroma_loc_map(avctx->chroma_sample_location), - range_map(avctx->pix_fmt, avctx->color_range)); + range_map(avctx->color_range)); if (rret < 0) { av_log(avctx, AV_LOG_ERROR, "Failed to set pixel format properties.\n"); ret = AVERROR_INVALIDDATA; @@ -651,15 +641,12 @@ static const FFCodecDefault librav1e_defaults[] = { const enum AVPixelFormat librav1e_pix_fmts[] = { AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_NONE diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c index 182e20f622..bab4e3627b 100644 --- a/libavcodec/libx264.c +++ b/libavcodec/libx264.c @@ -834,14 +834,11 @@ static int convert_pix_fmt(enum AVPixelFormat pix_fmt) { switch (pix_fmt) { case AV_PIX_FMT_YUV420P: - case AV_PIX_FMT_YUVJ420P: case AV_PIX_FMT_YUV420P9: case AV_PIX_FMT_YUV420P10: return X264_CSP_I420; case AV_PIX_FMT_YUV422P: - case AV_PIX_FMT_YUVJ422P: case AV_PIX_FMT_YUV422P10: return X264_CSP_I422; case AV_PIX_FMT_YUV444P: - case AV_PIX_FMT_YUVJ444P: case AV_PIX_FMT_YUV444P9: case AV_PIX_FMT_YUV444P10: return X264_CSP_I444; case AV_PIX_FMT_BGR0: @@ -1157,11 +1154,6 @@ FF_ENABLE_DEPRECATION_WARNINGS if (avctx->color_range != AVCOL_RANGE_UNSPECIFIED) x4->params.vui.b_fullrange = avctx->color_range == AVCOL_RANGE_JPEG; - else if (avctx->pix_fmt == AV_PIX_FMT_YUVJ420P || - avctx->pix_fmt == AV_PIX_FMT_YUVJ422P || - avctx->pix_fmt == AV_PIX_FMT_YUVJ444P) - x4->params.vui.b_fullrange = 1; - if (avctx->colorspace != AVCOL_SPC_UNSPECIFIED) x4->params.vui.i_colmatrix = avctx->colorspace; if (avctx->color_primaries != AVCOL_PRI_UNSPECIFIED) @@ -1281,11 +1273,8 @@ FF_ENABLE_DEPRECATION_WARNINGS static const enum AVPixelFormat pix_fmts_8bit[] = { AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUV422P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_NV12, AV_PIX_FMT_NV16, #ifdef X264_CSP_NV21 @@ -1307,11 +1296,8 @@ static const enum AVPixelFormat pix_fmts_10bit[] = { }; static const enum AVPixelFormat pix_fmts_all[] = { AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUV422P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_NV12, AV_PIX_FMT_NV16, #ifdef X264_CSP_NV21 diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c index 447e6da25f..7ffc61bdce 100644 --- a/libavcodec/libx265.c +++ b/libavcodec/libx265.c @@ -252,10 +252,7 @@ FF_ENABLE_DEPRECATION_WARNINGS avctx->color_range == AVCOL_RANGE_JPEG; else ctx->params->vui.bEnableVideoFullRangeFlag = - (desc->flags & AV_PIX_FMT_FLAG_RGB) || - avctx->pix_fmt == AV_PIX_FMT_YUVJ420P || - avctx->pix_fmt == AV_PIX_FMT_YUVJ422P || - avctx->pix_fmt == AV_PIX_FMT_YUVJ444P; + desc->flags & AV_PIX_FMT_FLAG_RGB; if ((avctx->color_primaries <= AVCOL_PRI_SMPTE432 && avctx->color_primaries != AVCOL_PRI_UNSPECIFIED) || @@ -797,11 +794,8 @@ FF_ENABLE_DEPRECATION_WARNINGS static const enum AVPixelFormat x265_csp_eight[] = { AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUV422P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_GBRP, AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE @@ -809,11 +803,8 @@ static const enum AVPixelFormat x265_csp_eight[] = { static const enum AVPixelFormat x265_csp_ten[] = { AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUV422P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_GBRP, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, @@ -826,11 +817,8 @@ static const enum AVPixelFormat x265_csp_ten[] = { static const enum AVPixelFormat x265_csp_twelve[] = { AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUV422P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_GBRP, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, diff --git a/libavcodec/ljpegenc.c b/libavcodec/ljpegenc.c index aa62beac71..1b63b77829 100644 --- a/libavcodec/ljpegenc.c +++ b/libavcodec/ljpegenc.c @@ -325,7 +325,6 @@ const FFCodec ff_ljpeg_encoder = { .close = ljpeg_encode_close, .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_BGR24 , AV_PIX_FMT_BGRA , AV_PIX_FMT_BGR0, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUV420P , AV_PIX_FMT_YUV444P , AV_PIX_FMT_YUV422P, AV_PIX_FMT_NONE}, }; diff --git a/libavcodec/mdec.c b/libavcodec/mdec.c index 44b12471a9..96b5c55ba3 100644 --- a/libavcodec/mdec.c +++ b/libavcodec/mdec.c @@ -225,7 +225,7 @@ static av_cold int decode_init(AVCodecContext *avctx) ff_permute_scantable(a->permutated_scantable, ff_zigzag_direct, a->idsp.idct_permutation); - avctx->pix_fmt = AV_PIX_FMT_YUVJ420P; + avctx->pix_fmt = AV_PIX_FMT_YUV420P; avctx->color_range = AVCOL_RANGE_JPEG; /* init q matrix */ diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c index 8676155ecf..931aa137d8 100644 --- a/libavcodec/mjpegdec.c +++ b/libavcodec/mjpegdec.c @@ -527,7 +527,7 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s) || s->component_id[0] == 'R' && s->component_id[1] == 'G' && s->component_id[2] == 'B') { s->avctx->pix_fmt = s->bits <= 8 ? AV_PIX_FMT_GBRP : AV_PIX_FMT_GBRP16; } else { - if (s->bits <= 8) s->avctx->pix_fmt = s->cs_itu601 ? AV_PIX_FMT_YUV444P : AV_PIX_FMT_YUVJ444P; + if (s->bits <= 8) s->avctx->pix_fmt = AV_PIX_FMT_YUV444P; else s->avctx->pix_fmt = AV_PIX_FMT_YUV444P16; s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; } @@ -591,7 +591,7 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s) s->component_id[1] == 'G' && s->component_id[2] == 'B') { s->avctx->pix_fmt = AV_PIX_FMT_GBRP; } else { - s->avctx->pix_fmt = s->cs_itu601 ? AV_PIX_FMT_YUV444P : AV_PIX_FMT_YUVJ444P; + s->avctx->pix_fmt = AV_PIX_FMT_YUV444P; s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; } break; @@ -622,7 +622,7 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s) } else { if (pix_fmt_id == 0x14111100) s->upscale_v[1] = s->upscale_v[2] = 1; - if (s->bits <= 8) s->avctx->pix_fmt = s->cs_itu601 ? AV_PIX_FMT_YUV440P : AV_PIX_FMT_YUVJ440P; + if (s->bits <= 8) s->avctx->pix_fmt = AV_PIX_FMT_YUV440P; else goto unk_pixfmt; s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; @@ -635,7 +635,7 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s) goto unk_pixfmt; s->upscale_h[1] = s->upscale_h[2] = 1; } else { - if (s->bits <= 8) s->avctx->pix_fmt = s->cs_itu601 ? AV_PIX_FMT_YUV422P : AV_PIX_FMT_YUVJ422P; + if (s->bits <= 8) s->avctx->pix_fmt = AV_PIX_FMT_YUV422P; else s->avctx->pix_fmt = AV_PIX_FMT_YUV422P16; s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; } @@ -652,14 +652,14 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s) case 0x31111100: if (s->bits > 8) goto unk_pixfmt; - s->avctx->pix_fmt = s->cs_itu601 ? AV_PIX_FMT_YUV444P : AV_PIX_FMT_YUVJ444P; + s->avctx->pix_fmt = AV_PIX_FMT_YUV444P; s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; s->upscale_h[1] = s->upscale_h[2] = 2; break; case 0x22121100: case 0x22111200: case 0x41211100: - if (s->bits <= 8) s->avctx->pix_fmt = s->cs_itu601 ? AV_PIX_FMT_YUV422P : AV_PIX_FMT_YUVJ422P; + if (s->bits <= 8) s->avctx->pix_fmt = AV_PIX_FMT_YUV422P; else goto unk_pixfmt; s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; @@ -668,7 +668,7 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s) case 0x23111100: case 0x42111100: case 0x24111100: - if (s->bits <= 8) s->avctx->pix_fmt = s->cs_itu601 ? AV_PIX_FMT_YUV420P : AV_PIX_FMT_YUVJ420P; + if (s->bits <= 8) s->avctx->pix_fmt = AV_PIX_FMT_YUV420P; else s->avctx->pix_fmt = AV_PIX_FMT_YUV420P16; s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; if (pix_fmt_id == 0x42111100) { @@ -686,7 +686,7 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s) } break; case 0x41111100: - if (s->bits <= 8) s->avctx->pix_fmt = s->cs_itu601 ? AV_PIX_FMT_YUV411P : AV_PIX_FMT_YUVJ411P; + if (s->bits <= 8) s->avctx->pix_fmt = AV_PIX_FMT_YUV411P; else goto unk_pixfmt; s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; @@ -2625,14 +2625,10 @@ the_end: if (AV_RB32(s->upscale_h)) { int p; - av_assert0(avctx->pix_fmt == AV_PIX_FMT_YUVJ444P || - avctx->pix_fmt == AV_PIX_FMT_YUV444P || - avctx->pix_fmt == AV_PIX_FMT_YUVJ440P || + av_assert0(avctx->pix_fmt == AV_PIX_FMT_YUV444P || avctx->pix_fmt == AV_PIX_FMT_YUV440P || avctx->pix_fmt == AV_PIX_FMT_YUVA444P || - avctx->pix_fmt == AV_PIX_FMT_YUVJ422P || avctx->pix_fmt == AV_PIX_FMT_YUV422P || - avctx->pix_fmt == AV_PIX_FMT_YUVJ420P || avctx->pix_fmt == AV_PIX_FMT_YUV420P || avctx->pix_fmt == AV_PIX_FMT_YUV420P16|| avctx->pix_fmt == AV_PIX_FMT_YUVA420P || @@ -2706,14 +2702,10 @@ the_end: } if (AV_RB32(s->upscale_v)) { int p; - av_assert0(avctx->pix_fmt == AV_PIX_FMT_YUVJ444P || - avctx->pix_fmt == AV_PIX_FMT_YUV444P || - avctx->pix_fmt == AV_PIX_FMT_YUVJ422P || + av_assert0(avctx->pix_fmt == AV_PIX_FMT_YUV444P || avctx->pix_fmt == AV_PIX_FMT_YUV422P || - avctx->pix_fmt == AV_PIX_FMT_YUVJ420P || avctx->pix_fmt == AV_PIX_FMT_YUV420P || avctx->pix_fmt == AV_PIX_FMT_YUV440P || - avctx->pix_fmt == AV_PIX_FMT_YUVJ440P || avctx->pix_fmt == AV_PIX_FMT_YUVA444P || avctx->pix_fmt == AV_PIX_FMT_YUVA420P || avctx->pix_fmt == AV_PIX_FMT_YUVA420P16|| diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c index c827a47e59..55fd250b35 100644 --- a/libavcodec/mjpegenc.c +++ b/libavcodec/mjpegenc.c @@ -655,7 +655,6 @@ const FFCodec ff_mjpeg_encoder = { AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, .caps_internal = FF_CODEC_CAP_INIT_CLEANUP | FF_CODEC_CAP_ICC_PROFILES, .p.pix_fmts = (const enum AVPixelFormat[]) { - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_NONE }, @@ -683,7 +682,7 @@ const FFCodec ff_amv_encoder = { .close = mjpeg_encode_close, .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, .p.pix_fmts = (const enum AVPixelFormat[]) { - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_NONE + AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE }, .p.color_ranges = (const enum AVColorRange[]) { AVCOL_RANGE_JPEG, AVCOL_RANGE_UNSPECIFIED diff --git a/libavcodec/mjpegenc_common.c b/libavcodec/mjpegenc_common.c index 049ae3d929..7b5ca29b34 100644 --- a/libavcodec/mjpegenc_common.c +++ b/libavcodec/mjpegenc_common.c @@ -257,7 +257,7 @@ void ff_mjpeg_init_hvsample(AVCodecContext *avctx, int hsample[4], int vsample[4 vsample[1] = hsample[1] = vsample[2] = hsample[2] = vsample[3] = hsample[3] = 1; - } else if (avctx->pix_fmt == AV_PIX_FMT_YUV444P || avctx->pix_fmt == AV_PIX_FMT_YUVJ444P) { + } else if (avctx->pix_fmt == AV_PIX_FMT_YUV444P) { vsample[0] = vsample[1] = vsample[2] = 2; hsample[0] = hsample[1] = hsample[2] = 1; } else { diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index 6d2d417454..f0a376995a 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -317,15 +317,12 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx) mpv_encode_defaults(s); switch (avctx->pix_fmt) { - case AV_PIX_FMT_YUVJ444P: case AV_PIX_FMT_YUV444P: s->chroma_format = CHROMA_444; break; - case AV_PIX_FMT_YUVJ422P: case AV_PIX_FMT_YUV422P: s->chroma_format = CHROMA_422; break; - case AV_PIX_FMT_YUVJ420P: case AV_PIX_FMT_YUV420P: default: s->chroma_format = CHROMA_420; diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c index 626f10d20a..498e9e06fe 100644 --- a/libavcodec/nvenc.c +++ b/libavcodec/nvenc.c @@ -1163,8 +1163,7 @@ static av_cold int nvenc_setup_h264_config(AVCodecContext *avctx) vui->colourMatrix = IS_GBRP(ctx->data_pix_fmt) ? AVCOL_SPC_RGB : avctx->colorspace; vui->colourPrimaries = avctx->color_primaries; vui->transferCharacteristics = avctx->color_trc; - vui->videoFullRangeFlag = (avctx->color_range == AVCOL_RANGE_JPEG - || ctx->data_pix_fmt == AV_PIX_FMT_YUVJ420P || ctx->data_pix_fmt == AV_PIX_FMT_YUVJ422P || ctx->data_pix_fmt == AV_PIX_FMT_YUVJ444P); + vui->videoFullRangeFlag = avctx->color_range == AVCOL_RANGE_JPEG; } vui->colourDescriptionPresentFlag = @@ -1289,8 +1288,7 @@ static av_cold int nvenc_setup_hevc_config(AVCodecContext *avctx) vui->colourMatrix = IS_GBRP(ctx->data_pix_fmt) ? AVCOL_SPC_RGB : avctx->colorspace; vui->colourPrimaries = avctx->color_primaries; vui->transferCharacteristics = avctx->color_trc; - vui->videoFullRangeFlag = (avctx->color_range == AVCOL_RANGE_JPEG - || ctx->data_pix_fmt == AV_PIX_FMT_YUVJ420P || ctx->data_pix_fmt == AV_PIX_FMT_YUVJ422P || ctx->data_pix_fmt == AV_PIX_FMT_YUVJ444P); + vui->videoFullRangeFlag = avctx->color_range == AVCOL_RANGE_JPEG; } vui->colourDescriptionPresentFlag = @@ -1407,8 +1405,7 @@ static av_cold int nvenc_setup_av1_config(AVCodecContext *avctx) av1->matrixCoefficients = IS_GBRP(ctx->data_pix_fmt) ? AVCOL_SPC_RGB : avctx->colorspace; av1->colorPrimaries = avctx->color_primaries; av1->transferCharacteristics = avctx->color_trc; - av1->colorRange = (avctx->color_range == AVCOL_RANGE_JPEG - || ctx->data_pix_fmt == AV_PIX_FMT_YUVJ420P || ctx->data_pix_fmt == AV_PIX_FMT_YUVJ422P || ctx->data_pix_fmt == AV_PIX_FMT_YUVJ444P); + av1->colorRange = avctx->color_range == AVCOL_RANGE_JPEG; } if (IS_YUV444(ctx->data_pix_fmt)) { diff --git a/libavcodec/qsv.c b/libavcodec/qsv.c index 7563625627..540c766db5 100644 --- a/libavcodec/qsv.c +++ b/libavcodec/qsv.c @@ -225,7 +225,6 @@ int ff_qsv_map_pixfmt(enum AVPixelFormat format, uint32_t *fourcc, uint16_t *shi { switch (format) { case AV_PIX_FMT_YUV420P: - case AV_PIX_FMT_YUVJ420P: case AV_PIX_FMT_NV12: *fourcc = MFX_FOURCC_NV12; *shift = 0; diff --git a/libavcodec/raw.c b/libavcodec/raw.c index b73b80e5fd..478b4e38b7 100644 --- a/libavcodec/raw.c +++ b/libavcodec/raw.c @@ -39,13 +39,6 @@ static const PixelFormatTag raw_pix_fmt_tags[] = { { AV_PIX_FMT_YUV422P, MKTAG('Y', '4', '2', 'B') }, { AV_PIX_FMT_YUV422P, MKTAG('P', '4', '2', '2') }, { AV_PIX_FMT_YUV422P, MKTAG('Y', 'V', '1', '6') }, - /* yuvjXXX formats are deprecated hacks specific to libav*, - they are identical to yuvXXX */ - { AV_PIX_FMT_YUVJ420P, MKTAG('I', '4', '2', '0') }, /* Planar formats */ - { AV_PIX_FMT_YUVJ420P, MKTAG('I', 'Y', 'U', 'V') }, - { AV_PIX_FMT_YUVJ420P, MKTAG('Y', 'V', '1', '2') }, - { AV_PIX_FMT_YUVJ422P, MKTAG('Y', '4', '2', 'B') }, - { AV_PIX_FMT_YUVJ422P, MKTAG('P', '4', '2', '2') }, { AV_PIX_FMT_GRAY8, MKTAG('Y', '8', '0', '0') }, { AV_PIX_FMT_GRAY8, MKTAG('Y', '8', ' ', ' ') }, @@ -103,11 +96,8 @@ static const PixelFormatTag raw_pix_fmt_tags[] = { { AV_PIX_FMT_BGR24, MKTAG('B', 'G', 'R', 24 ) }, { AV_PIX_FMT_YUV411P, MKTAG('4', '1', '1', 'P') }, { AV_PIX_FMT_YUV422P, MKTAG('4', '2', '2', 'P') }, - { AV_PIX_FMT_YUVJ422P, MKTAG('4', '2', '2', 'P') }, { AV_PIX_FMT_YUV440P, MKTAG('4', '4', '0', 'P') }, - { AV_PIX_FMT_YUVJ440P, MKTAG('4', '4', '0', 'P') }, { AV_PIX_FMT_YUV444P, MKTAG('4', '4', '4', 'P') }, - { AV_PIX_FMT_YUVJ444P, MKTAG('4', '4', '4', 'P') }, { AV_PIX_FMT_MONOWHITE,MKTAG('B', '1', 'W', '0') }, { AV_PIX_FMT_MONOBLACK,MKTAG('B', '0', 'W', '1') }, { AV_PIX_FMT_BGR8, MKTAG('B', 'G', 'R', 8 ) }, @@ -257,10 +247,6 @@ static const PixelFormatTag raw_pix_fmt_tags[] = { { AV_PIX_FMT_YUV422P, MKTAG('I', '4', '2', '2') }, { AV_PIX_FMT_YUV440P, MKTAG('I', '4', '4', '0') }, { AV_PIX_FMT_YUV444P, MKTAG('I', '4', '4', '4') }, - { AV_PIX_FMT_YUVJ420P, MKTAG('J', '4', '2', '0') }, - { AV_PIX_FMT_YUVJ422P, MKTAG('J', '4', '2', '2') }, - { AV_PIX_FMT_YUVJ440P, MKTAG('J', '4', '4', '0') }, - { AV_PIX_FMT_YUVJ444P, MKTAG('J', '4', '4', '4') }, { AV_PIX_FMT_YUVA444P, MKTAG('Y', 'U', 'V', 'A') }, { AV_PIX_FMT_YUVA420P, MKTAG('I', '4', '0', 'A') }, { AV_PIX_FMT_YUVA422P, MKTAG('I', '4', '2', 'A') }, diff --git a/libavcodec/roqvideodec.c b/libavcodec/roqvideodec.c index bfc69a65c9..50e14934b6 100644 --- a/libavcodec/roqvideodec.c +++ b/libavcodec/roqvideodec.c @@ -184,7 +184,7 @@ static av_cold int roq_decode_init(AVCodecContext *avctx) if (!s->current_frame || !s->last_frame) return AVERROR(ENOMEM); - avctx->pix_fmt = AV_PIX_FMT_YUVJ444P; + avctx->pix_fmt = AV_PIX_FMT_YUV444P; avctx->color_range = AVCOL_RANGE_JPEG; return 0; diff --git a/libavcodec/roqvideoenc.c b/libavcodec/roqvideoenc.c index b584ee1142..3cc4ddaa8b 100644 --- a/libavcodec/roqvideoenc.c +++ b/libavcodec/roqvideoenc.c @@ -1125,7 +1125,7 @@ const FFCodec ff_roq_encoder = { .init = roq_encode_init, FF_CODEC_ENCODE_CB(roq_encode_frame), .close = roq_encode_end, - .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUVJ444P, + .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV444P, AV_PIX_FMT_NONE }, .p.color_ranges = (const enum AVColorRange[]){ AVCOL_RANGE_JPEG, AVCOL_RANGE_UNSPECIFIED }, diff --git a/libavcodec/svq3.c b/libavcodec/svq3.c index 2d03dbc457..9217c60182 100644 --- a/libavcodec/svq3.c +++ b/libavcodec/svq3.c @@ -1143,7 +1143,7 @@ static av_cold int svq3_decode_init(AVCodecContext *avctx) ff_hpeldsp_init(&s->hdsp, avctx->flags); ff_tpeldsp_init(&s->tdsp); - avctx->pix_fmt = AV_PIX_FMT_YUVJ420P; + avctx->pix_fmt = AV_PIX_FMT_YUV420P; avctx->color_range = AVCOL_RANGE_JPEG; s->avctx = avctx; @@ -1602,7 +1602,7 @@ const FFCodec ff_svq3_decoder = { .p.capabilities = AV_CODEC_CAP_DRAW_HORIZ_BAND | AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY, - .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUVJ420P, + .p.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE}, .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, }; diff --git a/libavcodec/tdsc.c b/libavcodec/tdsc.c index 739738d9b1..d4f5953524 100644 --- a/libavcodec/tdsc.c +++ b/libavcodec/tdsc.c @@ -360,7 +360,7 @@ static int tdsc_decode_jpeg_tile(AVCodecContext *avctx, int tile_size, } ret = avcodec_receive_frame(ctx->jpeg_avctx, ctx->jpgframe); - if (ret < 0 || ctx->jpgframe->format != AV_PIX_FMT_YUVJ420P) { + if (ret < 0 || ctx->jpgframe->format != AV_PIX_FMT_YUV420P) { av_log(avctx, AV_LOG_ERROR, "JPEG decoding error (%d).\n", ret); diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 39b83c7791..b9688820d1 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -167,10 +167,6 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, case AV_PIX_FMT_GRAY8: case AV_PIX_FMT_GRAY16BE: case AV_PIX_FMT_GRAY16LE: - case AV_PIX_FMT_YUVJ420P: - case AV_PIX_FMT_YUVJ422P: - case AV_PIX_FMT_YUVJ440P: - case AV_PIX_FMT_YUVJ444P: case AV_PIX_FMT_YUVA420P: case AV_PIX_FMT_YUVA422P: case AV_PIX_FMT_YUVA444P: @@ -250,7 +246,6 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, w_align = 16*2; break; case AV_PIX_FMT_YUV411P: - case AV_PIX_FMT_YUVJ411P: case AV_PIX_FMT_UYYVYY411: w_align = 32; h_align = 16 * 2; diff --git a/libavcodec/vdpau.c b/libavcodec/vdpau.c index 2b9b78d8d0..680e0784cc 100644 --- a/libavcodec/vdpau.c +++ b/libavcodec/vdpau.c @@ -88,7 +88,6 @@ int av_vdpau_get_surface_parameters(AVCodecContext *avctx, /* See for per-type alignment constraints. */ switch (avctx->sw_pix_fmt) { case AV_PIX_FMT_YUV420P: - case AV_PIX_FMT_YUVJ420P: case AV_PIX_FMT_YUV420P10: case AV_PIX_FMT_YUV420P12: t = VDP_CHROMA_TYPE_420; @@ -96,13 +95,11 @@ int av_vdpau_get_surface_parameters(AVCodecContext *avctx, h = (h + 3) & ~3; break; case AV_PIX_FMT_YUV422P: - case AV_PIX_FMT_YUVJ422P: t = VDP_CHROMA_TYPE_422; w = (w + 1) & ~1; h = (h + 1) & ~1; break; case AV_PIX_FMT_YUV444P: - case AV_PIX_FMT_YUVJ444P: case AV_PIX_FMT_YUV444P10: case AV_PIX_FMT_YUV444P12: t = VDP_CHROMA_TYPE_444; diff --git a/libavfilter/avf_showcwt.c b/libavfilter/avf_showcwt.c index d5bc920a4b..9753d9212e 100644 --- a/libavfilter/avf_showcwt.c +++ b/libavfilter/avf_showcwt.c @@ -228,7 +228,7 @@ static int query_formats(AVFilterContext *ctx) AVFilterLink *inlink = ctx->inputs[0]; AVFilterLink *outlink = ctx->outputs[0]; static const enum AVSampleFormat sample_fmts[] = { AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE }; - static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_NONE }; + static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_NONE }; int ret; formats = ff_make_format_list(sample_fmts); diff --git a/libavfilter/avf_showspectrum.c b/libavfilter/avf_showspectrum.c index 8cf73fce70..530f98e023 100644 --- a/libavfilter/avf_showspectrum.c +++ b/libavfilter/avf_showspectrum.c @@ -365,7 +365,7 @@ static int query_formats(AVFilterContext *ctx) AVFilterLink *inlink = ctx->inputs[0]; AVFilterLink *outlink = ctx->outputs[0]; static const enum AVSampleFormat sample_fmts[] = { AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE }; - static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_NONE }; + static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_NONE }; int ret; /* set input audio formats */ diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c index e7fabe85ea..f5697f9824 100644 --- a/libavfilter/avfiltergraph.c +++ b/libavfilter/avfiltergraph.c @@ -612,17 +612,7 @@ int ff_fmt_is_regular_yuv(enum AVPixelFormat fmt) if (desc->flags & (AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_PAL | AV_PIX_FMT_FLAG_XYZ | AV_PIX_FMT_FLAG_FLOAT)) return 0; - - switch (fmt) { - case AV_PIX_FMT_YUVJ420P: - case AV_PIX_FMT_YUVJ422P: - case AV_PIX_FMT_YUVJ444P: - case AV_PIX_FMT_YUVJ440P: - case AV_PIX_FMT_YUVJ411P: - return 0; - default: - return 1; - } + return 1; } static int pick_format(AVFilterLink *link, AVFilterLink *ref) diff --git a/libavfilter/drawutils.c b/libavfilter/drawutils.c index 1081938d86..d5ee122c1f 100644 --- a/libavfilter/drawutils.c +++ b/libavfilter/drawutils.c @@ -98,10 +98,7 @@ int ff_draw_init2(FFDrawContext *draw, enum AVPixelFormat format, enum AVColorSp if (!(desc->flags & AV_PIX_FMT_FLAG_RGB) && !(luma = av_csp_luma_coeffs_from_avcsp(csp))) return AVERROR(EINVAL); if (range == AVCOL_RANGE_UNSPECIFIED) - range = (format == AV_PIX_FMT_YUVJ420P || format == AV_PIX_FMT_YUVJ422P || - format == AV_PIX_FMT_YUVJ444P || format == AV_PIX_FMT_YUVJ411P || - format == AV_PIX_FMT_YUVJ440P || csp == AVCOL_SPC_RGB) - ? AVCOL_RANGE_JPEG : AVCOL_RANGE_MPEG; + range = csp == AVCOL_SPC_RGB ? AVCOL_RANGE_JPEG : AVCOL_RANGE_MPEG; if (range != AVCOL_RANGE_JPEG && range != AVCOL_RANGE_MPEG) return AVERROR(EINVAL); for (i = 0; i < desc->nb_components; i++) { diff --git a/libavfilter/f_select.c b/libavfilter/f_select.c index 47e36f0014..7f082ffb29 100644 --- a/libavfilter/f_select.c +++ b/libavfilter/f_select.c @@ -502,9 +502,7 @@ static int query_formats(AVFilterContext *ctx) static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_RGB24, AV_PIX_FMT_BGR24, AV_PIX_FMT_RGBA, AV_PIX_FMT_ABGR, AV_PIX_FMT_BGRA, AV_PIX_FMT_GRAY8, - AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUV420P10, + AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_NONE }; return ff_set_common_formats_from_list(ctx, pix_fmts); diff --git a/libavfilter/vaf_spectrumsynth.c b/libavfilter/vaf_spectrumsynth.c index 896eba558e..2b0f277f5c 100644 --- a/libavfilter/vaf_spectrumsynth.c +++ b/libavfilter/vaf_spectrumsynth.c @@ -106,8 +106,8 @@ static int query_formats(AVFilterContext *ctx) AVFilterLink *outlink = ctx->outputs[0]; static const enum AVSampleFormat sample_fmts[] = { AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE }; static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY16, - AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUV444P16, AV_PIX_FMT_NONE }; + AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV444P16, + AV_PIX_FMT_NONE }; int ret, sample_rates[] = { 48000, -1 }; formats = ff_make_format_list(sample_fmts); @@ -293,7 +293,6 @@ static void read_fft_data(AVFilterContext *ctx, int x, int h, int ch) read16_fft_bin(s, x, y, f, ch); } break; - case AV_PIX_FMT_YUVJ444P: case AV_PIX_FMT_YUV444P: case AV_PIX_FMT_GRAY8: for (y = start, f = 0; y >= end; y--, f++) { @@ -310,7 +309,6 @@ static void read_fft_data(AVFilterContext *ctx, int x, int h, int ch) read16_fft_bin(s, y, x, f, ch); } break; - case AV_PIX_FMT_YUVJ444P: case AV_PIX_FMT_YUV444P: case AV_PIX_FMT_GRAY8: for (y = end, f = 0; y <= start; y++, f++) { diff --git a/libavfilter/vf_amplify.c b/libavfilter/vf_amplify.c index 0ebca60ea2..9e1910951b 100644 --- a/libavfilter/vf_amplify.c +++ b/libavfilter/vf_amplify.c @@ -55,9 +55,6 @@ static const enum AVPixelFormat pixel_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_atadenoise.c b/libavfilter/vf_atadenoise.c index eed12acfa4..36a9dcefda 100644 --- a/libavfilter/vf_atadenoise.c +++ b/libavfilter/vf_atadenoise.c @@ -99,9 +99,6 @@ static const enum AVPixelFormat pixel_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_avgblur.c b/libavfilter/vf_avgblur.c index 8ff6111bcc..ce7dd5a306 100644 --- a/libavfilter/vf_avgblur.c +++ b/libavfilter/vf_avgblur.c @@ -247,10 +247,8 @@ static void averageiir2d(AVFilterContext *ctx, AVFrame *in, AVFrame *out, int pl static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_bbox.c b/libavfilter/vf_bbox.c index 02893d500d..b382d1ccf5 100644 --- a/libavfilter/vf_bbox.c +++ b/libavfilter/vf_bbox.c @@ -53,9 +53,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_bilateral.c b/libavfilter/vf_bilateral.c index fe16419026..2291501291 100644 --- a/libavfilter/vf_bilateral.c +++ b/libavfilter/vf_bilateral.c @@ -68,10 +68,8 @@ AVFILTER_DEFINE_CLASS(bilateral); static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_bitplanenoise.c b/libavfilter/vf_bitplanenoise.c index 32235ff230..e1388d3e99 100644 --- a/libavfilter/vf_bitplanenoise.c +++ b/libavfilter/vf_bitplanenoise.c @@ -49,8 +49,6 @@ AVFILTER_DEFINE_CLASS(bitplanenoise); static const enum AVPixelFormat pixfmts[] = { AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ411P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_blackdetect.c b/libavfilter/vf_blackdetect.c index 55033ba5ea..98c0e2a107 100644 --- a/libavfilter/vf_blackdetect.c +++ b/libavfilter/vf_blackdetect.c @@ -67,20 +67,12 @@ static const AVOption blackdetect_options[] = { AVFILTER_DEFINE_CLASS(blackdetect); -#define YUVJ_FORMATS \ - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P - -static const enum AVPixelFormat yuvj_formats[] = { - YUVJ_FORMATS, AV_PIX_FMT_NONE -}; - static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_GRAY8, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_NV12, AV_PIX_FMT_NV21, - YUVJ_FORMATS, AV_PIX_FMT_GRAY10, AV_PIX_FMT_GRAY12, AV_PIX_FMT_GRAY14, AV_PIX_FMT_GRAY16, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, @@ -177,8 +169,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *picref) double picture_black_ratio = 0; const int max = (1 << s->depth) - 1; const int factor = (1 << (s->depth - 8)); - const int full = picref->color_range == AVCOL_RANGE_JPEG || - ff_fmt_is_in(picref->format, yuvj_formats); + const int full = picref->color_range == AVCOL_RANGE_JPEG; s->pixel_black_th_i = full ? s->pixel_black_th * max : // luminance_minimum_value + pixel_black_th * luminance_range_size diff --git a/libavfilter/vf_blend.c b/libavfilter/vf_blend.c index ecabb78e61..e14786e255 100644 --- a/libavfilter/vf_blend.c +++ b/libavfilter/vf_blend.c @@ -253,7 +253,6 @@ static av_cold int init(AVFilterContext *ctx) static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA420P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ422P,AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP, AV_PIX_FMT_GRAY8, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, diff --git a/libavfilter/vf_blockdetect.c b/libavfilter/vf_blockdetect.c index d787aff5e4..a7b8902b1a 100644 --- a/libavfilter/vf_blockdetect.c +++ b/libavfilter/vf_blockdetect.c @@ -258,8 +258,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_NONE }; diff --git a/libavfilter/vf_blurdetect.c b/libavfilter/vf_blurdetect.c index 354a6b6100..5f7b1f89eb 100644 --- a/libavfilter/vf_blurdetect.c +++ b/libavfilter/vf_blurdetect.c @@ -342,8 +342,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_NONE }; diff --git a/libavfilter/vf_bm3d.c b/libavfilter/vf_bm3d.c index cdced50ba3..9be1faba8e 100644 --- a/libavfilter/vf_bm3d.c +++ b/libavfilter/vf_bm3d.c @@ -169,9 +169,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_bwdif.c b/libavfilter/vf_bwdif.c index 137cd5ef13..17f33207be 100644 --- a/libavfilter/vf_bwdif.c +++ b/libavfilter/vf_bwdif.c @@ -151,8 +151,6 @@ static av_cold void uninit(AVFilterContext *ctx) static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, diff --git a/libavfilter/vf_cas.c b/libavfilter/vf_cas.c index 5fa5055d76..b99250d797 100644 --- a/libavfilter/vf_cas.c +++ b/libavfilter/vf_cas.c @@ -207,9 +207,6 @@ static const enum AVPixelFormat pixel_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_chromanr.c b/libavfilter/vf_chromanr.c index dd49d8670a..0f4a27add5 100644 --- a/libavfilter/vf_chromanr.c +++ b/libavfilter/vf_chromanr.c @@ -57,7 +57,6 @@ typedef struct ChromaNRContext { static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA444P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV440P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV440P12, AV_PIX_FMT_YUV420P12, diff --git a/libavfilter/vf_chromashift.c b/libavfilter/vf_chromashift.c index 39b96a749e..06e3053ccc 100644 --- a/libavfilter/vf_chromashift.c +++ b/libavfilter/vf_chromashift.c @@ -380,7 +380,6 @@ static const AVFilterPad inputs[] = { static const enum AVPixelFormat yuv_pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA420P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ422P,AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_colorcorrect.c b/libavfilter/vf_colorcorrect.c index 1c4dea531b..b23ede296d 100644 --- a/libavfilter/vf_colorcorrect.c +++ b/libavfilter/vf_colorcorrect.c @@ -430,7 +430,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) static const enum AVPixelFormat pixel_fmts[] = { AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA444P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV440P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV440P12, AV_PIX_FMT_YUV420P12, diff --git a/libavfilter/vf_colorize.c b/libavfilter/vf_colorize.c index e6c563e3e2..236b53a6c5 100644 --- a/libavfilter/vf_colorize.c +++ b/libavfilter/vf_colorize.c @@ -212,9 +212,6 @@ static const enum AVPixelFormat pixel_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_colorspace.c b/libavfilter/vf_colorspace.c index 2a30434401..d51f4e2d0c 100644 --- a/libavfilter/vf_colorspace.c +++ b/libavfilter/vf_colorspace.c @@ -835,7 +835,6 @@ static int query_formats(AVFilterContext *ctx) AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_NONE }; int res; diff --git a/libavfilter/vf_convolution.c b/libavfilter/vf_convolution.c index c1a63c9aa9..ee46b42099 100644 --- a/libavfilter/vf_convolution.c +++ b/libavfilter/vf_convolution.c @@ -80,10 +80,8 @@ static const int same7x7[49] = {0, 0, 0, 0, 0, 0, 0, static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_convolve.c b/libavfilter/vf_convolve.c index 25dc92e988..cbe1a3262c 100644 --- a/libavfilter/vf_convolve.c +++ b/libavfilter/vf_convolve.c @@ -92,10 +92,8 @@ static const AVOption convolve_options[] = { static const enum AVPixelFormat pixel_fmts_fftfilt[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_corr.c b/libavfilter/vf_corr.c index fb2770539e..7fd1b313fa 100644 --- a/libavfilter/vf_corr.c +++ b/libavfilter/vf_corr.c @@ -191,8 +191,6 @@ static const enum AVPixelFormat pix_fmts[] = { #define PF(suf) PF_NOALPHA(suf), PF_ALPHA(suf) PF(P), PF(P9), PF(P10), PF_NOALPHA(P12), PF_NOALPHA(P14), PF(P16), AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRP9, AV_PIX_FMT_GBRP10, AV_PIX_FMT_GBRP12, AV_PIX_FMT_GBRP14, AV_PIX_FMT_GBRP16, AV_PIX_FMT_GBRAP, AV_PIX_FMT_GBRAP10, AV_PIX_FMT_GBRAP12, AV_PIX_FMT_GBRAP16, diff --git a/libavfilter/vf_cover_rect.c b/libavfilter/vf_cover_rect.c index 7f34311589..12b821b9a4 100644 --- a/libavfilter/vf_cover_rect.c +++ b/libavfilter/vf_cover_rect.c @@ -215,7 +215,7 @@ static av_cold int init(AVFilterContext *ctx) &cover->cover_frame->format, cover->cover_filename, ctx)) < 0) return ret; - if (cover->cover_frame->format != AV_PIX_FMT_YUV420P && cover->cover_frame->format != AV_PIX_FMT_YUVJ420P) { + if (cover->cover_frame->format != AV_PIX_FMT_YUV420P) { av_log(ctx, AV_LOG_ERROR, "cover image is not a YUV420 image\n"); return AVERROR(EINVAL); } @@ -241,6 +241,6 @@ const AVFilter ff_vf_cover_rect = { .uninit = uninit, FILTER_INPUTS(cover_rect_inputs), FILTER_OUTPUTS(ff_video_default_filterpad), - FILTER_PIXFMTS(AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVJ420P), + FILTER_PIXFMTS(AV_PIX_FMT_YUV420P), .priv_class = &cover_rect_class, }; diff --git a/libavfilter/vf_cropdetect.c b/libavfilter/vf_cropdetect.c index 58755fc356..08740e50a7 100644 --- a/libavfilter/vf_cropdetect.c +++ b/libavfilter/vf_cropdetect.c @@ -59,9 +59,9 @@ typedef struct CropDetectContext { } CropDetectContext; static const enum AVPixelFormat pix_fmts[] = { - AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVJ444P, + AV_PIX_FMT_YUV420P, + AV_PIX_FMT_YUV422P, + AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_GRAY8, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9 , AV_PIX_FMT_YUV422P9 , AV_PIX_FMT_YUV444P9, diff --git a/libavfilter/vf_dblur.c b/libavfilter/vf_dblur.c index 3110d19271..6ee6ece03c 100644 --- a/libavfilter/vf_dblur.c +++ b/libavfilter/vf_dblur.c @@ -113,10 +113,8 @@ static void diriir2d(AVFilterContext *ctx, int plane) static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_deband.c b/libavfilter/vf_deband.c index 177d888bed..befc7df2da 100644 --- a/libavfilter/vf_deband.c +++ b/libavfilter/vf_deband.c @@ -79,8 +79,6 @@ static int query_formats(AVFilterContext *ctx) AV_PIX_FMT_GRAY12, AV_PIX_FMT_GRAY14, AV_PIX_FMT_GRAY16, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUVA420P9, AV_PIX_FMT_YUVA422P9, AV_PIX_FMT_YUVA444P9, @@ -97,7 +95,7 @@ static int query_formats(AVFilterContext *ctx) }; static const enum AVPixelFormat cpix_fmts[] = { - AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVJ444P, + AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUVA444P9, AV_PIX_FMT_YUVA444P10, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV444P14, diff --git a/libavfilter/vf_deblock.c b/libavfilter/vf_deblock.c index d35b22e3be..3bdd3ec075 100644 --- a/libavfilter/vf_deblock.c +++ b/libavfilter/vf_deblock.c @@ -62,10 +62,8 @@ typedef struct DeblockContext { static const enum AVPixelFormat pixel_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_decimate.c b/libavfilter/vf_decimate.c index dbeca427f1..8651f976cb 100644 --- a/libavfilter/vf_decimate.c +++ b/libavfilter/vf_decimate.c @@ -372,8 +372,6 @@ static const enum AVPixelFormat pix_fmts[] = { PF(P), PF(P9), PF(P10), PF_NOALPHA(P12), PF_NOALPHA(P14), PF(P16), AV_PIX_FMT_YUV440P10, AV_PIX_FMT_YUV440P12, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY9, AV_PIX_FMT_GRAY10, AV_PIX_FMT_GRAY12, AV_PIX_FMT_GRAY14, AV_PIX_FMT_GRAY16, AV_PIX_FMT_NONE diff --git a/libavfilter/vf_dedot.c b/libavfilter/vf_dedot.c index 7aa2583184..b52338f11a 100644 --- a/libavfilter/vf_dedot.c +++ b/libavfilter/vf_dedot.c @@ -56,10 +56,8 @@ typedef struct DedotContext { static const enum AVPixelFormat pixel_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_deflicker.c b/libavfilter/vf_deflicker.c index 25172135ed..4146385b33 100644 --- a/libavfilter/vf_deflicker.c +++ b/libavfilter/vf_deflicker.c @@ -96,9 +96,6 @@ static const enum AVPixelFormat pixel_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_deshake.c b/libavfilter/vf_deshake.c index 299814fd65..b3650bf9e3 100644 --- a/libavfilter/vf_deshake.c +++ b/libavfilter/vf_deshake.c @@ -426,8 +426,7 @@ static av_cold int init(AVFilterContext *ctx) static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV410P, - AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_NONE + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_NONE }; static int config_props(AVFilterLink *link) diff --git a/libavfilter/vf_displace.c b/libavfilter/vf_displace.c index 8cc11f07ba..3890b6bc27 100644 --- a/libavfilter/vf_displace.c +++ b/libavfilter/vf_displace.c @@ -62,10 +62,8 @@ AVFILTER_DEFINE_CLASS(displace); static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_RGB24, AV_PIX_FMT_BGR24, AV_PIX_FMT_ARGB, AV_PIX_FMT_ABGR, AV_PIX_FMT_RGBA, AV_PIX_FMT_BGRA, AV_PIX_FMT_0RGB, AV_PIX_FMT_0BGR, AV_PIX_FMT_RGB0, AV_PIX_FMT_BGR0, diff --git a/libavfilter/vf_drawbox.c b/libavfilter/vf_drawbox.c index 27739dc89f..1d0dfb4cb9 100644 --- a/libavfilter/vf_drawbox.c +++ b/libavfilter/vf_drawbox.c @@ -256,9 +256,7 @@ static av_cold int init(AVFilterContext *ctx) static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUVJ440P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_RGB24, AV_PIX_FMT_BGR24, AV_PIX_FMT_RGBA, AV_PIX_FMT_BGRA, diff --git a/libavfilter/vf_entropy.c b/libavfilter/vf_entropy.c index 694a3ee872..84ca584e43 100644 --- a/libavfilter/vf_entropy.c +++ b/libavfilter/vf_entropy.c @@ -54,8 +54,6 @@ AVFILTER_DEFINE_CLASS(entropy); static const enum AVPixelFormat pixfmts[] = { AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ411P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_estdif.c b/libavfilter/vf_estdif.c index 471def9fa7..dd0c347fc0 100644 --- a/libavfilter/vf_estdif.c +++ b/libavfilter/vf_estdif.c @@ -109,9 +109,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP, AV_PIX_FMT_GRAY8, diff --git a/libavfilter/vf_extractplanes.c b/libavfilter/vf_extractplanes.c index ca406ff323..855735c9bd 100644 --- a/libavfilter/vf_extractplanes.c +++ b/libavfilter/vf_extractplanes.c @@ -72,9 +72,6 @@ AVFILTER_DEFINE_CLASS(extractplanes); AV_PIX_FMT_YUV440P, \ AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVA420P, \ AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA422P, \ - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, \ - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, \ - AV_PIX_FMT_YUVJ411P, \ AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVA444P, \ AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY8A, \ AV_PIX_FMT_RGB24, AV_PIX_FMT_BGR24, \ diff --git a/libavfilter/vf_fade.c b/libavfilter/vf_fade.c index f903db0415..17367af3d6 100644 --- a/libavfilter/vf_fade.c +++ b/libavfilter/vf_fade.c @@ -106,9 +106,7 @@ static int query_formats(AVFilterContext *ctx) const FadeContext *s = ctx->priv; static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUVJ440P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_RGB24, AV_PIX_FMT_BGR24, AV_PIX_FMT_ARGB, AV_PIX_FMT_ABGR, diff --git a/libavfilter/vf_fftdnoiz.c b/libavfilter/vf_fftdnoiz.c index 1489f3282b..f0a17d4e7f 100644 --- a/libavfilter/vf_fftdnoiz.c +++ b/libavfilter/vf_fftdnoiz.c @@ -119,9 +119,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_fftfilt.c b/libavfilter/vf_fftfilt.c index aea83dc19c..0b13511025 100644 --- a/libavfilter/vf_fftfilt.c +++ b/libavfilter/vf_fftfilt.c @@ -569,9 +569,7 @@ static const enum AVPixelFormat pixel_fmts_fftfilt[] = { AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY9, AV_PIX_FMT_GRAY10, AV_PIX_FMT_GRAY12, AV_PIX_FMT_GRAY14, AV_PIX_FMT_GRAY16, - AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVJ422P, + AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV420P14, AV_PIX_FMT_YUV420P16, diff --git a/libavfilter/vf_fieldmatch.c b/libavfilter/vf_fieldmatch.c index 55671d8517..8b49e2093a 100644 --- a/libavfilter/vf_fieldmatch.c +++ b/libavfilter/vf_fieldmatch.c @@ -920,9 +920,6 @@ static int query_formats(AVFilterContext *ctx) AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_fillborders.c b/libavfilter/vf_fillborders.c index 34e7b5f637..831c6b5dc8 100644 --- a/libavfilter/vf_fillborders.c +++ b/libavfilter/vf_fillborders.c @@ -56,10 +56,8 @@ typedef struct FillBordersContext { static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_find_rect.c b/libavfilter/vf_find_rect.c index 9f4ee1e32f..d524c74978 100644 --- a/libavfilter/vf_find_rect.c +++ b/libavfilter/vf_find_rect.c @@ -291,6 +291,6 @@ const AVFilter ff_vf_find_rect = { .flags = AVFILTER_FLAG_METADATA_ONLY, FILTER_INPUTS(foc_inputs), FILTER_OUTPUTS(ff_video_default_filterpad), - FILTER_PIXFMTS(AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVJ420P), + FILTER_PIXFMTS(AV_PIX_FMT_YUV420P), .priv_class = &find_rect_class, }; diff --git a/libavfilter/vf_framepack.c b/libavfilter/vf_framepack.c index 3b915ddddf..4541ac0397 100644 --- a/libavfilter/vf_framepack.c +++ b/libavfilter/vf_framepack.c @@ -58,9 +58,6 @@ static const enum AVPixelFormat formats_supported[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_framerate.c b/libavfilter/vf_framerate.c index 6d448be74c..366809e358 100644 --- a/libavfilter/vf_framerate.c +++ b/libavfilter/vf_framerate.c @@ -218,11 +218,11 @@ static av_cold void uninit(AVFilterContext *ctx) static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV410P, - AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUVJ411P, - AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUVJ440P, - AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVJ444P, + AV_PIX_FMT_YUV411P, + AV_PIX_FMT_YUV420P, + AV_PIX_FMT_YUV422P, + AV_PIX_FMT_YUV440P, + AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV444P12, diff --git a/libavfilter/vf_freezedetect.c b/libavfilter/vf_freezedetect.c index 18d392d9ae..8deb5383b4 100644 --- a/libavfilter/vf_freezedetect.c +++ b/libavfilter/vf_freezedetect.c @@ -66,10 +66,9 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUYV422, AV_PIX_FMT_RGB24, AV_PIX_FMT_BGR24, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_GRAY8, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_UYVY422, AV_PIX_FMT_NV12, AV_PIX_FMT_NV21, AV_PIX_FMT_ARGB, AV_PIX_FMT_RGBA, AV_PIX_FMT_ABGR, AV_PIX_FMT_BGRA, AV_PIX_FMT_GRAY16, - AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA420P, + AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P16, AV_PIX_FMT_YUV422P16, AV_PIX_FMT_YUV444P16, AV_PIX_FMT_YA8, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV444P10, @@ -82,7 +81,7 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_GBRAP, AV_PIX_FMT_GBRAP16, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV420P14, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV422P14, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV444P14, AV_PIX_FMT_GBRP12, - AV_PIX_FMT_GBRP14, AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV440P10, + AV_PIX_FMT_GBRP14, AV_PIX_FMT_YUV440P10, AV_PIX_FMT_YUV440P12, AV_PIX_FMT_GBRAP12, AV_PIX_FMT_GBRAP10, AV_PIX_FMT_GRAY12, AV_PIX_FMT_GRAY10, AV_PIX_FMT_GRAY9, AV_PIX_FMT_GRAY14, diff --git a/libavfilter/vf_fspp.c b/libavfilter/vf_fspp.c index 8f44390117..6babebccdd 100644 --- a/libavfilter/vf_fspp.c +++ b/libavfilter/vf_fspp.c @@ -497,8 +497,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_GBRP, AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE }; diff --git a/libavfilter/vf_gblur.c b/libavfilter/vf_gblur.c index 6ce2c84736..5e20b7a1a6 100644 --- a/libavfilter/vf_gblur.c +++ b/libavfilter/vf_gblur.c @@ -138,10 +138,8 @@ static void gaussianiir2d(AVFilterContext *ctx, int plane) static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_guided.c b/libavfilter/vf_guided.c index 8c0e5e454e..ea070cea76 100644 --- a/libavfilter/vf_guided.c +++ b/libavfilter/vf_guided.c @@ -143,10 +143,8 @@ static int box_slice(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_histogram.c b/libavfilter/vf_histogram.c index 83477692cd..9926a65963 100644 --- a/libavfilter/vf_histogram.c +++ b/libavfilter/vf_histogram.c @@ -105,11 +105,11 @@ static const AVOption histogram_options[] = { AVFILTER_DEFINE_CLASS(histogram); static const enum AVPixelFormat levels_in_pix_fmts[] = { - AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUVJ411P, + AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, + AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV410P, - AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVJ444P, + AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUVA420P9, AV_PIX_FMT_YUVA422P9, AV_PIX_FMT_YUVA444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, diff --git a/libavfilter/vf_hqdn3d.c b/libavfilter/vf_hqdn3d.c index d95ae8f898..16c1f88137 100644 --- a/libavfilter/vf_hqdn3d.c +++ b/libavfilter/vf_hqdn3d.c @@ -232,7 +232,6 @@ static av_cold void uninit(AVFilterContext *ctx) static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_hysteresis.c b/libavfilter/vf_hysteresis.c index d2fd3011b8..d1ef30e932 100644 --- a/libavfilter/vf_hysteresis.c +++ b/libavfilter/vf_hysteresis.c @@ -59,10 +59,8 @@ static const AVOption hysteresis_options[] = { static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_identity.c b/libavfilter/vf_identity.c index d3a5ec14f6..68e86235cc 100644 --- a/libavfilter/vf_identity.c +++ b/libavfilter/vf_identity.c @@ -248,8 +248,6 @@ static const enum AVPixelFormat pix_fmts[] = { #define PF(suf) PF_NOALPHA(suf), PF_ALPHA(suf) PF(P), PF(P9), PF(P10), PF_NOALPHA(P12), PF_NOALPHA(P14), PF(P16), AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRP9, AV_PIX_FMT_GBRP10, AV_PIX_FMT_GBRP12, AV_PIX_FMT_GBRP14, AV_PIX_FMT_GBRP16, AV_PIX_FMT_GBRAP, AV_PIX_FMT_GBRAP10, AV_PIX_FMT_GBRAP12, AV_PIX_FMT_GBRAP16, diff --git a/libavfilter/vf_idet.c b/libavfilter/vf_idet.c index abd375230a..9bb3ab83a3 100644 --- a/libavfilter/vf_idet.c +++ b/libavfilter/vf_idet.c @@ -400,12 +400,8 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_GRAY8, - AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_GRAY16, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, diff --git a/libavfilter/vf_lagfun.c b/libavfilter/vf_lagfun.c index 20cdd9fa65..de2c0dd602 100644 --- a/libavfilter/vf_lagfun.c +++ b/libavfilter/vf_lagfun.c @@ -49,9 +49,6 @@ static const enum AVPixelFormat pixel_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_lenscorrection.c b/libavfilter/vf_lenscorrection.c index 413eabefba..e9224b277b 100644 --- a/libavfilter/vf_lenscorrection.c +++ b/libavfilter/vf_lenscorrection.c @@ -182,9 +182,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_limitdiff.c b/libavfilter/vf_limitdiff.c index 1e903d45a8..5b78a40faf 100644 --- a/libavfilter/vf_limitdiff.c +++ b/libavfilter/vf_limitdiff.c @@ -65,10 +65,8 @@ static const AVOption limitdiff_options[] = { static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_limiter.c b/libavfilter/vf_limiter.c index f67f590d60..b41926eae6 100644 --- a/libavfilter/vf_limiter.c +++ b/libavfilter/vf_limiter.c @@ -67,10 +67,8 @@ static av_cold int init(AVFilterContext *ctx) static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_lut.c b/libavfilter/vf_lut.c index 1a6ca06546..375a1d25d3 100644 --- a/libavfilter/vf_lut.c +++ b/libavfilter/vf_lut.c @@ -115,8 +115,6 @@ static av_cold void uninit(AVFilterContext *ctx) AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, \ AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV440P, \ AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA444P, \ - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, \ - AV_PIX_FMT_YUVJ440P, \ AV_PIX_FMT_YUV444P9LE, AV_PIX_FMT_YUV422P9LE, AV_PIX_FMT_YUV420P9LE, \ AV_PIX_FMT_YUV444P10LE, AV_PIX_FMT_YUV422P10LE, AV_PIX_FMT_YUV420P10LE, AV_PIX_FMT_YUV440P10LE, \ AV_PIX_FMT_YUV444P12LE, AV_PIX_FMT_YUV422P12LE, AV_PIX_FMT_YUV420P12LE, AV_PIX_FMT_YUV440P12LE, \ diff --git a/libavfilter/vf_lut2.c b/libavfilter/vf_lut2.c index 49755544b0..a4818b08ba 100644 --- a/libavfilter/vf_lut2.c +++ b/libavfilter/vf_lut2.c @@ -110,10 +110,8 @@ static av_cold void uninit(AVFilterContext *ctx) #define BIT8_FMTS \ AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, \ - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, \ AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, \ - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, \ - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, \ + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, \ AV_PIX_FMT_GRAY8, AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP, #define BIT9_FMTS \ diff --git a/libavfilter/vf_maskedclamp.c b/libavfilter/vf_maskedclamp.c index e6fbb1a6d5..021c5d84bd 100644 --- a/libavfilter/vf_maskedclamp.c +++ b/libavfilter/vf_maskedclamp.c @@ -61,10 +61,8 @@ AVFILTER_DEFINE_CLASS(maskedclamp); static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_maskedmerge.c b/libavfilter/vf_maskedmerge.c index 4ca0c571c8..2717e6b76a 100644 --- a/libavfilter/vf_maskedmerge.c +++ b/libavfilter/vf_maskedmerge.c @@ -38,10 +38,8 @@ AVFILTER_DEFINE_CLASS(maskedmerge); static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_maskedminmax.c b/libavfilter/vf_maskedminmax.c index b1c309cc7d..80221bdd96 100644 --- a/libavfilter/vf_maskedminmax.c +++ b/libavfilter/vf_maskedminmax.c @@ -64,10 +64,8 @@ static av_cold int maskedmin_init(AVFilterContext *ctx) static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_maskedthreshold.c b/libavfilter/vf_maskedthreshold.c index 36c4050b98..54f17f6e75 100644 --- a/libavfilter/vf_maskedthreshold.c +++ b/libavfilter/vf_maskedthreshold.c @@ -61,10 +61,8 @@ static const AVOption maskedthreshold_options[] = { static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_maskfun.c b/libavfilter/vf_maskfun.c index 1ac152fc8b..d6dca71a67 100644 --- a/libavfilter/vf_maskfun.c +++ b/libavfilter/vf_maskfun.c @@ -63,10 +63,8 @@ AVFILTER_DEFINE_CLASS(maskfun); static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_median.c b/libavfilter/vf_median.c index 57514f9289..975738513a 100644 --- a/libavfilter/vf_median.c +++ b/libavfilter/vf_median.c @@ -84,10 +84,8 @@ static void hmuladd(htype *dst, const htype *src, int f, int bins) static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP, AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY9, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_GBRP9, AV_PIX_FMT_YUVA420P9, AV_PIX_FMT_YUVA422P9, AV_PIX_FMT_YUVA444P9, diff --git a/libavfilter/vf_mestimate.c b/libavfilter/vf_mestimate.c index 4ec34cd7fb..d533d4d7d3 100644 --- a/libavfilter/vf_mestimate.c +++ b/libavfilter/vf_mestimate.c @@ -68,9 +68,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE diff --git a/libavfilter/vf_midequalizer.c b/libavfilter/vf_midequalizer.c index fae2b7ef19..0c2749d271 100644 --- a/libavfilter/vf_midequalizer.c +++ b/libavfilter/vf_midequalizer.c @@ -58,10 +58,8 @@ AVFILTER_DEFINE_CLASS(midequalizer); static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP, AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY9, AV_PIX_FMT_GRAY10, AV_PIX_FMT_GRAY12, AV_PIX_FMT_GRAY14, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, diff --git a/libavfilter/vf_minterpolate.c b/libavfilter/vf_minterpolate.c index 9920210ece..17b4c238ac 100644 --- a/libavfilter/vf_minterpolate.c +++ b/libavfilter/vf_minterpolate.c @@ -237,9 +237,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE diff --git a/libavfilter/vf_monochrome.c b/libavfilter/vf_monochrome.c index 05c001707a..09b0a30005 100644 --- a/libavfilter/vf_monochrome.c +++ b/libavfilter/vf_monochrome.c @@ -225,9 +225,6 @@ static const enum AVPixelFormat pixel_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_morpho.c b/libavfilter/vf_morpho.c index bd1d6b230f..09a126326a 100644 --- a/libavfilter/vf_morpho.c +++ b/libavfilter/vf_morpho.c @@ -147,10 +147,8 @@ FRAMESYNC_DEFINE_CLASS(morpho, MorphoContext, fs); static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP, AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY9, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_GBRP9, AV_PIX_FMT_YUVA420P9, AV_PIX_FMT_YUVA422P9, AV_PIX_FMT_YUVA444P9, diff --git a/libavfilter/vf_mpdecimate.c b/libavfilter/vf_mpdecimate.c index dab8941e46..200d5aa256 100644 --- a/libavfilter/vf_mpdecimate.c +++ b/libavfilter/vf_mpdecimate.c @@ -172,8 +172,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_GBRP, diff --git a/libavfilter/vf_negate.c b/libavfilter/vf_negate.c index 58be43a44b..b04c875663 100644 --- a/libavfilter/vf_negate.c +++ b/libavfilter/vf_negate.c @@ -80,8 +80,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA444P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV440P10, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_neighbor.c b/libavfilter/vf_neighbor.c index 915347d6ba..86f7e35cad 100644 --- a/libavfilter/vf_neighbor.c +++ b/libavfilter/vf_neighbor.c @@ -52,10 +52,8 @@ typedef struct NContext { static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_nlmeans.c b/libavfilter/vf_nlmeans.c index dc935538f0..42c5c2f2f1 100644 --- a/libavfilter/vf_nlmeans.c +++ b/libavfilter/vf_nlmeans.c @@ -77,9 +77,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_GRAY8, AV_PIX_FMT_GBRP, AV_PIX_FMT_NONE }; diff --git a/libavfilter/vf_nnedi.c b/libavfilter/vf_nnedi.c index 1bb8c21e10..3face927b9 100644 --- a/libavfilter/vf_nnedi.c +++ b/libavfilter/vf_nnedi.c @@ -185,9 +185,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, diff --git a/libavfilter/vf_ocr.c b/libavfilter/vf_ocr.c index 3cece91edf..678da4ecaf 100644 --- a/libavfilter/vf_ocr.c +++ b/libavfilter/vf_ocr.c @@ -77,9 +77,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_NONE }; diff --git a/libavfilter/vf_overlay.c b/libavfilter/vf_overlay.c index fa39abb23a..8848dc2c77 100644 --- a/libavfilter/vf_overlay.c +++ b/libavfilter/vf_overlay.c @@ -167,7 +167,7 @@ static int query_formats(AVFilterContext *ctx) /* overlay formats contains alpha, for avoiding conversion with alpha information loss */ static const enum AVPixelFormat main_pix_fmts_yuv420[] = { - AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVA420P, + AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_NV12, AV_PIX_FMT_NV21, AV_PIX_FMT_NONE }; @@ -184,7 +184,7 @@ static int query_formats(AVFilterContext *ctx) }; static const enum AVPixelFormat main_pix_fmts_yuv422[] = { - AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_NONE + AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_NONE }; static const enum AVPixelFormat overlay_pix_fmts_yuv422[] = { AV_PIX_FMT_YUVA422P, AV_PIX_FMT_NONE @@ -198,7 +198,7 @@ static int query_formats(AVFilterContext *ctx) }; static const enum AVPixelFormat main_pix_fmts_yuv444[] = { - AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_NONE + AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_NONE }; static const enum AVPixelFormat overlay_pix_fmts_yuv444[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_NONE diff --git a/libavfilter/vf_perspective.c b/libavfilter/vf_perspective.c index f06c44b33a..fc9879baa1 100644 --- a/libavfilter/vf_perspective.c +++ b/libavfilter/vf_perspective.c @@ -95,7 +95,6 @@ AVFILTER_DEFINE_CLASS(perspective); static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA420P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ422P,AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP, AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE }; diff --git a/libavfilter/vf_phase.c b/libavfilter/vf_phase.c index 02dd08e002..090ad13111 100644 --- a/libavfilter/vf_phase.c +++ b/libavfilter/vf_phase.c @@ -102,9 +102,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_pixelize.c b/libavfilter/vf_pixelize.c index a436515986..06204f47cd 100644 --- a/libavfilter/vf_pixelize.c +++ b/libavfilter/vf_pixelize.c @@ -66,9 +66,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_pp.c b/libavfilter/vf_pp.c index aa37325a24..774e006172 100644 --- a/libavfilter/vf_pp.c +++ b/libavfilter/vf_pp.c @@ -77,12 +77,12 @@ static int pp_process_command(AVFilterContext *ctx, const char *cmd, const char } static const enum AVPixelFormat pix_fmts[] = { - AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVJ422P, + AV_PIX_FMT_YUV420P, + AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_GBRP, - AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUVJ440P, + AV_PIX_FMT_YUV444P, + AV_PIX_FMT_YUV440P, AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE }; @@ -94,15 +94,11 @@ static int pp_config_props(AVFilterLink *inlink) switch (inlink->format) { case AV_PIX_FMT_GRAY8: - case AV_PIX_FMT_YUVJ420P: case AV_PIX_FMT_YUV420P: flags |= PP_FORMAT_420; break; - case AV_PIX_FMT_YUVJ422P: case AV_PIX_FMT_YUV422P: flags |= PP_FORMAT_422; break; case AV_PIX_FMT_YUV411P: flags |= PP_FORMAT_411; break; case AV_PIX_FMT_GBRP: - case AV_PIX_FMT_YUVJ444P: case AV_PIX_FMT_YUV444P: flags |= PP_FORMAT_444; break; - case AV_PIX_FMT_YUVJ440P: case AV_PIX_FMT_YUV440P: flags |= PP_FORMAT_440; break; default: av_assert0(0); } diff --git a/libavfilter/vf_pp7.c b/libavfilter/vf_pp7.c index 24a094f00c..0db4b94b5d 100644 --- a/libavfilter/vf_pp7.c +++ b/libavfilter/vf_pp7.c @@ -270,8 +270,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_GBRP, AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE }; diff --git a/libavfilter/vf_premultiply.c b/libavfilter/vf_premultiply.c index e077d46a9a..0ebb94058c 100644 --- a/libavfilter/vf_premultiply.c +++ b/libavfilter/vf_premultiply.c @@ -69,7 +69,7 @@ static int query_formats(AVFilterContext *ctx) PreMultiplyContext *s = ctx->priv; static const enum AVPixelFormat no_alpha_pix_fmts[] = { - AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVJ444P, + AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV444P14, AV_PIX_FMT_YUV444P16, @@ -534,10 +534,6 @@ static int filter_frame(AVFilterContext *ctx, s->premultiply[0] = full ? unpremultiply8 : unpremultiply8offset; s->premultiply[1] = s->premultiply[2] = unpremultiply8yuv; break; - case AV_PIX_FMT_YUVJ444P: - s->premultiply[0] = unpremultiply8; - s->premultiply[1] = s->premultiply[2] = unpremultiply8yuv; - break; case AV_PIX_FMT_GBRP: case AV_PIX_FMT_GBRAP: s->premultiply[0] = s->premultiply[1] = s->premultiply[2] = limited ? unpremultiply8offset : unpremultiply8; @@ -586,10 +582,6 @@ static int filter_frame(AVFilterContext *ctx, s->premultiply[0] = full ? premultiply8 : premultiply8offset; s->premultiply[1] = s->premultiply[2] = premultiply8yuv; break; - case AV_PIX_FMT_YUVJ444P: - s->premultiply[0] = premultiply8; - s->premultiply[1] = s->premultiply[2] = premultiply8yuv; - break; case AV_PIX_FMT_GBRP: case AV_PIX_FMT_GBRAP: s->premultiply[0] = s->premultiply[1] = s->premultiply[2] = limited ? premultiply8offset : premultiply8; diff --git a/libavfilter/vf_psnr.c b/libavfilter/vf_psnr.c index 058a8932f4..dd05e61059 100644 --- a/libavfilter/vf_psnr.c +++ b/libavfilter/vf_psnr.c @@ -309,8 +309,6 @@ static const enum AVPixelFormat pix_fmts[] = { #define PF(suf) PF_NOALPHA(suf), PF_ALPHA(suf) PF(P), PF(P9), PF(P10), PF_NOALPHA(P12), PF_NOALPHA(P14), PF(P16), AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRP9, AV_PIX_FMT_GBRP10, AV_PIX_FMT_GBRP12, AV_PIX_FMT_GBRP14, AV_PIX_FMT_GBRP16, AV_PIX_FMT_GBRAP, AV_PIX_FMT_GBRAP10, AV_PIX_FMT_GBRAP12, AV_PIX_FMT_GBRAP16, diff --git a/libavfilter/vf_pullup.c b/libavfilter/vf_pullup.c index 14beb972c5..ce4052abb0 100644 --- a/libavfilter/vf_pullup.c +++ b/libavfilter/vf_pullup.c @@ -53,12 +53,10 @@ static const AVOption pullup_options[] = { AVFILTER_DEFINE_CLASS(pullup); static const enum AVPixelFormat pix_fmts[] = { - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_GRAY8, + AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE }; diff --git a/libavfilter/vf_readeia608.c b/libavfilter/vf_readeia608.c index 50bf915765..49ac554176 100644 --- a/libavfilter/vf_readeia608.c +++ b/libavfilter/vf_readeia608.c @@ -105,9 +105,6 @@ static const enum AVPixelFormat pixel_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_readvitc.c b/libavfilter/vf_readvitc.c index cb63a4d127..9055507ca6 100644 --- a/libavfilter/vf_readvitc.c +++ b/libavfilter/vf_readvitc.c @@ -197,11 +197,6 @@ static const enum AVPixelFormat pixel_fmts[] = { AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA444P, - AV_PIX_FMT_YUVJ411P, - AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_NONE }; diff --git a/libavfilter/vf_remap.c b/libavfilter/vf_remap.c index f536580a90..4f53c1e14a 100644 --- a/libavfilter/vf_remap.c +++ b/libavfilter/vf_remap.c @@ -88,7 +88,6 @@ static int query_formats(AVFilterContext *ctx) static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_RGB24, AV_PIX_FMT_BGR24, AV_PIX_FMT_ARGB, AV_PIX_FMT_ABGR, AV_PIX_FMT_RGBA, AV_PIX_FMT_BGRA, AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP, diff --git a/libavfilter/vf_removegrain.c b/libavfilter/vf_removegrain.c index 6e6e99198c..25f5a18882 100644 --- a/libavfilter/vf_removegrain.c +++ b/libavfilter/vf_removegrain.c @@ -48,8 +48,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP, AV_PIX_FMT_NONE }; diff --git a/libavfilter/vf_rotate.c b/libavfilter/vf_rotate.c index 96c250a459..38f98d75ab 100644 --- a/libavfilter/vf_rotate.c +++ b/libavfilter/vf_rotate.c @@ -141,8 +141,8 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_RGB24, AV_PIX_FMT_BGR24, AV_PIX_FMT_GRAY8, AV_PIX_FMT_YUV410P, - AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVJ420P, + AV_PIX_FMT_YUV444P, + AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P10LE, AV_PIX_FMT_YUVA420P10LE, AV_PIX_FMT_YUV444P10LE, AV_PIX_FMT_YUVA444P10LE, diff --git a/libavfilter/vf_scdet.c b/libavfilter/vf_scdet.c index 15399cfebf..ac7e1314d9 100644 --- a/libavfilter/vf_scdet.c +++ b/libavfilter/vf_scdet.c @@ -63,10 +63,10 @@ AVFILTER_DEFINE_CLASS(scdet); static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_RGB24, AV_PIX_FMT_BGR24, AV_PIX_FMT_RGBA, AV_PIX_FMT_ABGR, AV_PIX_FMT_BGRA, AV_PIX_FMT_GRAY8, - AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUVJ440P, - AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVJ444P, + AV_PIX_FMT_YUV420P, + AV_PIX_FMT_YUV422P, + AV_PIX_FMT_YUV440P, + AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV444P12, diff --git a/libavfilter/vf_scroll.c b/libavfilter/vf_scroll.c index eebf12e902..f1e1bd61f2 100644 --- a/libavfilter/vf_scroll.c +++ b/libavfilter/vf_scroll.c @@ -44,10 +44,8 @@ typedef struct ScrollContext { static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_shear.c b/libavfilter/vf_shear.c index 760caa5011..58b84e0975 100644 --- a/libavfilter/vf_shear.c +++ b/libavfilter/vf_shear.c @@ -92,9 +92,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_signalstats.c b/libavfilter/vf_signalstats.c index b4d1029296..3112baa69f 100644 --- a/libavfilter/vf_signalstats.c +++ b/libavfilter/vf_signalstats.c @@ -121,8 +121,6 @@ static av_cold void uninit(AVFilterContext *ctx) static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ411P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_signature.c b/libavfilter/vf_signature.c index 4896e8f2c1..1a3d1b2bc1 100644 --- a/libavfilter/vf_signature.c +++ b/libavfilter/vf_signature.c @@ -73,9 +73,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_NV12, AV_PIX_FMT_NV21, AV_PIX_FMT_NONE }; diff --git a/libavfilter/vf_siti.c b/libavfilter/vf_siti.c index 1b6ff32d6e..ad8d90d9ec 100644 --- a/libavfilter/vf_siti.c +++ b/libavfilter/vf_siti.c @@ -66,7 +66,6 @@ typedef struct SiTiContext { static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_NONE }; @@ -140,15 +139,6 @@ static int config_input(AVFilterLink *inlink) return 0; } -// Determine whether the video is in full or limited range. If not defined, assume limited. -static int is_full_range(AVFrame* frame) -{ - // If color range not specified, fallback to pixel format - if (frame->color_range == AVCOL_RANGE_UNSPECIFIED || frame->color_range == AVCOL_RANGE_NB) - return frame->format == AV_PIX_FMT_YUVJ420P || frame->format == AV_PIX_FMT_YUVJ422P; - return frame->color_range == AVCOL_RANGE_JPEG; -} - // Check frame's color range and convert to full range if needed static uint16_t convert_full_range(int factor, uint16_t y) { @@ -284,7 +274,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) float si; float ti; - s->full_range = is_full_range(frame); + s->full_range = frame->color_range == AVCOL_RANGE_JPEG; s->nb_frames++; // Calculate si and ti diff --git a/libavfilter/vf_spp.c b/libavfilter/vf_spp.c index bb74b20e0e..05285e6be5 100644 --- a/libavfilter/vf_spp.c +++ b/libavfilter/vf_spp.c @@ -316,8 +316,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV422P9, diff --git a/libavfilter/vf_ssim.c b/libavfilter/vf_ssim.c index 53eb72fe6a..5168ac387b 100644 --- a/libavfilter/vf_ssim.c +++ b/libavfilter/vf_ssim.c @@ -431,8 +431,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_GRAY12, AV_PIX_FMT_GRAY14, AV_PIX_FMT_GRAY16, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_GBRP, #define PF(suf) AV_PIX_FMT_YUV420##suf, AV_PIX_FMT_YUV422##suf, AV_PIX_FMT_YUV444##suf, AV_PIX_FMT_GBR##suf PF(P9), PF(P10), PF(P12), PF(P14), PF(P16), diff --git a/libavfilter/vf_ssim360.c b/libavfilter/vf_ssim360.c index 3dec430bff..1dc08e12b6 100644 --- a/libavfilter/vf_ssim360.c +++ b/libavfilter/vf_ssim360.c @@ -1716,8 +1716,6 @@ static const enum AVPixelFormat ssim360_pixfmts[] = { AV_PIX_FMT_GRAY8, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_GBRP, PF(P9), PF(P10), PF(P12), PF(P14), PF(P16), AV_PIX_FMT_NONE diff --git a/libavfilter/vf_stereo3d.c b/libavfilter/vf_stereo3d.c index 71041d2fee..3ffecea448 100644 --- a/libavfilter/vf_stereo3d.c +++ b/libavfilter/vf_stereo3d.c @@ -247,11 +247,6 @@ static const enum AVPixelFormat other_pix_fmts[] = { AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVA444P, - AV_PIX_FMT_YUVJ411P, - AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUV420P9LE, AV_PIX_FMT_YUVA420P9LE, AV_PIX_FMT_YUV420P9BE, AV_PIX_FMT_YUVA420P9BE, AV_PIX_FMT_YUV422P9LE, AV_PIX_FMT_YUVA422P9LE, diff --git a/libavfilter/vf_threshold.c b/libavfilter/vf_threshold.c index dc73c277d3..36e392fff5 100644 --- a/libavfilter/vf_threshold.c +++ b/libavfilter/vf_threshold.c @@ -46,10 +46,8 @@ AVFILTER_DEFINE_CLASS(threshold); static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV440P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV440P12, AV_PIX_FMT_YUV444P12, diff --git a/libavfilter/vf_thumbnail.c b/libavfilter/vf_thumbnail.c index 4d6b0aef04..6f2ba813a1 100644 --- a/libavfilter/vf_thumbnail.c +++ b/libavfilter/vf_thumbnail.c @@ -298,9 +298,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP, AV_PIX_FMT_NONE diff --git a/libavfilter/vf_tinterlace.c b/libavfilter/vf_tinterlace.c index e221a6f941..96a4b6c567 100644 --- a/libavfilter/vf_tinterlace.c +++ b/libavfilter/vf_tinterlace.c @@ -75,13 +75,6 @@ static const AVOption interlace_options[] = { AVFILTER_DEFINE_CLASS(interlace); -#define FULL_SCALE_YUVJ_FORMATS \ - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P - -static const enum AVPixelFormat full_scale_yuvj_pix_fmts[] = { - FULL_SCALE_YUVJ_FORMATS, AV_PIX_FMT_NONE -}; - static const AVRational standard_tbs[] = { {1, 25}, {1, 30}, @@ -98,7 +91,7 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV440P12LE, AV_PIX_FMT_YUV444P12LE, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUVA420P10LE, AV_PIX_FMT_YUVA422P10LE, AV_PIX_FMT_YUVA444P10LE, - AV_PIX_FMT_GRAY8, FULL_SCALE_YUVJ_FORMATS, + AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE }; @@ -228,14 +221,12 @@ static int config_out_props(AVFilterLink *outlink) ff_draw_init(&tinterlace->draw, outlink->format, 0); ff_draw_color(&tinterlace->draw, &tinterlace->color, black); /* limited range */ - if (!ff_fmt_is_in(outlink->format, full_scale_yuvj_pix_fmts)) { - ret = av_image_alloc(tinterlace->black_data[0], tinterlace->black_linesize, - outlink->w, outlink->h, outlink->format, 16); - if (ret < 0) - return ret; - ff_fill_rectangle(&tinterlace->draw, &tinterlace->color, tinterlace->black_data[0], - tinterlace->black_linesize, 0, 0, outlink->w, outlink->h); - } + ret = av_image_alloc(tinterlace->black_data[0], tinterlace->black_linesize, + outlink->w, outlink->h, outlink->format, 16); + if (ret < 0) + return ret; + ff_fill_rectangle(&tinterlace->draw, &tinterlace->color, tinterlace->black_data[0], + tinterlace->black_linesize, 0, 0, outlink->w, outlink->h); /* full range */ tinterlace->color.comp[0].u8[0] = 0; ret = av_image_alloc(tinterlace->black_data[1], tinterlace->black_linesize, @@ -441,7 +432,7 @@ FF_ENABLE_DEPRECATION_WARNINGS out->sample_aspect_ratio = av_mul_q(cur->sample_aspect_ratio, av_make_q(2, 1)); field = (1 + outlink->frame_count_in) & 1 ? FIELD_UPPER : FIELD_LOWER; - full = out->color_range == AVCOL_RANGE_JPEG || ff_fmt_is_in(out->format, full_scale_yuvj_pix_fmts); + full = out->color_range == AVCOL_RANGE_JPEG; /* copy upper and lower fields */ copy_picture_field(tinterlace, out->data, out->linesize, (const uint8_t **)cur->data, cur->linesize, diff --git a/libavfilter/vf_tmidequalizer.c b/libavfilter/vf_tmidequalizer.c index 650aa36636..13ab5b5aac 100644 --- a/libavfilter/vf_tmidequalizer.c +++ b/libavfilter/vf_tmidequalizer.c @@ -68,10 +68,8 @@ AVFILTER_DEFINE_CLASS(tmidequalizer); static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP, AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY9, AV_PIX_FMT_GRAY10, AV_PIX_FMT_GRAY12, AV_PIX_FMT_GRAY14, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, diff --git a/libavfilter/vf_unsharp.c b/libavfilter/vf_unsharp.c index 2705ac5270..8c75dce3b2 100644 --- a/libavfilter/vf_unsharp.c +++ b/libavfilter/vf_unsharp.c @@ -218,12 +218,12 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA422P9, AV_PIX_FMT_YUVA422P10, AV_PIX_FMT_YUVA422P12, AV_PIX_FMT_YUVA422P16, AV_PIX_FMT_YUVA420P9, AV_PIX_FMT_YUVA420P10, AV_PIX_FMT_YUVA420P16, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV410P, - AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, AV_PIX_FMT_YUV420P16, AV_PIX_FMT_YUV422P16, AV_PIX_FMT_YUV444P16, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_NONE + AV_PIX_FMT_NONE }; static int init_filter_param(AVFilterContext *ctx, UnsharpFilterParam *fp, const char *effect_type, int width) diff --git a/libavfilter/vf_uspp.c b/libavfilter/vf_uspp.c index 10c8aaeb6c..444bad5add 100644 --- a/libavfilter/vf_uspp.c +++ b/libavfilter/vf_uspp.c @@ -339,8 +339,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV410P, - AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE }; diff --git a/libavfilter/vf_v360.c b/libavfilter/vf_v360.c index 2ac9b688dc..ede5bb04a0 100644 --- a/libavfilter/vf_v360.c +++ b/libavfilter/vf_v360.c @@ -190,11 +190,6 @@ static int query_formats(AVFilterContext *ctx) AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUVA420P9, AV_PIX_FMT_YUVA420P10, AV_PIX_FMT_YUVA420P16, - // YUVJ - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, - // YUV444 AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV444P12, diff --git a/libavfilter/vf_vaguedenoiser.c b/libavfilter/vf_vaguedenoiser.c index bfb6e9e262..3cf4afa945 100644 --- a/libavfilter/vf_vaguedenoiser.c +++ b/libavfilter/vf_vaguedenoiser.c @@ -109,9 +109,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_varblur.c b/libavfilter/vf_varblur.c index 6ebb9c0663..8912a9581a 100644 --- a/libavfilter/vf_varblur.c +++ b/libavfilter/vf_varblur.c @@ -73,10 +73,8 @@ FRAMESYNC_DEFINE_CLASS(varblur, VarBlurContext, fs); static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_vectorscope.c b/libavfilter/vf_vectorscope.c index 6a45b11463..6e04226ac5 100644 --- a/libavfilter/vf_vectorscope.c +++ b/libavfilter/vf_vectorscope.c @@ -181,7 +181,7 @@ static const enum AVPixelFormat out_rgb12_pix_fmts[] = { }; static const enum AVPixelFormat in1_pix_fmts[] = { - AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVJ444P, + AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUVA444P9, AV_PIX_FMT_YUVA444P10, AV_PIX_FMT_YUVA444P12, AV_PIX_FMT_YUV444P12, @@ -192,10 +192,10 @@ static const enum AVPixelFormat in1_pix_fmts[] = { }; static const enum AVPixelFormat in2_pix_fmts[] = { - AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUVJ411P, + AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, + AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, + AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_GBRAP, AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRP9, AV_PIX_FMT_GBRP10, AV_PIX_FMT_GBRAP10, diff --git a/libavfilter/vf_vif.c b/libavfilter/vf_vif.c index a927abaf6f..3af32d5b9f 100644 --- a/libavfilter/vf_vif.c +++ b/libavfilter/vf_vif.c @@ -470,8 +470,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_GRAY12, AV_PIX_FMT_GRAY14, AV_PIX_FMT_GRAY16, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, #define PF(suf) AV_PIX_FMT_YUV420##suf, AV_PIX_FMT_YUV422##suf, AV_PIX_FMT_YUV444##suf PF(P9), PF(P10), PF(P12), PF(P14), PF(P16), AV_PIX_FMT_NONE diff --git a/libavfilter/vf_w3fdif.c b/libavfilter/vf_w3fdif.c index f2264efe2b..44a7d8047a 100644 --- a/libavfilter/vf_w3fdif.c +++ b/libavfilter/vf_w3fdif.c @@ -76,9 +76,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP, AV_PIX_FMT_GRAY8, diff --git a/libavfilter/vf_waveform.c b/libavfilter/vf_waveform.c index a6a8ec78e7..7a765e7e14 100644 --- a/libavfilter/vf_waveform.c +++ b/libavfilter/vf_waveform.c @@ -211,8 +211,6 @@ static const enum AVPixelFormat in_lowpass_pix_fmts[] = { AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY9, AV_PIX_FMT_GRAY10, AV_PIX_FMT_GRAY12, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV420P9, @@ -230,8 +228,6 @@ static const enum AVPixelFormat in_color_pix_fmts[] = { AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV411P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUVA444P9, AV_PIX_FMT_YUVA422P9, AV_PIX_FMT_YUVA420P9, @@ -246,8 +242,6 @@ static const enum AVPixelFormat in_flat_pix_fmts[] = { AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV411P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUVA444P9, AV_PIX_FMT_YUVA422P9, AV_PIX_FMT_YUVA420P9, @@ -279,7 +273,7 @@ static const enum AVPixelFormat out_rgb12_lowpass_pix_fmts[] = { }; static const enum AVPixelFormat out_yuv8_lowpass_pix_fmts[] = { - AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVA444P, + AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_NONE }; diff --git a/libavfilter/vf_xfade.c b/libavfilter/vf_xfade.c index 890995a608..bc320aeef6 100644 --- a/libavfilter/vf_xfade.c +++ b/libavfilter/vf_xfade.c @@ -141,7 +141,6 @@ typedef struct ThreadData { static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP, AV_PIX_FMT_GRAY8, AV_PIX_FMT_YUVA444P9, AV_PIX_FMT_GBRP9, diff --git a/libavfilter/vf_xmedian.c b/libavfilter/vf_xmedian.c index ebcbea97ed..56017a57d0 100644 --- a/libavfilter/vf_xmedian.c +++ b/libavfilter/vf_xmedian.c @@ -69,9 +69,6 @@ static const enum AVPixelFormat pixel_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV440P10, diff --git a/libavfilter/vf_yadif.c b/libavfilter/vf_yadif.c index a5a856bf5f..3c6bf7f43c 100644 --- a/libavfilter/vf_yadif.c +++ b/libavfilter/vf_yadif.c @@ -265,8 +265,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY16, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, diff --git a/libavfilter/vf_yaepblur.c b/libavfilter/vf_yaepblur.c index b39738b577..fd67fa3cbf 100644 --- a/libavfilter/vf_yaepblur.c +++ b/libavfilter/vf_yaepblur.c @@ -62,10 +62,8 @@ static av_cold void uninit(AVFilterContext *ctx) static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV440P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV420P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, + AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV440P12, diff --git a/libavfilter/vf_zoompan.c b/libavfilter/vf_zoompan.c index e729bda56d..873b73788b 100644 --- a/libavfilter/vf_zoompan.c +++ b/libavfilter/vf_zoompan.c @@ -330,9 +330,6 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA420P, - AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, - AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ420P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP, AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE diff --git a/libavfilter/vf_zscale.c b/libavfilter/vf_zscale.c index 3b14ce4f33..4932b32901 100644 --- a/libavfilter/vf_zscale.c +++ b/libavfilter/vf_zscale.c @@ -197,9 +197,6 @@ static int query_formats(AVFilterContext *ctx) AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, - AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, - AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ444P, - AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, diff --git a/libavfilter/vsrc_testsrc.c b/libavfilter/vsrc_testsrc.c index da17e950d8..d3ba9f7514 100644 --- a/libavfilter/vsrc_testsrc.c +++ b/libavfilter/vsrc_testsrc.c @@ -1266,7 +1266,7 @@ static av_cold int yuvtest_init(AVFilterContext *ctx) } static const enum AVPixelFormat yuvtest_pix_fmts[] = { - AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVJ444P, + AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV444P12, AV_PIX_FMT_YUV444P14, AV_PIX_FMT_YUV444P16, diff --git a/libavformat/yuv4mpegenc.c b/libavformat/yuv4mpegenc.c index 1d641eb9e4..34acb0820a 100644 --- a/libavformat/yuv4mpegenc.c +++ b/libavformat/yuv4mpegenc.c @@ -90,18 +90,6 @@ static int yuv4_write_header(AVFormatContext *s) case AV_PIX_FMT_YUV411P: colorspace = " C411 XYSCSS=411"; break; - case AV_PIX_FMT_YUVJ420P: - colorspace = " C420jpeg XYSCSS=420JPEG"; - colorrange = " XCOLORRANGE=FULL"; - break; - case AV_PIX_FMT_YUVJ422P: - colorspace = " C422 XYSCSS=422"; - colorrange = " XCOLORRANGE=FULL"; - break; - case AV_PIX_FMT_YUVJ444P: - colorspace = " C444 XYSCSS=444"; - colorrange = " XCOLORRANGE=FULL"; - break; case AV_PIX_FMT_YUV420P: switch (st->codecpar->chroma_location) { case AVCHROMA_LOC_TOPLEFT: colorspace = " C420paldv XYSCSS=420PALDV"; break; @@ -239,10 +227,6 @@ static int yuv4_init(AVFormatContext *s) case AV_PIX_FMT_YUV420P: case AV_PIX_FMT_YUV422P: case AV_PIX_FMT_YUV444P: - // TODO: remove YUVJ pixel formats when they are completely removed from the codebase. - case AV_PIX_FMT_YUVJ420P: - case AV_PIX_FMT_YUVJ422P: - case AV_PIX_FMT_YUVJ444P: break; case AV_PIX_FMT_GRAY9: case AV_PIX_FMT_GRAY10: diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c index 4e4a63e287..2886c9e0f5 100644 --- a/libavutil/pixdesc.c +++ b/libavutil/pixdesc.c @@ -372,18 +372,6 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { }, .flags = AV_PIX_FMT_FLAG_PLANAR, }, - [AV_PIX_FMT_YUVJ411P] = { - .name = "yuvj411p", - .nb_components = 3, - .log2_chroma_w = 2, - .log2_chroma_h = 0, - .comp = { - { 0, 1, 0, 0, 8 }, /* Y */ - { 1, 1, 0, 0, 8 }, /* U */ - { 2, 1, 0, 0, 8 }, /* V */ - }, - .flags = AV_PIX_FMT_FLAG_PLANAR, - }, [AV_PIX_FMT_GRAY8] = { .name = "gray", .nb_components = 1, @@ -424,42 +412,6 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { }, .flags = AV_PIX_FMT_FLAG_PAL | AV_PIX_FMT_FLAG_ALPHA, }, - [AV_PIX_FMT_YUVJ420P] = { - .name = "yuvj420p", - .nb_components = 3, - .log2_chroma_w = 1, - .log2_chroma_h = 1, - .comp = { - { 0, 1, 0, 0, 8 }, /* Y */ - { 1, 1, 0, 0, 8 }, /* U */ - { 2, 1, 0, 0, 8 }, /* V */ - }, - .flags = AV_PIX_FMT_FLAG_PLANAR, - }, - [AV_PIX_FMT_YUVJ422P] = { - .name = "yuvj422p", - .nb_components = 3, - .log2_chroma_w = 1, - .log2_chroma_h = 0, - .comp = { - { 0, 1, 0, 0, 8 }, /* Y */ - { 1, 1, 0, 0, 8 }, /* U */ - { 2, 1, 0, 0, 8 }, /* V */ - }, - .flags = AV_PIX_FMT_FLAG_PLANAR, - }, - [AV_PIX_FMT_YUVJ444P] = { - .name = "yuvj444p", - .nb_components = 3, - .log2_chroma_w = 0, - .log2_chroma_h = 0, - .comp = { - { 0, 1, 0, 0, 8 }, /* Y */ - { 1, 1, 0, 0, 8 }, /* U */ - { 2, 1, 0, 0, 8 }, /* V */ - }, - .flags = AV_PIX_FMT_FLAG_PLANAR, - }, #if FF_API_XVMC [AV_PIX_FMT_XVMC] = { .name = "xvmc", @@ -801,18 +753,6 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { }, .flags = AV_PIX_FMT_FLAG_PLANAR, }, - [AV_PIX_FMT_YUVJ440P] = { - .name = "yuvj440p", - .nb_components = 3, - .log2_chroma_w = 0, - .log2_chroma_h = 1, - .comp = { - { 0, 1, 0, 0, 8 }, /* Y */ - { 1, 1, 0, 0, 8 }, /* U */ - { 2, 1, 0, 0, 8 }, /* V */ - }, - .flags = AV_PIX_FMT_FLAG_PLANAR, - }, [AV_PIX_FMT_YUV440P10LE] = { .name = "yuv440p10le", .nb_components = 3, diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h index a26c72d56b..ee941b2fbb 100644 --- a/libavutil/pixfmt.h +++ b/libavutil/pixfmt.h @@ -75,9 +75,6 @@ enum AVPixelFormat { AV_PIX_FMT_MONOWHITE, ///< Y , 1bpp, 0 is white, 1 is black, in each byte pixels are ordered from the msb to the lsb AV_PIX_FMT_MONOBLACK, ///< Y , 1bpp, 0 is black, 1 is white, in each byte pixels are ordered from the msb to the lsb AV_PIX_FMT_PAL8, ///< 8 bits with AV_PIX_FMT_RGB32 palette - AV_PIX_FMT_YUVJ420P, ///< planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV420P and setting color_range - AV_PIX_FMT_YUVJ422P, ///< planar YUV 4:2:2, 16bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV422P and setting color_range - AV_PIX_FMT_YUVJ444P, ///< planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV444P and setting color_range AV_PIX_FMT_UYVY422, ///< packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1 AV_PIX_FMT_UYYVYY411, ///< packed YUV 4:1:1, 12bpp, Cb Y0 Y1 Cr Y2 Y3 AV_PIX_FMT_BGR8, ///< packed RGB 3:3:2, 8bpp, (msb)2B 3G 3R(lsb) @@ -97,7 +94,6 @@ enum AVPixelFormat { AV_PIX_FMT_GRAY16BE, ///< Y , 16bpp, big-endian AV_PIX_FMT_GRAY16LE, ///< Y , 16bpp, little-endian AV_PIX_FMT_YUV440P, ///< planar YUV 4:4:0 (1 Cr & Cb sample per 1x2 Y samples) - AV_PIX_FMT_YUVJ440P, ///< planar YUV 4:4:0 full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV440P and setting color_range AV_PIX_FMT_YUVA420P, ///< planar YUV 4:2:0, 20bpp, (1 Cr & Cb sample per 2x2 Y & A samples) AV_PIX_FMT_RGB48BE, ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as big-endian AV_PIX_FMT_RGB48LE, ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as little-endian @@ -273,7 +269,6 @@ enum AVPixelFormat { AV_PIX_FMT_GBRP12LE, ///< planar GBR 4:4:4 36bpp, little-endian AV_PIX_FMT_GBRP14BE, ///< planar GBR 4:4:4 42bpp, big-endian AV_PIX_FMT_GBRP14LE, ///< planar GBR 4:4:4 42bpp, little-endian - AV_PIX_FMT_YUVJ411P, ///< planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples) full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV411P and setting color_range AV_PIX_FMT_BAYER_BGGR8, ///< bayer, BGBG..(odd line), GRGR..(even line), 8-bit samples AV_PIX_FMT_BAYER_RGGB8, ///< bayer, RGRG..(odd line), GBGB..(even line), 8-bit samples diff --git a/libavutil/version.h b/libavutil/version.h index c5fa7c3692..0684996bf2 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -79,7 +79,7 @@ */ #define LIBAVUTIL_VERSION_MAJOR 58 -#define LIBAVUTIL_VERSION_MINOR 32 +#define LIBAVUTIL_VERSION_MINOR 33 #define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ diff --git a/libswscale/utils.c b/libswscale/utils.c index ec822ff5d9..debf26e92e 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -78,10 +78,6 @@ static const FormatEntry format_entries[] = { [AV_PIX_FMT_MONOWHITE] = { 1, 1 }, [AV_PIX_FMT_MONOBLACK] = { 1, 1 }, [AV_PIX_FMT_PAL8] = { 1, 0 }, - [AV_PIX_FMT_YUVJ420P] = { 1, 1 }, - [AV_PIX_FMT_YUVJ411P] = { 1, 1 }, - [AV_PIX_FMT_YUVJ422P] = { 1, 1 }, - [AV_PIX_FMT_YUVJ444P] = { 1, 1 }, [AV_PIX_FMT_YVYU422] = { 1, 1 }, [AV_PIX_FMT_UYVY422] = { 1, 1 }, [AV_PIX_FMT_UYYVYY411] = { 0, 0 }, @@ -112,7 +108,6 @@ static const FormatEntry format_entries[] = { [AV_PIX_FMT_GRAY16BE] = { 1, 1 }, [AV_PIX_FMT_GRAY16LE] = { 1, 1 }, [AV_PIX_FMT_YUV440P] = { 1, 1 }, - [AV_PIX_FMT_YUVJ440P] = { 1, 1 }, [AV_PIX_FMT_YUV440P10LE] = { 1, 1 }, [AV_PIX_FMT_YUV440P10BE] = { 1, 1 }, [AV_PIX_FMT_YUV440P12LE] = { 1, 1 }, @@ -925,24 +920,9 @@ static void fill_xyztables(struct SwsContext *c) } } -static int handle_jpeg(enum AVPixelFormat *format) +static int is_luma_only(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: @@ -2032,7 +2012,6 @@ 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(); @@ -2043,13 +2022,8 @@ 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"); + c->srcRange |= is_luma_only(&c->srcFormat); + c->dstRange |= is_luma_only(&c->dstFormat); if (c->nb_threads != 1) { ret = context_init_threaded(c, srcFilter, dstFilter); diff --git a/tests/fate/lavf-image.mak b/tests/fate/lavf-image.mak index 4177e091b3..d6113f9071 100644 --- a/tests/fate/lavf-image.mak +++ b/tests/fate/lavf-image.mak @@ -72,7 +72,7 @@ fate-lavf-none.gbrapf32le.exr: CMD = lavf_image "-compression none -pix_fmt gb fate-lavf-rle.gbrapf32le.exr: CMD = lavf_image "-compression rle -pix_fmt gbrapf32le" "" "no_file_checksums" fate-lavf-zip1.gbrapf32le.exr: CMD = lavf_image "-compression zip1 -pix_fmt gbrapf32le" "" "no_file_checksums" fate-lavf-zip16.gbrapf32le.exr: CMD = lavf_image "-compression zip16 -pix_fmt gbrapf32le" "" "no_file_checksums" -fate-lavf-jpg: CMD = lavf_image "-pix_fmt yuvj420p" +fate-lavf-jpg: CMD = lavf_image "-pix_fmt yuv420p" fate-lavf-tiff: CMD = lavf_image "-pix_fmt rgb24" fate-lavf-gbrp10le.dpx: CMD = lavf_image "-pix_fmt gbrp10le" "-pix_fmt gbrp10le" fate-lavf-gbrp12le.dpx: CMD = lavf_image "-pix_fmt gbrp12le" "-pix_fmt gbrp12le" diff --git a/tests/fate/pixfmt.mak b/tests/fate/pixfmt.mak index 715a4763d4..a637f27059 100644 --- a/tests/fate/pixfmt.mak +++ b/tests/fate/pixfmt.mak @@ -13,10 +13,6 @@ FATE_PIXFMT-$(CONFIG_SCALE_FILTER) = bgr24 \ yuv422p \ yuv440p \ yuv444p \ - yuvj420p \ - yuvj422p \ - yuvj440p \ - yuvj444p \ yuyv422 \ FATE_PIXFMT := $(FATE_PIXFMT-yes:%=fate-pixfmt-%) diff --git a/tests/fate/vcodec.mak b/tests/fate/vcodec.mak index e3205127ff..ada541cffc 100644 --- a/tests/fate/vcodec.mak +++ b/tests/fate/vcodec.mak @@ -229,12 +229,12 @@ FATE_VCODEC-$(call ENCDEC, LJPEG MJPEG, AVI) += ljpeg fate-vsynth%-ljpeg: ENCOPTS = -strict -1 FATE_VCODEC_SCALE-$(call ENCDEC, MJPEG, AVI) += mjpeg mjpeg-422 mjpeg-444 mjpeg-trell mjpeg-huffman mjpeg-trell-huffman -fate-vsynth%-mjpeg: ENCOPTS = -qscale 9 -pix_fmt yuvj420p -fate-vsynth%-mjpeg-422: ENCOPTS = -qscale 9 -pix_fmt yuvj422p -fate-vsynth%-mjpeg-444: ENCOPTS = -qscale 9 -pix_fmt yuvj444p -fate-vsynth%-mjpeg-trell: ENCOPTS = -qscale 9 -pix_fmt yuvj420p -trellis 1 -fate-vsynth%-mjpeg-huffman: ENCOPTS = -qscale 9 -pix_fmt yuvj420p -huffman optimal -fate-vsynth%-mjpeg-trell-huffman: ENCOPTS = -qscale 9 -pix_fmt yuvj420p -trellis 1 -huffman optimal +fate-vsynth%-mjpeg: ENCOPTS = -qscale 9 -pix_fmt yuv420p +fate-vsynth%-mjpeg-422: ENCOPTS = -qscale 9 -pix_fmt yuv422p +fate-vsynth%-mjpeg-444: ENCOPTS = -qscale 9 -pix_fmt yuv444p +fate-vsynth%-mjpeg-trell: ENCOPTS = -qscale 9 -pix_fmt yuv420p -trellis 1 +fate-vsynth%-mjpeg-huffman: ENCOPTS = -qscale 9 -pix_fmt yuv420p -huffman optimal +fate-vsynth%-mjpeg-trell-huffman: ENCOPTS = -qscale 9 -pix_fmt yuv420p -trellis 1 -huffman optimal FATE_VCODEC-$(call ENCDEC, MPEG1VIDEO, MPEG1VIDEO MPEGVIDEO) += mpeg1 mpeg1b fate-vsynth%-mpeg1: FMT = mpeg1video diff --git a/tests/ref/fate/exif-image-embedded b/tests/ref/fate/exif-image-embedded index d5937e9f86..3311d90132 100644 --- a/tests/ref/fate/exif-image-embedded +++ b/tests/ref/fate/exif-image-embedded @@ -20,7 +20,7 @@ crop_top=0 crop_bottom=0 crop_left=0 crop_right=0 -pix_fmt=yuvj420p +pix_fmt=yuv420p sample_aspect_ratio=1:1 pict_type=I coded_picture_number=0 diff --git a/tests/ref/fate/exif-image-jpg b/tests/ref/fate/exif-image-jpg index bed265b717..8d1bbe42e7 100644 --- a/tests/ref/fate/exif-image-jpg +++ b/tests/ref/fate/exif-image-jpg @@ -20,7 +20,7 @@ crop_top=0 crop_bottom=0 crop_left=0 crop_right=0 -pix_fmt=yuvj422p +pix_fmt=yuv422p sample_aspect_ratio=1:1 pict_type=I coded_picture_number=0 diff --git a/tests/ref/fate/filter-pixdesc-yuvj411p b/tests/ref/fate/filter-pixdesc-yuvj411p deleted file mode 100644 index 5dfc0dc4cd..0000000000 --- a/tests/ref/fate/filter-pixdesc-yuvj411p +++ /dev/null @@ -1 +0,0 @@ -pixdesc-yuvj411p cac93399031ad86e8de0796b60b5bb8a diff --git a/tests/ref/fate/filter-pixdesc-yuvj420p b/tests/ref/fate/filter-pixdesc-yuvj420p deleted file mode 100644 index ad2f968a1f..0000000000 --- a/tests/ref/fate/filter-pixdesc-yuvj420p +++ /dev/null @@ -1 +0,0 @@ -pixdesc-yuvj420p 5244374882cf07c3cbcde71940caf8e5 diff --git a/tests/ref/fate/filter-pixdesc-yuvj422p b/tests/ref/fate/filter-pixdesc-yuvj422p deleted file mode 100644 index 5f80d585d6..0000000000 --- a/tests/ref/fate/filter-pixdesc-yuvj422p +++ /dev/null @@ -1 +0,0 @@ -pixdesc-yuvj422p 6c9722aa9e0c1b8f9d953efeb93dc318 diff --git a/tests/ref/fate/filter-pixdesc-yuvj440p b/tests/ref/fate/filter-pixdesc-yuvj440p deleted file mode 100644 index c98669285b..0000000000 --- a/tests/ref/fate/filter-pixdesc-yuvj440p +++ /dev/null @@ -1 +0,0 @@ -pixdesc-yuvj440p 34e6e86ca3ec4e6ef62d533aa2290e8f diff --git a/tests/ref/fate/filter-pixdesc-yuvj444p b/tests/ref/fate/filter-pixdesc-yuvj444p deleted file mode 100644 index 3e182fa6e2..0000000000 --- a/tests/ref/fate/filter-pixdesc-yuvj444p +++ /dev/null @@ -1 +0,0 @@ -pixdesc-yuvj444p f67694103bb42d74742918adf9ea31c5 diff --git a/tests/ref/fate/filter-pixfmts-copy b/tests/ref/fate/filter-pixfmts-copy index eb3e61b4f2..e4864dfc7a 100644 --- a/tests/ref/fate/filter-pixfmts-copy +++ b/tests/ref/fate/filter-pixfmts-copy @@ -175,10 +175,5 @@ yuva444p16be c80c1899789a6411d0025730efc8f01c yuva444p16le 2ed56ea50fafda4d226c9b133755dad8 yuva444p9be 4903fde22b15d28da90761ac1cfcb1c5 yuva444p9le 4eeb5988df0740fea720da1e31bbb829 -yuvj411p e003eefa7e2a20f20d33767775417216 -yuvj420p 8f3d8f1b4577d11082d5ab8a901e048d -yuvj422p 79d480e99e610112f266c833c6cb3d35 -yuvj440p f4b18310c7174868fc92579f87460876 -yuvj444p b161e6d5a941e2a4bb7bc56ef8af623f yuyv422 435c92283b538aa3d8fa2a020b0afd49 yvyu422 8436c2a760291cc979e0dd62ab8cede0 diff --git a/tests/ref/fate/filter-pixfmts-crop b/tests/ref/fate/filter-pixfmts-crop index 01cb88bc54..9a2f8aa920 100644 --- a/tests/ref/fate/filter-pixfmts-crop +++ b/tests/ref/fate/filter-pixfmts-crop @@ -170,8 +170,3 @@ yuva444p16be f817caf234aaf5848b2bc9679582ed56 yuva444p16le b32ad623fc423f897ff31c4073ea2a6f yuva444p9be 48498d994c3c9070f31773e39da306dd yuva444p9le 431b0ac211a8f81c15f38fb57a73530c -yuvj411p 241d393eeaa1517f6b4b23034222994b -yuvj420p 35583968261c636b9c57ff03fd60eb54 -yuvj422p c29a94439e96cd5dab7f65eb6dfc2f5c -yuvj440p 8899d4ce717e32937d58a76df473ba7a -yuvj444p 6c0d0ad629baaa96fe4dcb00f0f5d9de diff --git a/tests/ref/fate/filter-pixfmts-field b/tests/ref/fate/filter-pixfmts-field index c7d9b8f133..3cb9480b0f 100644 --- a/tests/ref/fate/filter-pixfmts-field +++ b/tests/ref/fate/filter-pixfmts-field @@ -175,10 +175,5 @@ yuva444p16be b10fd7c1b61ac22bdb285f0d91a390f1 yuva444p16le cac82ffc36b7052747407663fc5ed510 yuva444p9be a6f66d08b3370fdd90987a6143b7b91c yuva444p9le 8d0f0b0840096127613920984078ce53 -yuvj411p 0c7caab687fbd33cba04702366b6c401 -yuvj420p c9bef7e5c1dba1024be992167806ef07 -yuvj422p ac900a0f9854dc2a0ec2e016ff5487dc -yuvj440p 6f0d66982a3b96efb341a512314317ca -yuvj444p d559f8cf2e68b0cd3abadbb2f3642dd7 yuyv422 449ca8d4b5a28ccaaa342860b24aeb3c yvyu422 6b226a0d4fce5478294d3bd4ecfb46a5 diff --git a/tests/ref/fate/filter-pixfmts-fieldorder b/tests/ref/fate/filter-pixfmts-fieldorder index 2f64bd3b14..b9a9ef6dfe 100644 --- a/tests/ref/fate/filter-pixfmts-fieldorder +++ b/tests/ref/fate/filter-pixfmts-fieldorder @@ -140,8 +140,5 @@ yuva444p16be 2f80d411847856e1364659dee8b23485 yuva444p16le 5796be8d66371b60037fc8053c27e900 yuva444p9be a83599c0e9fca08f6b7c6e02c2413fcf yuva444p9le 390fcd8f72ee407a8c338667944e3f72 -yuvj411p 73fa99cb96d2f7171bff15bc2e43d963 -yuvj422p d5e67ce1db5347cf3416069286359f57 -yuvj444p e915da6b5aa0ee5298771ba0ca187cad yuyv422 a923c5bd4889bec92d872237f6a578ec yvyu422 d7a8697f1f5e6a2a27b0df17811b2613 diff --git a/tests/ref/fate/filter-pixfmts-hflip b/tests/ref/fate/filter-pixfmts-hflip index 66274890a7..77c127ea54 100644 --- a/tests/ref/fate/filter-pixfmts-hflip +++ b/tests/ref/fate/filter-pixfmts-hflip @@ -170,8 +170,3 @@ yuva444p16be 635fb2720470e0042a7c9b70bf908a2c yuva444p16le 6d5bd13f8bb804bd1158c1af732a24e1 yuva444p9be 3d3e7491192aa4e396015bf8e3755a24 yuva444p9le 31727b34bc3d5ce726681e90557d39e4 -yuvj411p 70a0abb56a538376aff33c275584b61e -yuvj420p 83af439c504d41f986adc17059b7fda8 -yuvj422p daf02a72b26d17d1855b977aa04609fb -yuvj440p a4af7a9e3cff6cfc1c8924590ae69807 -yuvj444p f5937e0183439411673d2ebf8df62e2b diff --git a/tests/ref/fate/filter-pixfmts-il b/tests/ref/fate/filter-pixfmts-il index 03519f2a9d..415ccc7307 100644 --- a/tests/ref/fate/filter-pixfmts-il +++ b/tests/ref/fate/filter-pixfmts-il @@ -174,10 +174,5 @@ yuva444p16be 97f8cb6ed835c7c5cd2fb112b1e135c7 yuva444p16le 47170401a8c348d3f05f6530607d066b yuva444p9be d5c0170b41221a9607e6ae586880a383 yuva444p9le 4948983313f46180666dec85ef30130c -yuvj411p 91e137f54b2cbbb1c1423c36f031d5f2 -yuvj420p 2b6d8e3b527af5de94963d1bdefe20a9 -yuvj422p 4ce16aa04a5e785b29fd9cdf54bc9ca1 -yuvj440p 36a248ec6f1dc67555ee590651388b15 -yuvj444p 279790fe3c83b07f0a09085d36849c30 yuyv422 09af5b85deecfeaef2e00e00fbc12a49 yvyu422 62c62a80939c34fb7890c0e7791a0321 diff --git a/tests/ref/fate/filter-pixfmts-lut b/tests/ref/fate/filter-pixfmts-lut index 41c66e2bfc..fd4d1bc4b3 100644 --- a/tests/ref/fate/filter-pixfmts-lut +++ b/tests/ref/fate/filter-pixfmts-lut @@ -51,7 +51,3 @@ yuva422p 5938a7c7588febb069bd0cd4c447305e yuva422p16le c5ccfdc1a0dc6cb130c07ea61df6f727 yuva444p fbcbdc3521d17c702ee521b0893098e4 yuva444p16le b7142d28d4d069d7eb019dcaf8b323b1 -yuvj420p 65bc88887c7f06a6221155ca7f9cfca4 -yuvj422p ff5baffefc8ffe4547653092fd7da200 -yuvj440p ef3f27270e60ac06582e3ac7c2f3e6fa -yuvj444p 29378d3fd132c760522c51c3378067b8 diff --git a/tests/ref/fate/filter-pixfmts-null b/tests/ref/fate/filter-pixfmts-null index eb3e61b4f2..e4864dfc7a 100644 --- a/tests/ref/fate/filter-pixfmts-null +++ b/tests/ref/fate/filter-pixfmts-null @@ -175,10 +175,5 @@ yuva444p16be c80c1899789a6411d0025730efc8f01c yuva444p16le 2ed56ea50fafda4d226c9b133755dad8 yuva444p9be 4903fde22b15d28da90761ac1cfcb1c5 yuva444p9le 4eeb5988df0740fea720da1e31bbb829 -yuvj411p e003eefa7e2a20f20d33767775417216 -yuvj420p 8f3d8f1b4577d11082d5ab8a901e048d -yuvj422p 79d480e99e610112f266c833c6cb3d35 -yuvj440p f4b18310c7174868fc92579f87460876 -yuvj444p b161e6d5a941e2a4bb7bc56ef8af623f yuyv422 435c92283b538aa3d8fa2a020b0afd49 yvyu422 8436c2a760291cc979e0dd62ab8cede0 diff --git a/tests/ref/fate/filter-pixfmts-pad b/tests/ref/fate/filter-pixfmts-pad index b4d236d408..b22442bd13 100644 --- a/tests/ref/fate/filter-pixfmts-pad +++ b/tests/ref/fate/filter-pixfmts-pad @@ -82,8 +82,3 @@ yuva444p10le 89491ef450706faf23341e401750d907 yuva444p12le 06c47dba21328165dbb7ebb3da0a2fde yuva444p16le d089b119c8dc964de9af12bfb38f89a0 yuva444p9le b824d34ac49a1dc483c772e15310afcd -yuvj411p 87dbac57b211ab4823c1abbd702f1516 -yuvj420p 1abef62bce65131ca4913eb2006fd860 -yuvj422p 198c57b519e2be14b150889bd7f94898 -yuvj440p e6533260d197ad15e39319117c57473e -yuvj444p 26a44748960513783ea676eff409d89a diff --git a/tests/ref/fate/filter-pixfmts-pullup b/tests/ref/fate/filter-pixfmts-pullup index c6ddb3489a..d2f927a0c9 100644 --- a/tests/ref/fate/filter-pixfmts-pullup +++ b/tests/ref/fate/filter-pixfmts-pullup @@ -5,8 +5,3 @@ yuv420p dba6303cd02cc39cb0db7b546793d565 yuv422p d7d3224dd900bb1b96608a28a704360d yuv440p d4c5f20701cfceb4bbf7d75cfcc13514 yuv444p 7e405274037e7f2ab845d7413a71e16d -yuvj411p dc602e7bd3449d16e17e695815616b1e -yuvj420p b98ec86eeef2d512aeb2fc4d32ffa656 -yuvj422p f09c3240bb662477b76ce4da34b4feed -yuvj440p 8d3ab69e2bbbbbd2f9be323c18922533 -yuvj444p 2dc27560eed5d685354796dcccce853c diff --git a/tests/ref/fate/filter-pixfmts-rotate b/tests/ref/fate/filter-pixfmts-rotate index e4ed81e71a..3aa21aff77 100644 --- a/tests/ref/fate/filter-pixfmts-rotate +++ b/tests/ref/fate/filter-pixfmts-rotate @@ -30,5 +30,3 @@ yuva444p 459fad5abfd16db9bb6a52761dc74cc1 yuva444p10le 92f820d3481b7ebcb48b98a73e7b4c90 yuva444p16le 2ed56ea50fafda4d226c9b133755dad8 yuva444p9le 4eeb5988df0740fea720da1e31bbb829 -yuvj420p 8f3d8f1b4577d11082d5ab8a901e048d -yuvj444p b161e6d5a941e2a4bb7bc56ef8af623f diff --git a/tests/ref/fate/filter-pixfmts-scale b/tests/ref/fate/filter-pixfmts-scale index b11384068b..13f885a6a6 100644 --- a/tests/ref/fate/filter-pixfmts-scale +++ b/tests/ref/fate/filter-pixfmts-scale @@ -175,10 +175,5 @@ yuva444p16be 39ca2e32aa61b210b6c528855d24a16b yuva444p16le cd2e0a001d8175f2204b2eb411c6a801 yuva444p9be 58add24afbf43ff0ff7079cc1948fb56 yuva444p9le 077c8cec2c374163d7f7eae27e797bdb -yuvj411p d1076331c75ca66bf62497edbd8384f9 -yuvj420p 10390e6dda9cbb4c61fb88bcbb49fc3c -yuvj422p 996f6672566a4dcd8d272f48f058d49e -yuvj440p 3d80c9f67f8ef9b2d8a9ae2d37b464a2 -yuvj444p 9f858b9ca3fe949611147414573a904f yuyv422 1704675eff94ad0a03a9a6a3ddf5e0df yvyu422 516705a40f43d00e9c41ff47f4f7b802 diff --git a/tests/ref/fate/filter-pixfmts-swapuv b/tests/ref/fate/filter-pixfmts-swapuv index 676a440699..bf6e5c08c3 100644 --- a/tests/ref/fate/filter-pixfmts-swapuv +++ b/tests/ref/fate/filter-pixfmts-swapuv @@ -63,8 +63,3 @@ yuva444p16be 356d72791dfd91861b21630e315d40cb yuva444p16le 176591ce074ba8befc5fb279446ca1be yuva444p9be 675f0ed3e6572b05f06d9e44611bdff5 yuva444p9le bf3ea2bf123a3a1ceedf587682b85cb9 -yuvj411p 361c32e086bd27cf3ded194dc00dc9c5 -yuvj420p 553ac1af571391271d9715e2e8a4a5cc -yuvj422p 39b613d01cacfcdd9eecf9e0d379a393 -yuvj440p afed4ad98d6accf5811d439f3a687aa1 -yuvj444p 8de64aff4b7b3895d8cedd67cc10722b diff --git a/tests/ref/fate/filter-pixfmts-tinterlace_cvlpf b/tests/ref/fate/filter-pixfmts-tinterlace_cvlpf index 99703fa1af..df269b9a7c 100644 --- a/tests/ref/fate/filter-pixfmts-tinterlace_cvlpf +++ b/tests/ref/fate/filter-pixfmts-tinterlace_cvlpf @@ -19,7 +19,3 @@ yuva422p a8da2806e21a88449079faa7f4303ffa yuva422p10le d2965b5b5a43a7165badaff0718a17d8 yuva444p a3f57734d6f72bdf37f8f612ea7cce63 yuva444p10le e020512901fd9ac7088898a4e3a8c7c1 -yuvj420p 9f358e311b694bcd01e1a07d1120ade5 -yuvj422p 9a7628a9f1630d35c7176951ddc1b2f6 -yuvj440p 112fe35292c687746ec0c622a42c611b -yuvj444p f894438f40950229baa02545daa8812a diff --git a/tests/ref/fate/filter-pixfmts-tinterlace_merge b/tests/ref/fate/filter-pixfmts-tinterlace_merge index fa6151c272..7b0026faee 100644 --- a/tests/ref/fate/filter-pixfmts-tinterlace_merge +++ b/tests/ref/fate/filter-pixfmts-tinterlace_merge @@ -19,7 +19,3 @@ yuva422p ca200be80e5bfdb159e1aea57129ed3a yuva422p10le 06d4f79ee2ddf31d9fe15af8ca573f46 yuva444p 9f39c35d6899dcb8b9a9b07c339ca365 yuva444p10le b0c54fc3efad73f252d86127407aa1fd -yuvj420p 844359293bb6ff81549f3fc0090cc587 -yuvj422p 526af049d43974822baa7b48aa1e1098 -yuvj440p af9285194da8efbc40d93bf8109f9dc5 -yuvj444p 2a3f18b02c17a0c39c6245b8b3639b91 diff --git a/tests/ref/fate/filter-pixfmts-tinterlace_pad b/tests/ref/fate/filter-pixfmts-tinterlace_pad index 29321e542b..5cf2bc95dd 100644 --- a/tests/ref/fate/filter-pixfmts-tinterlace_pad +++ b/tests/ref/fate/filter-pixfmts-tinterlace_pad @@ -19,7 +19,3 @@ yuva422p 3426ed1ac9429202d8c29fa62a04d4c3 yuva422p10le 5c62eaf71afec3f7bc7ae5a327431434 yuva444p 1b9fc791c7d774b4ba8c9dc836f78cf5 yuva444p10le b6161c0f6f5548ba4346a9fda20ea8a8 -yuvj420p 9a872e0c1b3c0b6fe856415696b758bd -yuvj422p da3c9ef25528a2ee96746ce44e6969f3 -yuvj440p a9a5495c6b0e2bf6e561998ea1c356a7 -yuvj444p 085214844e83ad47b4f33303db0ebee6 diff --git a/tests/ref/fate/filter-pixfmts-tinterlace_vlpf b/tests/ref/fate/filter-pixfmts-tinterlace_vlpf index 5a5f80b115..0f64dd882c 100644 --- a/tests/ref/fate/filter-pixfmts-tinterlace_vlpf +++ b/tests/ref/fate/filter-pixfmts-tinterlace_vlpf @@ -19,7 +19,3 @@ yuva422p ef8fdbe910d68e88e98227b0e99fb5a6 yuva422p10le 257a4aec41f9b5412179272d8a7fb6f7 yuva444p 3662eadd5f61a6edbc9d715ea8591415 yuva444p10le 0905cf5b7f42c11be3f0486a66533c71 -yuvj420p 14c4390b319c5d679184503309060ac3 -yuvj422p bbe00a26526931b72a024febe1cd6b90 -yuvj440p f654cf28b7879c6a6c950c3cb9612580 -yuvj444p c162a4fe7a665f4abf257443703f0d72 diff --git a/tests/ref/fate/filter-pixfmts-transpose b/tests/ref/fate/filter-pixfmts-transpose index ec157dee0c..9d0d9df86d 100644 --- a/tests/ref/fate/filter-pixfmts-transpose +++ b/tests/ref/fate/filter-pixfmts-transpose @@ -136,5 +136,3 @@ yuva444p16be 9fd2f00ea9bef8e488228bc0b47b28cb yuva444p16le ae9fd8d1baea0f8626b963816d667d2d yuva444p9be 4ce11ae57780f74c78cdd5c06be4bded yuva444p9le 1b9cc85fd6ab0c7e240915a99e98d1c1 -yuvj420p 9603b8dd64daec41f0514197989c2b19 -yuvj444p 66ec9b3219df9eb2c1315d293602ab42 diff --git a/tests/ref/fate/filter-pixfmts-vflip b/tests/ref/fate/filter-pixfmts-vflip index 9a7972d6cf..53f6b76f66 100644 --- a/tests/ref/fate/filter-pixfmts-vflip +++ b/tests/ref/fate/filter-pixfmts-vflip @@ -175,10 +175,5 @@ yuva444p16be b8801dccf64b3eadc2a5b5db67ae0b0f yuva444p16le 8e72ae66754badf5d1eeb094e6bf0ddc yuva444p9be bcd845394351ca6d15e947342802957d yuva444p9le 7727a93765ed38dfd25e3d6b7a38fa63 -yuvj411p 260f51b360dc00b2222f4cb39fa05e36 -yuvj420p fab4394239b08bdb7638215a42d56eaf -yuvj422p 0309c2b34aa4d74f58048fe320a02b83 -yuvj440p f5e3a92fa46e57e2c613fc9aaad18e9d -yuvj444p ca4b3662259ba15a6297a44ef64414b7 yuyv422 8f02b2332fe9bb782f88627c99f32ee8 yvyu422 bd8cb985c2e1f9c32dc6b865bdf20637 diff --git a/tests/ref/fate/imgutils b/tests/ref/fate/imgutils index f166cb67fb..94b274d831 100644 --- a/tests/ref/fate/imgutils +++ b/tests/ref/fate/imgutils @@ -66,9 +66,6 @@ gray planes: 1, linesizes: 64 0 0 0, plane_sizes: 3072 0 monow planes: 1, linesizes: 8 0 0 0, plane_sizes: 384 0 0 0, plane_offsets: 0 0 0, total_size: 384 monob planes: 1, linesizes: 8 0 0 0, plane_sizes: 384 0 0 0, plane_offsets: 0 0 0, total_size: 384 pal8 planes: 2, linesizes: 64 0 0 0, plane_sizes: 3072 1024 0 0, plane_offsets: 3072 0 0, total_size: 4096 -yuvj420p planes: 3, linesizes: 64 32 32 0, plane_sizes: 3072 768 768 0, plane_offsets: 3072 768 0, total_size: 4608 -yuvj422p planes: 3, linesizes: 64 32 32 0, plane_sizes: 3072 1536 1536 0, plane_offsets: 3072 1536 0, total_size: 6144 -yuvj444p planes: 3, linesizes: 64 64 64 0, plane_sizes: 3072 3072 3072 0, plane_offsets: 3072 3072 0, total_size: 9216 uyvy422 planes: 1, linesizes: 128 0 0 0, plane_sizes: 6144 0 0 0, plane_offsets: 0 0 0, total_size: 6144 uyyvyy411 planes: 1, linesizes: 96 0 0 0, plane_sizes: 4608 0 0 0, plane_offsets: 0 0 0, total_size: 4608 bgr8 planes: 1, linesizes: 64 0 0 0, plane_sizes: 3072 0 0 0, plane_offsets: 0 0 0, total_size: 3072 @@ -86,7 +83,6 @@ bgra planes: 1, linesizes: 256 0 0 0, plane_sizes: 12288 0 gray16be planes: 1, linesizes: 128 0 0 0, plane_sizes: 6144 0 0 0, plane_offsets: 0 0 0, total_size: 6144 gray16le planes: 1, linesizes: 128 0 0 0, plane_sizes: 6144 0 0 0, plane_offsets: 0 0 0, total_size: 6144 yuv440p planes: 3, linesizes: 64 64 64 0, plane_sizes: 3072 1536 1536 0, plane_offsets: 3072 1536 0, total_size: 6144 -yuvj440p planes: 3, linesizes: 64 64 64 0, plane_sizes: 3072 1536 1536 0, plane_offsets: 3072 1536 0, total_size: 6144 yuva420p planes: 4, linesizes: 64 32 32 64, plane_sizes: 3072 768 768 3072, plane_offsets: 3072 768 768, total_size: 7680 rgb48be planes: 1, linesizes: 384 0 0 0, plane_sizes: 18432 0 0 0, plane_offsets: 0 0 0, total_size: 18432 rgb48le planes: 1, linesizes: 384 0 0 0, plane_sizes: 18432 0 0 0, plane_offsets: 0 0 0, total_size: 18432 @@ -185,7 +181,6 @@ gbrp12be planes: 3, linesizes: 128 128 128 0, plane_sizes: 6144 6144 gbrp12le planes: 3, linesizes: 128 128 128 0, plane_sizes: 6144 6144 6144 0, plane_offsets: 6144 6144 0, total_size: 18432 gbrp14be planes: 3, linesizes: 128 128 128 0, plane_sizes: 6144 6144 6144 0, plane_offsets: 6144 6144 0, total_size: 18432 gbrp14le planes: 3, linesizes: 128 128 128 0, plane_sizes: 6144 6144 6144 0, plane_offsets: 6144 6144 0, total_size: 18432 -yuvj411p planes: 3, linesizes: 64 16 16 0, plane_sizes: 3072 768 768 0, plane_offsets: 3072 768 0, total_size: 4608 bayer_bggr8 planes: 1, linesizes: 64 0 0 0, plane_sizes: 3072 0 0 0, plane_offsets: 0 0 0, total_size: 3072 bayer_rggb8 planes: 1, linesizes: 64 0 0 0, plane_sizes: 3072 0 0 0, plane_offsets: 0 0 0, total_size: 3072 bayer_gbrg8 planes: 1, linesizes: 64 0 0 0, plane_sizes: 3072 0 0 0, plane_offsets: 0 0 0, total_size: 3072 diff --git a/tests/ref/fate/jpg-icc b/tests/ref/fate/jpg-icc index cc7ab604e1..41494e3383 100644 --- a/tests/ref/fate/jpg-icc +++ b/tests/ref/fate/jpg-icc @@ -28,7 +28,7 @@ crop_top=0 crop_bottom=0 crop_left=0 crop_right=0 -pix_fmt=yuvj444p +pix_fmt=yuv444p sample_aspect_ratio=1:1 pict_type=I coded_picture_number=0 diff --git a/tests/ref/fate/sws-pixdesc-query b/tests/ref/fate/sws-pixdesc-query index fff93bbf0e..58283b4430 100644 --- a/tests/ref/fate/sws-pixdesc-query +++ b/tests/ref/fate/sws-pixdesc-query @@ -327,11 +327,6 @@ isYUV: yuva444p16le yuva444p9be yuva444p9le - yuvj411p - yuvj420p - yuvj422p - yuvj440p - yuvj444p yuyv422 yvyu422 @@ -426,11 +421,6 @@ isPlanarYUV: yuva444p16le yuva444p9be yuva444p9le - yuvj411p - yuvj420p - yuvj422p - yuvj440p - yuvj444p isSemiPlanarYUV: nv12 @@ -957,11 +947,6 @@ Planar: yuva444p16le yuva444p9be yuva444p9le - yuvj411p - yuvj420p - yuvj422p - yuvj440p - yuvj444p PackedRGB: 0bgr diff --git a/tests/ref/pixfmt/yuvj420p b/tests/ref/pixfmt/yuvj420p deleted file mode 100644 index 47a729ed45..0000000000 --- a/tests/ref/pixfmt/yuvj420p +++ /dev/null @@ -1,2 +0,0 @@ -e176bd14185788110e055f945de7f95f *tests/data/pixfmt/yuvj420p.yuv -304128 tests/data/pixfmt/yuvj420p.yuv diff --git a/tests/ref/pixfmt/yuvj422p b/tests/ref/pixfmt/yuvj422p deleted file mode 100644 index 6ab97d59db..0000000000 --- a/tests/ref/pixfmt/yuvj422p +++ /dev/null @@ -1,2 +0,0 @@ -472028e46a81c98d9b2477507def4723 *tests/data/pixfmt/yuvj422p.yuv -304128 tests/data/pixfmt/yuvj422p.yuv diff --git a/tests/ref/pixfmt/yuvj440p b/tests/ref/pixfmt/yuvj440p deleted file mode 100644 index 2beeae52c1..0000000000 --- a/tests/ref/pixfmt/yuvj440p +++ /dev/null @@ -1,2 +0,0 @@ -4d8d402c45d913038d4b725396719111 *tests/data/pixfmt/yuvj440p.yuv -304128 tests/data/pixfmt/yuvj440p.yuv diff --git a/tests/ref/pixfmt/yuvj444p b/tests/ref/pixfmt/yuvj444p deleted file mode 100644 index 63fb813d4b..0000000000 --- a/tests/ref/pixfmt/yuvj444p +++ /dev/null @@ -1,2 +0,0 @@ -c10442da177c9f1d12be3c53be6fa12c *tests/data/pixfmt/yuvj444p.yuv -304128 tests/data/pixfmt/yuvj444p.yuv From patchwork Thu Nov 9 12:19:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 44599 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4fa4:b0:181:818d:5e7f with SMTP id gh36csp445232pzb; Thu, 9 Nov 2023 04:28:34 -0800 (PST) X-Google-Smtp-Source: AGHT+IGWtqw479oL+5otauvztDoqwVmGr993N7GZfIDijwfmEegnRWlUdzpSRAdqf4B/FgUFHFQc X-Received: by 2002:a17:907:74a:b0:9a5:cbb2:3fab with SMTP id xc10-20020a170907074a00b009a5cbb23fabmr4040277ejb.2.1699532913858; Thu, 09 Nov 2023 04:28:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699532913; cv=none; d=google.com; s=arc-20160816; b=UXjvdD3wqCwCO74gbvKHs51XqNStyGAN2RGZVFvPx3wQ3AizaPTeK9tkUV5tFRV2O6 7ceu6utRMlaOtKzw7Rkc6pPMKufkCWS/jBM5Yqzw4WR4fJcR5qpd92qXt92b6x0f5teG 5aSyH1d2l1XgsEQAFpE63EfRbBO8PWGjqY+QtiaJH9J0JwSe0stVCAM26Aue/Lo3f1BP MuX8FftA++NMCVp351mvaPKgNCByMjlXShKD3TanRwxIIbVkpnmQIKlHqJBl8AsgqXrk Jh8kZpiiHFnpAgEVFkWUdIArh6WfnfO/G+161ruBKLVoTTB0akgij+G9O2mapbVLs3eh Z2og== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=mztKYscE4SErQOoJd18lG67EiZ8992G01eWmcAliiDw=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=G7OA3xealr7E9JLBhWaD8iHJ8R4qCJ/oabYOCx25hvFRzJ3IuA53w0k0YklvZKVRdX KPODqOydMjhEZmxA4IgaZw3wXyIDlsEX96uY4frt8o5WC2kTV/CZnDAH8tbCb6kZ60zJ INPSO7XswMizTdx5MIG8dld/j9LFne6eEPaYtdXPz4+GUPTKCsqSv8lefmj3an6W0tLR FrXzxZjxQcSPI+wLCW3055Xt2Bg9GnF0e3o4BujYfcMinGUSjCW2Zhlvw5IRqeOelgTT mRnbjFQQzsB7802CXtFbwXxhvZMgIuT3DGc87HWTIcx9yJcdXHXNw5C4AqCo3KAU2j3U N3hw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b=mcVfau7d; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id l10-20020a170906794a00b009e1ba3f2066si3450319ejo.50.2023.11.09.04.28.33; Thu, 09 Nov 2023 04:28:33 -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=@haasn.xyz header.s=mail header.b=mcVfau7d; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F252A68CCB3; Thu, 9 Nov 2023 14:26:02 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6A3DB68CBF5 for ; Thu, 9 Nov 2023 14:25:42 +0200 (EET) Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id 22D5D4361F; Thu, 9 Nov 2023 13:25:42 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1699532742; bh=SxSjAy5SXHCHW8N9LWLch+Al47aKlUcfl0EjLoQyrFU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mcVfau7dz6xO8dX+x7vFwWJnWtGkhlaK4421X2dt+XLomT1u6/pNfH6YPT9um68UO iHF3XCYt+0cgyjCn0nUwQzlH4mOloUODRzwxCEppqoUhwudaV28KqGaJdrxLb48H3M xhnkrsYGJon+je0mFlP9Vd8f07WVtNtdDTOUP9Xg= From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Thu, 9 Nov 2023 13:19:56 +0100 Message-ID: <20231109122534.124157-25-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231109122534.124157-1-ffmpeg@haasn.xyz> References: <20231109122534.124157-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 24/25] avutil/pixdesc: remove old yuvj pixel format check 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: Niklas Haas Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: n6QeHalX5UzH From: Niklas Haas These no longer exist. --- libavutil/pixdesc.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c index 2886c9e0f5..9244b9d7a8 100644 --- a/libavutil/pixdesc.c +++ b/libavutil/pixdesc.c @@ -2977,8 +2977,7 @@ enum AVPixelFormat av_pix_fmt_swap_endianness(enum AVPixelFormat pix_fmt) #define FF_COLOR_NA -1 #define FF_COLOR_RGB 0 /**< RGB color space */ #define FF_COLOR_GRAY 1 /**< gray color space */ -#define FF_COLOR_YUV 2 /**< YUV color space. 16 <= Y <= 235, 16 <= U, V <= 240 */ -#define FF_COLOR_YUV_JPEG 3 /**< YUV color space. 0 <= Y <= 255, 0 <= U, V <= 255 */ +#define FF_COLOR_YUV 2 /**< YUV color space */ #define FF_COLOR_XYZ 4 #define pixdesc_has_alpha(pixdesc) \ @@ -2992,11 +2991,6 @@ static int get_color_type(const AVPixFmtDescriptor *desc) { if(desc->nb_components == 1 || desc->nb_components == 2) return FF_COLOR_GRAY; - if (desc->name) { - if (av_strstart(desc->name, "yuvj", NULL)) - return FF_COLOR_YUV_JPEG; - } - if(desc->flags & AV_PIX_FMT_FLAG_RGB) return FF_COLOR_RGB; @@ -3135,12 +3129,6 @@ static int get_pix_fmt_score(enum AVPixelFormat dst_pix_fmt, if (src_color != FF_COLOR_YUV) loss |= FF_LOSS_COLORSPACE; break; - case FF_COLOR_YUV_JPEG: - if (src_color != FF_COLOR_YUV_JPEG && - src_color != FF_COLOR_YUV && - src_color != FF_COLOR_GRAY) - loss |= FF_LOSS_COLORSPACE; - break; default: /* fail safe test */ if (src_color != dst_color)