From patchwork Mon Feb 5 14:29:26 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 46043 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:7b08:b0:19e:8a94:b663 with SMTP id s8csp785023pzh; Mon, 5 Feb 2024 06:29:47 -0800 (PST) X-Google-Smtp-Source: AGHT+IGo/LfBa827eeSURsqWn/6JsrtHtX/8FmVJX0LvlMPPQm9F9IqwbAUCm2LuOkXOdPf/ZAK8 X-Received: by 2002:ac2:58f3:0:b0:511:4b1e:8721 with SMTP id v19-20020ac258f3000000b005114b1e8721mr3259847lfo.7.1707143387548; Mon, 05 Feb 2024 06:29:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1707143387; cv=none; d=google.com; s=arc-20160816; b=in8nz7ar1vqBiv6oQEdutzYHFwAAy79sDvutA6z6/MDMtwYat9RS9XeG1avXkKL+Ys UXlFYqUpAuRaXbiadm26uLfW0+4OSIMMD9GuwGuQ8zgASaMAjcaM16e5r0mcgeDNdShv M33Yx2vFQCVW2eIyLmuxsQ+2aox/wUy4dDJSr4rQa1j3UwKriU43E5Q6f/urKZ1Jr7WT FRv9Ecnh7kZanBGMnHvc/b/qePX4sx9sgR9q18qt/s+9p1AUgEIsXY2cNYH3oUYfjwBE CpYEevCtNAbli8Lqdk5qC/e5h38ctneCydYlGaR9ETyWpkl12d0mVj9agn1AYoxd1aQn dtIA== 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=eP/+GRWku2wN7WslCHGVpm5paY+pjPmf4p3vlVUNjEw=; fh=LECZR4hWQQJoygrxj+bOllDEGrhoG9btEBt9sJuT4kM=; b=tZS7ViT+oJrl6RfAeQq1JEiC0hVQ3affNX+9DPvTykKo4sQYpW/eUXAkro3XHT1LpB DcUfwD520Vcm3zPzmnw5G7O7aAUYvtjvoMQFKckVFBEz71bdjP+VN2BWLtYEuE7VBbMU 58AmnQuKgCBI5nV+3wuNYw8O4N1pD+CsIBdEgV/jQSOWbK4CimXcmwXFajXAvex4P4UW j4pvAm0+l7k3Gv4dPp5SdUoirKFmUggSjUWX3qVvVQV6SGOVOQwseQUKBSqqXufut4d4 hT5uiOztqW+aP4fZtNYJcUDiMUr8GKH9U7WOj20y+26nNYmNheZYnl8c/dg2tuHScRBy B0zg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b=vdo26xui; 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 X-Forwarded-Encrypted: i=0; AJvYcCWPp1WNBg8wFZZWBQJdSkmI8s705T0ZPJLC0gsHvOxQVkAOuyCnb+oN0j+mLStyIhMDYGW9cJNAOknz9tJvzbePa1xV1l0SWmTk7p5cI736Swm6VPVhLKkjoBGoa8WRda1wkgKQlHeQ7p607hyjUP3nc6md8OUD3cfudB9NS406nzVsAD78fizBMCJUg/vRqueYqqOQ5VX1ZePzmEP2gcYjtcURkdpNMyjN0dZf0wW6sNrg7eqgQ10WaIBS0QgjPJ2kTluS+GkhZKRLjUAoRS2OfzmWztkfPlfBgBubx3ciz22rTBMO55O1C2JOAI/woFWT/yijqSneny6tgOem5L3M76Rugsv+/jqAXFc5ZEtMUac9OVDgo1pnWbgizU0F+PNzXIyBKNLKMI25QTd9BK+30TxoooJ2YRdzPQpqhS7OWeAy0mtv/YL7kEnihsTxS0mBPd5ySyCtT781pDjVBOVplNozbeaPTfhAmB17pXSK7pv9OR7sdF1syr2dOdwkQzcont7V1YSt4L79CUNoGrFw6Zh7s8V2gwbAQSD3qDc/1vI9K4z09Vqr6u4EwUlW9siZ/09He02A8JtAlRrE4ZKXOMZ2Q5nIupdaFSbEjOPzDvBPcRF2fqdNpYWOcynXhW4R1l0NBimBudE9soBS347jCVyIHCwsXidjMyhrN0y4GV6iJQbp9LTGp3XbQNAtPYgXijW5Hpl9fQS5mcy/jLodA+Fj3rAnJfQ36oEi+ib+p8bK+YvQlzX3t6M2v2htQ0i5E3dpDpJNKK9iIT5Tys1MdcvsyZ57cS/N17Smcxvrgzw2E/iIOwn3Y2G/PFDpaG/sP2m8c+sjJKb8DKw1hgu5D7HfZvylxYh5k8UJy4cxBbD22IT4GAwe2a7bb+qA9m+5IU1brQYh5LEf/ZBC9/7qXY41crwjc2g7Sfy/iO7ekNcphLFSafJph4RUIITfaRYmBt UT5JgnXx2JxYr8t8Hr4jzQAflpZduqyDEseglBSBCt/R04fwov6n0j34VYr5P/QD23L5eJD70VblIUSZ2PXj/75YttgCEcwxN4ccrDS1snx94yYBS5AgTpU+L+Gc8588oRQ16/r5uSxlUXHWIuRD7MLg6GhL4Hs+aNFykysTa+frGVs2KSiZ0X5HudUP9V+tYUfKlrX4mygjQAv/9UkU1x0iKIM+73y9eOwWnRs97S2iJNNMXDy2E0alag3zNHO/OJ1tWXj0W/4dN8phZTcMiJ4zBwAP9JKzrewbKsI7R0QvtxXLdVYuUkyo6tg1iCyFYSgk9i2WnADX41FNuW8vh2pFDB3u1JpPWvYsTTH+ufJVjt2UuoSVlR98dSRw0Jayp08UV99Bm/R2RBPxKTdfSqdhliNZmK4SLG/t0l/VjbzMeZa4H5ynhCph5NsatOcqKqTsRepTxmP2zS6saYl45KZBqiWm3WrtXWyiVBBT/VMErwUBvqJXZNHYoQATPuqXh7fuPR6tnFzyE2SuCKz3bAWt4k25WN3UKCHVNDeAT5DJTIxG4AjiUOtF62ZIJ+V2766wkQV1Z3c7BOmxSYd3p1X3xUZHk71lq7TKmrw9g0+8yJ50vDm+XUm2L8XfhIDYQEIsGOt/HcZnzlV9U= Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id hg19-20020a170906f35300b00a37ec299a7fsi344900ejb.829.2024.02.05.06.29.47; Mon, 05 Feb 2024 06:29:47 -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=vdo26xui; 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 65D7368D14F; Mon, 5 Feb 2024 16:29:38 +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 0BBB768AF3B for ; Mon, 5 Feb 2024 16:29:31 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1707143370; bh=PpyFGwGir4dFg0rnQUBnG+4GgV82yiQdGNE6MRlB5gA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vdo26xui5YcRWqsSXJXyCSxzxpxEPZbc8taRPVBeT4xISYq9X0rvaThVKN4s+Ucb0 OuojeOZRRWxp8jZ02aVsEBLsVBEnoV0+3/0NfQ95otRye3QL5OcJBSd+n5wKu0VSZb lpHFL0Ajy5NN8tv/f4QDuP4ZLnux/Y52ymGgPwWo= Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id D444640CCA; Mon, 5 Feb 2024 15:29:30 +0100 (CET) From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Mon, 5 Feb 2024 15:29:26 +0100 Message-ID: <20240205142926.12050-2-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240205142926.12050-1-ffmpeg@haasn.xyz> References: <20240205142926.12050-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] avfilter/buffersrc: allow promoting color range to MPEG 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: Xyelzb7t7j3L From: Niklas Haas Otherwise, passing an UNSPECIFIED frame to am MPEG-only filter graph would trigger insertion of an unnecessary vf_scale filter, which would perform a memcpy to convert between the two. This is safe to do because unspecified YUV frames are already universally assumed to be MPEG range, in particular by swscale. --- libavfilter/buffersrc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c index 93fadab65f..a6a000df1e 100644 --- a/libavfilter/buffersrc.c +++ b/libavfilter/buffersrc.c @@ -506,8 +506,14 @@ static int query_formats(AVFilterContext *ctx) if ((ret = ff_add_format(&color_spaces, c->color_space)) < 0 || (ret = ff_set_common_color_spaces(ctx, color_spaces)) < 0) return ret; - if ((ret = ff_add_format(&color_ranges, c->color_range)) < 0 || - (ret = ff_set_common_color_ranges(ctx, color_ranges)) < 0) + if ((ret = ff_add_format(&color_ranges, c->color_range)) < 0) + return ret; + if (c->color_range == AVCOL_RANGE_UNSPECIFIED) { + /* allow implicitly promoting unspecified to mpeg */ + if ((ret = ff_add_format(&color_ranges, AVCOL_RANGE_MPEG)) < 0) + return ret; + } + if ((ret = ff_set_common_color_ranges(ctx, color_ranges)) < 0) return ret; } break;