From patchwork Tue Aug 2 16:54:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Nicolas George X-Patchwork-Id: 37094 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1649:b0:8b:613a:194d with SMTP id no9csp3256927pzb; Tue, 2 Aug 2022 09:55:29 -0700 (PDT) X-Google-Smtp-Source: AA6agR6i+i2hxB4Bp9obbBwDsCAB0Pc3aNdvde8g7pI6ZJIpEFC0NYZfyHv7GG1dtO8GHm4L76ct X-Received: by 2002:a17:907:2c62:b0:730:6202:c3a4 with SMTP id ib2-20020a1709072c6200b007306202c3a4mr10892403ejc.52.1659459328790; Tue, 02 Aug 2022 09:55:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1659459328; cv=none; d=google.com; s=arc-20160816; b=hUDGr4XyYuyJxB7LxXudvTSZw/tS0cvV8pkKmIs5JPH/06QuodblDwzg0jPaD2jKYc 66zKyqaAKCYUj5uvpeuyZFEgljtWy8StuRWHKxTCuw1HZqoJRqVz0hMoLJf1lVsV+Id6 JZy7VPX6MOpX/QIkdU6lhx+tp4DBcD0tN/WefXF+W5OdXeRBf7e4Bn3lzHe6cV9QSLhT 7vSMwuLOf6z4YmiMIH+zSHmBPVC1VGJI/UYcsSDA5Y+qEDnq+EuZlPzrKzDL+TdQnO10 kkK1mj5dGpXrWn4OX50eBEq9Des3Djt40b450n3XjLxIkfezsmCG03EoG46lsSrGUEXs nkRQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding: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:delivered-to; bh=w7YLfaiVuisZMqXZoVcg62bxBYPJay9xGPWq8w2hnHA=; b=LPtqcWgTdReAFZ+q+H6yERwR/ftUtZY/xmK0Y04rladnHqf0s4eY3FfALtCUFDORkS EfknZ46e/1VIkrRe2hg2xY/+Cm8LT4Qt55GPNCxc8p5Wa7kOpSUcM54vXe+tnaBqV0AT /97wi04qEMOFCo3YS+JZj4Y50IB4p9Rrgf2PljmhJlgjYIdYurQzouLDNjhZ12F7ehl4 3r2L8IfTaUJX7hn/zkiVKXkt9/sdQk2RDNu57e6WKMu832qM07N+RZn5EZHCUBm0u6IN 4IZxF253psrAc59mS2vFQb9nryiZ1n3bcPCEcKUe9oSv0AM2pvyMXo6VQbav2d3GybXr uzdQ== ARC-Authentication-Results: i=1; mx.google.com; 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 he8-20020a1709073d8800b00711d89b831esi7015001ejc.721.2022.08.02.09.55.28; Tue, 02 Aug 2022 09:55:28 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; 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 81D6768BAF1; Tue, 2 Aug 2022 19:54:39 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from nef.ens.fr (nef2.ens.fr [129.199.96.40]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D36C968BA82 for ; Tue, 2 Aug 2022 19:54:30 +0300 (EEST) X-ENS-nef-client: 129.199.129.80 ( name = phare.normalesup.org ) Received: from phare.normalesup.org (phare.normalesup.org [129.199.129.80]) by nef.ens.fr (8.14.4/1.01.28121999) with ESMTP id 272GsU1s017586 for ; Tue, 2 Aug 2022 18:54:30 +0200 Received: by phare.normalesup.org (Postfix, from userid 1001) id 1CEDBEB5BC; Tue, 2 Aug 2022 18:54:30 +0200 (CEST) From: Nicolas George To: ffmpeg-devel@ffmpeg.org Date: Tue, 2 Aug 2022 18:54:21 +0200 Message-Id: <20220802165421.137563-7-george@nsup.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220802165421.137563-1-george@nsup.org> References: <20220802165421.137563-1-george@nsup.org> MIME-Version: 1.0 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.4.3 (nef.ens.fr [129.199.96.32]); Tue, 02 Aug 2022 18:54:30 +0200 (CEST) Subject: [FFmpeg-devel] [PATCH 7/7] tests: add coverage for libavfilter's format negotiation 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: p/cD5zKJaD/E Added coverage for the video part of pick_format(). Signed-off-by: Nicolas George --- Only video for now, I would like to push before working on audio. Audio is easier because there are fewer formats. But audio is also harder because I need to test cases where format incompatibilities detected in two places for different aspects. Once I have good coverage, I can reorganise the negotiation process without risking breaking cases that were previously fixed. Note: the tests are very fast, since they only init the graph and do not filter anything. tests/Makefile | 1 + tests/fate-run.sh | 4 + tests/fate/libavfilter.mak | 86 +++++++++++++++++++ tests/ref/fate/libavfilter-negotiation-alpha | 20 +++++ ...avfilter-negotiation-alpha-over-chroma-rgb | 20 +++++ ...avfilter-negotiation-alpha-over-chroma-yuv | 20 +++++ .../libavfilter-negotiation-avoid-subsample | 20 +++++ .../fate/libavfilter-negotiation-chroma-rgb | 20 +++++ .../fate/libavfilter-negotiation-chroma-yuv | 20 +++++ .../libavfilter-negotiation-chroma-yuv420 | 20 +++++ ...ibavfilter-negotiation-chroma1-over-depth1 | 20 +++++ ...ilter-negotiation-chroma2-over-colorspace8 | 20 +++++ ...libavfilter-negotiation-colorspace-rgb-yuv | 20 +++++ ...libavfilter-negotiation-colorspace-yuv-rgb | 20 +++++ ...vfilter-negotiation-colorspace8-over-alpha | 20 +++++ .../fate/libavfilter-negotiation-depth-rgb | 20 +++++ .../fate/libavfilter-negotiation-depth-yuv | 20 +++++ ...libavfilter-negotiation-depth1-over-depth2 | 20 +++++ .../libavfilter-negotiation-depth2-over-alpha | 20 +++++ .../fate/libavfilter-negotiation-palette-rgb | 20 +++++ .../fate/libavfilter-negotiation-palette-yuv | 20 +++++ 21 files changed, 451 insertions(+) create mode 100644 tests/fate/libavfilter.mak create mode 100644 tests/ref/fate/libavfilter-negotiation-alpha create mode 100644 tests/ref/fate/libavfilter-negotiation-alpha-over-chroma-rgb create mode 100644 tests/ref/fate/libavfilter-negotiation-alpha-over-chroma-yuv create mode 100644 tests/ref/fate/libavfilter-negotiation-avoid-subsample create mode 100644 tests/ref/fate/libavfilter-negotiation-chroma-rgb create mode 100644 tests/ref/fate/libavfilter-negotiation-chroma-yuv create mode 100644 tests/ref/fate/libavfilter-negotiation-chroma-yuv420 create mode 100644 tests/ref/fate/libavfilter-negotiation-chroma1-over-depth1 create mode 100644 tests/ref/fate/libavfilter-negotiation-chroma2-over-colorspace8 create mode 100644 tests/ref/fate/libavfilter-negotiation-colorspace-rgb-yuv create mode 100644 tests/ref/fate/libavfilter-negotiation-colorspace-yuv-rgb create mode 100644 tests/ref/fate/libavfilter-negotiation-colorspace8-over-alpha create mode 100644 tests/ref/fate/libavfilter-negotiation-depth-rgb create mode 100644 tests/ref/fate/libavfilter-negotiation-depth-yuv create mode 100644 tests/ref/fate/libavfilter-negotiation-depth1-over-depth2 create mode 100644 tests/ref/fate/libavfilter-negotiation-depth2-over-alpha create mode 100644 tests/ref/fate/libavfilter-negotiation-palette-rgb create mode 100644 tests/ref/fate/libavfilter-negotiation-palette-yuv diff --git a/tests/Makefile b/tests/Makefile index d9c509a415..c4e01a26e9 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -202,6 +202,7 @@ include $(SRC_PATH)/tests/fate/imf.mak include $(SRC_PATH)/tests/fate/indeo.mak include $(SRC_PATH)/tests/fate/libavcodec.mak include $(SRC_PATH)/tests/fate/libavdevice.mak +include $(SRC_PATH)/tests/fate/libavfilter.mak include $(SRC_PATH)/tests/fate/libavformat.mak include $(SRC_PATH)/tests/fate/libavutil.mak include $(SRC_PATH)/tests/fate/libswresample.mak diff --git a/tests/fate-run.sh b/tests/fate-run.sh index 4008bcbc16..53dcbb563b 100755 --- a/tests/fate-run.sh +++ b/tests/fate-run.sh @@ -571,6 +571,10 @@ venc_data(){ run tools/venc_data_dump${EXECSUF} ${file} ${stream} ${frames} ${threads} ${thread_type} } +lavfi_dump(){ + run ffmpeg${PROGSUF}${EXECSUF} -lavfi_dump -lavfi "$@" -f null - +} + null(){ : } diff --git a/tests/fate/libavfilter.mak b/tests/fate/libavfilter.mak new file mode 100644 index 0000000000..b7d3786942 --- /dev/null +++ b/tests/fate/libavfilter.mak @@ -0,0 +1,86 @@ +NEGO_PIXFMT = lavfi_dump testsrc2=d=0,format=$(1),scale,format=$(2) + +# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : losing alpha +FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-alpha +fate-libavfilter-negotiation-alpha: CMD = $(call NEGO_PIXFMT,rgba,yuv444p/yuva444p) + +# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : subsampling +FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-avoid-subsample +fate-libavfilter-negotiation-avoid-subsample: CMD = $(call NEGO_PIXFMT,yuv444p,yuv420p10le/yuva444p10le) + +# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : losing depth (yuv) +FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-depth-yuv +fate-libavfilter-negotiation-depth-yuv: CMD = $(call NEGO_PIXFMT,yuv444p10le,yuv444p9le/yuva444p12le) + +# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : losing depth (rgb) +FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-depth-rgb +fate-libavfilter-negotiation-depth-rgb: CMD = $(call NEGO_PIXFMT,rgb24,rgb555le/rgb48le) + +# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : changing colorspace (yuv → rgb) +FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-colorspace-yuv-rgb +fate-libavfilter-negotiation-colorspace-yuv-rgb: CMD = $(call NEGO_PIXFMT,yuv444p,rgb24/yuv444p9) + +# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : changing colorspace (rgb → yuv) +FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-colorspace-rgb-yuv +fate-libavfilter-negotiation-colorspace-rgb-yuv: CMD = $(call NEGO_PIXFMT,rgb24,yuv444p/rgb0) + +# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : losing chroma (yuv) +FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-chroma-yuv +fate-libavfilter-negotiation-chroma-yuv: CMD = $(call NEGO_PIXFMT,yuv444p,gray8/rgb24) + +# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : losing chroma (rgb) +FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-chroma-rgb +fate-libavfilter-negotiation-chroma-rgb: CMD = $(call NEGO_PIXFMT,rgb24,gray8/yuv444p) + +# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : avoid palette (yuv) +# FIXME yuv → pal8 always loses depth +FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-palette-yuv +fate-libavfilter-negotiation-palette-yuv: CMD = $(call NEGO_PIXFMT,yuv444p,pal8/rgb24) + +# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : avoid palette (rgb) +# FIXME rgb → pal8 always loses depth +FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-palette-rgb +fate-libavfilter-negotiation-palette-rgb: CMD = $(call NEGO_PIXFMT,rgb24,pal8/yuv444p) + +# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : yuv420 exception +FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-chroma-yuv420 +fate-libavfilter-negotiation-chroma-yuv420: CMD = $(call NEGO_PIXFMT,yuv444p,yuv422p/yuv420p) + +# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : chroma subsampling -1 > depth -1 +FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-chroma1-over-depth1 +fate-libavfilter-negotiation-chroma1-over-depth1: CMD = $(call NEGO_PIXFMT,yuv444p10le,yuv444p9le/yuv440p10le) + +# FIXME depth -1 > chroma subsampling -2 → impossible to test without triggering the exception for 420 + +# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : depth -1 > depth -2 +FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-depth1-over-depth2 +fate-libavfilter-negotiation-depth1-over-depth2: CMD = $(call NEGO_PIXFMT,yuv444p10le,yuv444p/yuv444p9le) + +# FIXME chroma subsampling -2 > depth -2 → impossible to test without triggering the exception for 420 + +# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : chroma subsampling -2 > colorspace 8 +FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-chroma2-over-colorspace8 +fate-libavfilter-negotiation-chroma2-over-colorspace8: CMD = $(call NEGO_PIXFMT,yuv444p,rgb24/yuv411p) + +# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : depth -2 > lose alpha +FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-depth2-over-alpha +fate-libavfilter-negotiation-depth2-over-alpha: CMD = $(call NEGO_PIXFMT,yuva444p10le,yuv444p10le/yuva444p) + +# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : colorspace 8 > lose alpha +FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-colorspace8-over-alpha +fate-libavfilter-negotiation-colorspace8-over-alpha: CMD = $(call NEGO_PIXFMT,yuva444p,yuv444p/rgba) + +# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : lose alpha > lose chroma +FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-alpha-over-chroma-yuv +fate-libavfilter-negotiation-alpha-over-chroma-yuv: CMD = $(call NEGO_PIXFMT,yuva444p,gray8a/yuv444p) + +# avfiltergraph.c : pick_format() → pixdesc.c : get_pix_fmt_score() : lose alpha > lose chroma +FATE_LIBAVFILTER_NEGOTIATION_VIDEO += fate-libavfilter-negotiation-alpha-over-chroma-rgb +fate-libavfilter-negotiation-alpha-over-chroma-rgb: CMD = $(call NEGO_PIXFMT,rgba,gray8a/rgb24) + +FATE_LIBAVFILTER_NEGOTIATION-$(call ALLYES, TESTSRC2_FILTER FORMAT_FILTER SCALE_FILTER) += $(FATE_LIBAVFILTER_NEGOTIATION_VIDEO) +FATE_LIBAVFILTER-yes += $(FATE_LIBAVFILTER_NEGOTIATION-yes) + +fate-libavfilter: $(FATE_LIBAVFILTER-yes) +fate-libavfilter-negotiation: $(FATE_LIBAVFILTER_NEGOTIATION-yes) +FATE_FFMPEG += $(FATE_LIBAVFILTER-yes) diff --git a/tests/ref/fate/libavfilter-negotiation-alpha b/tests/ref/fate/libavfilter-negotiation-alpha new file mode 100644 index 0000000000..00175f65cb --- /dev/null +++ b/tests/ref/fate/libavfilter-negotiation-alpha @@ -0,0 +1,20 @@ +Dump of complex filter graph #0: + +Filter: Parsed_testsrc2_0 (testsrc2) + out 0: default → Parsed_format_1.0:default [320x240 1:1 rgba] + +Filter: Parsed_format_1 (format) + in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 rgba] + out 0: default → Parsed_scale_2.0:default [320x240 1:1 rgba] + +Filter: Parsed_scale_2 (scale) + in 0: default ← Parsed_format_1.0:default [320x240 1:1 rgba] + out 0: default → Parsed_format_3.0:default [320x240 1:1 yuva444p] + +Filter: Parsed_format_3 (format) + in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuva444p] + out 0: default → out_0_0.0:default [320x240 1:1 yuva444p] + +Filter: out_0_0 (buffersink) + in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuva444p] + diff --git a/tests/ref/fate/libavfilter-negotiation-alpha-over-chroma-rgb b/tests/ref/fate/libavfilter-negotiation-alpha-over-chroma-rgb new file mode 100644 index 0000000000..38d4670ac4 --- /dev/null +++ b/tests/ref/fate/libavfilter-negotiation-alpha-over-chroma-rgb @@ -0,0 +1,20 @@ +Dump of complex filter graph #0: + +Filter: Parsed_testsrc2_0 (testsrc2) + out 0: default → Parsed_format_1.0:default [320x240 1:1 rgba] + +Filter: Parsed_format_1 (format) + in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 rgba] + out 0: default → Parsed_scale_2.0:default [320x240 1:1 rgba] + +Filter: Parsed_scale_2 (scale) + in 0: default ← Parsed_format_1.0:default [320x240 1:1 rgba] + out 0: default → Parsed_format_3.0:default [320x240 1:1 rgb24] + +Filter: Parsed_format_3 (format) + in 0: default ← Parsed_scale_2.0:default [320x240 1:1 rgb24] + out 0: default → out_0_0.0:default [320x240 1:1 rgb24] + +Filter: out_0_0 (buffersink) + in 0: default ← Parsed_format_3.0:default [320x240 1:1 rgb24] + diff --git a/tests/ref/fate/libavfilter-negotiation-alpha-over-chroma-yuv b/tests/ref/fate/libavfilter-negotiation-alpha-over-chroma-yuv new file mode 100644 index 0000000000..fecb493f88 --- /dev/null +++ b/tests/ref/fate/libavfilter-negotiation-alpha-over-chroma-yuv @@ -0,0 +1,20 @@ +Dump of complex filter graph #0: + +Filter: Parsed_testsrc2_0 (testsrc2) + out 0: default → Parsed_format_1.0:default [320x240 1:1 yuva444p] + +Filter: Parsed_format_1 (format) + in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuva444p] + out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuva444p] + +Filter: Parsed_scale_2 (scale) + in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuva444p] + out 0: default → Parsed_format_3.0:default [320x240 1:1 yuv444p] + +Filter: Parsed_format_3 (format) + in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuv444p] + out 0: default → out_0_0.0:default [320x240 1:1 yuv444p] + +Filter: out_0_0 (buffersink) + in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuv444p] + diff --git a/tests/ref/fate/libavfilter-negotiation-avoid-subsample b/tests/ref/fate/libavfilter-negotiation-avoid-subsample new file mode 100644 index 0000000000..eafb6f04b2 --- /dev/null +++ b/tests/ref/fate/libavfilter-negotiation-avoid-subsample @@ -0,0 +1,20 @@ +Dump of complex filter graph #0: + +Filter: Parsed_testsrc2_0 (testsrc2) + out 0: default → Parsed_format_1.0:default [320x240 1:1 yuv444p] + +Filter: Parsed_format_1 (format) + in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuv444p] + out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuv444p] + +Filter: Parsed_scale_2 (scale) + in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuv444p] + out 0: default → Parsed_format_3.0:default [320x240 1:1 yuva444p10le] + +Filter: Parsed_format_3 (format) + in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuva444p10le] + out 0: default → out_0_0.0:default [320x240 1:1 yuva444p10le] + +Filter: out_0_0 (buffersink) + in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuva444p10le] + diff --git a/tests/ref/fate/libavfilter-negotiation-chroma-rgb b/tests/ref/fate/libavfilter-negotiation-chroma-rgb new file mode 100644 index 0000000000..f317cc85cd --- /dev/null +++ b/tests/ref/fate/libavfilter-negotiation-chroma-rgb @@ -0,0 +1,20 @@ +Dump of complex filter graph #0: + +Filter: Parsed_testsrc2_0 (testsrc2) + out 0: default → Parsed_format_1.0:default [320x240 1:1 rgb24] + +Filter: Parsed_format_1 (format) + in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 rgb24] + out 0: default → Parsed_scale_2.0:default [320x240 1:1 rgb24] + +Filter: Parsed_scale_2 (scale) + in 0: default ← Parsed_format_1.0:default [320x240 1:1 rgb24] + out 0: default → Parsed_format_3.0:default [320x240 1:1 yuv444p] + +Filter: Parsed_format_3 (format) + in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuv444p] + out 0: default → out_0_0.0:default [320x240 1:1 yuv444p] + +Filter: out_0_0 (buffersink) + in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuv444p] + diff --git a/tests/ref/fate/libavfilter-negotiation-chroma-yuv b/tests/ref/fate/libavfilter-negotiation-chroma-yuv new file mode 100644 index 0000000000..ff3e54aa84 --- /dev/null +++ b/tests/ref/fate/libavfilter-negotiation-chroma-yuv @@ -0,0 +1,20 @@ +Dump of complex filter graph #0: + +Filter: Parsed_testsrc2_0 (testsrc2) + out 0: default → Parsed_format_1.0:default [320x240 1:1 yuv444p] + +Filter: Parsed_format_1 (format) + in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuv444p] + out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuv444p] + +Filter: Parsed_scale_2 (scale) + in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuv444p] + out 0: default → Parsed_format_3.0:default [320x240 1:1 rgb24] + +Filter: Parsed_format_3 (format) + in 0: default ← Parsed_scale_2.0:default [320x240 1:1 rgb24] + out 0: default → out_0_0.0:default [320x240 1:1 rgb24] + +Filter: out_0_0 (buffersink) + in 0: default ← Parsed_format_3.0:default [320x240 1:1 rgb24] + diff --git a/tests/ref/fate/libavfilter-negotiation-chroma-yuv420 b/tests/ref/fate/libavfilter-negotiation-chroma-yuv420 new file mode 100644 index 0000000000..f93f15d1b1 --- /dev/null +++ b/tests/ref/fate/libavfilter-negotiation-chroma-yuv420 @@ -0,0 +1,20 @@ +Dump of complex filter graph #0: + +Filter: Parsed_testsrc2_0 (testsrc2) + out 0: default → Parsed_format_1.0:default [320x240 1:1 yuv444p] + +Filter: Parsed_format_1 (format) + in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuv444p] + out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuv444p] + +Filter: Parsed_scale_2 (scale) + in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuv444p] + out 0: default → Parsed_format_3.0:default [320x240 1:1 yuv420p] + +Filter: Parsed_format_3 (format) + in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuv420p] + out 0: default → out_0_0.0:default [320x240 1:1 yuv420p] + +Filter: out_0_0 (buffersink) + in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuv420p] + diff --git a/tests/ref/fate/libavfilter-negotiation-chroma1-over-depth1 b/tests/ref/fate/libavfilter-negotiation-chroma1-over-depth1 new file mode 100644 index 0000000000..01e3e0df56 --- /dev/null +++ b/tests/ref/fate/libavfilter-negotiation-chroma1-over-depth1 @@ -0,0 +1,20 @@ +Dump of complex filter graph #0: + +Filter: Parsed_testsrc2_0 (testsrc2) + out 0: default → Parsed_format_1.0:default [320x240 1:1 yuv444p10le] + +Filter: Parsed_format_1 (format) + in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuv444p10le] + out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuv444p10le] + +Filter: Parsed_scale_2 (scale) + in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuv444p10le] + out 0: default → Parsed_format_3.0:default [320x240 1:1 yuv440p10le] + +Filter: Parsed_format_3 (format) + in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuv440p10le] + out 0: default → out_0_0.0:default [320x240 1:1 yuv440p10le] + +Filter: out_0_0 (buffersink) + in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuv440p10le] + diff --git a/tests/ref/fate/libavfilter-negotiation-chroma2-over-colorspace8 b/tests/ref/fate/libavfilter-negotiation-chroma2-over-colorspace8 new file mode 100644 index 0000000000..9c78d1cf94 --- /dev/null +++ b/tests/ref/fate/libavfilter-negotiation-chroma2-over-colorspace8 @@ -0,0 +1,20 @@ +Dump of complex filter graph #0: + +Filter: Parsed_testsrc2_0 (testsrc2) + out 0: default → Parsed_format_1.0:default [320x240 1:1 yuv444p] + +Filter: Parsed_format_1 (format) + in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuv444p] + out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuv444p] + +Filter: Parsed_scale_2 (scale) + in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuv444p] + out 0: default → Parsed_format_3.0:default [320x240 1:1 yuv411p] + +Filter: Parsed_format_3 (format) + in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuv411p] + out 0: default → out_0_0.0:default [320x240 1:1 yuv411p] + +Filter: out_0_0 (buffersink) + in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuv411p] + diff --git a/tests/ref/fate/libavfilter-negotiation-colorspace-rgb-yuv b/tests/ref/fate/libavfilter-negotiation-colorspace-rgb-yuv new file mode 100644 index 0000000000..8e69fb572a --- /dev/null +++ b/tests/ref/fate/libavfilter-negotiation-colorspace-rgb-yuv @@ -0,0 +1,20 @@ +Dump of complex filter graph #0: + +Filter: Parsed_testsrc2_0 (testsrc2) + out 0: default → Parsed_format_1.0:default [320x240 1:1 rgb24] + +Filter: Parsed_format_1 (format) + in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 rgb24] + out 0: default → Parsed_scale_2.0:default [320x240 1:1 rgb24] + +Filter: Parsed_scale_2 (scale) + in 0: default ← Parsed_format_1.0:default [320x240 1:1 rgb24] + out 0: default → Parsed_format_3.0:default [320x240 1:1 rgb0] + +Filter: Parsed_format_3 (format) + in 0: default ← Parsed_scale_2.0:default [320x240 1:1 rgb0] + out 0: default → out_0_0.0:default [320x240 1:1 rgb0] + +Filter: out_0_0 (buffersink) + in 0: default ← Parsed_format_3.0:default [320x240 1:1 rgb0] + diff --git a/tests/ref/fate/libavfilter-negotiation-colorspace-yuv-rgb b/tests/ref/fate/libavfilter-negotiation-colorspace-yuv-rgb new file mode 100644 index 0000000000..00a4b25599 --- /dev/null +++ b/tests/ref/fate/libavfilter-negotiation-colorspace-yuv-rgb @@ -0,0 +1,20 @@ +Dump of complex filter graph #0: + +Filter: Parsed_testsrc2_0 (testsrc2) + out 0: default → Parsed_format_1.0:default [320x240 1:1 yuv444p] + +Filter: Parsed_format_1 (format) + in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuv444p] + out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuv444p] + +Filter: Parsed_scale_2 (scale) + in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuv444p] + out 0: default → Parsed_format_3.0:default [320x240 1:1 yuv444p9le] + +Filter: Parsed_format_3 (format) + in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuv444p9le] + out 0: default → out_0_0.0:default [320x240 1:1 yuv444p9le] + +Filter: out_0_0 (buffersink) + in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuv444p9le] + diff --git a/tests/ref/fate/libavfilter-negotiation-colorspace8-over-alpha b/tests/ref/fate/libavfilter-negotiation-colorspace8-over-alpha new file mode 100644 index 0000000000..7376f40526 --- /dev/null +++ b/tests/ref/fate/libavfilter-negotiation-colorspace8-over-alpha @@ -0,0 +1,20 @@ +Dump of complex filter graph #0: + +Filter: Parsed_testsrc2_0 (testsrc2) + out 0: default → Parsed_format_1.0:default [320x240 1:1 yuva444p] + +Filter: Parsed_format_1 (format) + in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuva444p] + out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuva444p] + +Filter: Parsed_scale_2 (scale) + in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuva444p] + out 0: default → Parsed_format_3.0:default [320x240 1:1 rgba] + +Filter: Parsed_format_3 (format) + in 0: default ← Parsed_scale_2.0:default [320x240 1:1 rgba] + out 0: default → out_0_0.0:default [320x240 1:1 rgba] + +Filter: out_0_0 (buffersink) + in 0: default ← Parsed_format_3.0:default [320x240 1:1 rgba] + diff --git a/tests/ref/fate/libavfilter-negotiation-depth-rgb b/tests/ref/fate/libavfilter-negotiation-depth-rgb new file mode 100644 index 0000000000..aa8c9a3a5c --- /dev/null +++ b/tests/ref/fate/libavfilter-negotiation-depth-rgb @@ -0,0 +1,20 @@ +Dump of complex filter graph #0: + +Filter: Parsed_testsrc2_0 (testsrc2) + out 0: default → Parsed_format_1.0:default [320x240 1:1 rgb24] + +Filter: Parsed_format_1 (format) + in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 rgb24] + out 0: default → Parsed_scale_2.0:default [320x240 1:1 rgb24] + +Filter: Parsed_scale_2 (scale) + in 0: default ← Parsed_format_1.0:default [320x240 1:1 rgb24] + out 0: default → Parsed_format_3.0:default [320x240 1:1 rgb48le] + +Filter: Parsed_format_3 (format) + in 0: default ← Parsed_scale_2.0:default [320x240 1:1 rgb48le] + out 0: default → out_0_0.0:default [320x240 1:1 rgb48le] + +Filter: out_0_0 (buffersink) + in 0: default ← Parsed_format_3.0:default [320x240 1:1 rgb48le] + diff --git a/tests/ref/fate/libavfilter-negotiation-depth-yuv b/tests/ref/fate/libavfilter-negotiation-depth-yuv new file mode 100644 index 0000000000..b4570fbd22 --- /dev/null +++ b/tests/ref/fate/libavfilter-negotiation-depth-yuv @@ -0,0 +1,20 @@ +Dump of complex filter graph #0: + +Filter: Parsed_testsrc2_0 (testsrc2) + out 0: default → Parsed_format_1.0:default [320x240 1:1 yuv444p10le] + +Filter: Parsed_format_1 (format) + in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuv444p10le] + out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuv444p10le] + +Filter: Parsed_scale_2 (scale) + in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuv444p10le] + out 0: default → Parsed_format_3.0:default [320x240 1:1 yuva444p12le] + +Filter: Parsed_format_3 (format) + in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuva444p12le] + out 0: default → out_0_0.0:default [320x240 1:1 yuva444p12le] + +Filter: out_0_0 (buffersink) + in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuva444p12le] + diff --git a/tests/ref/fate/libavfilter-negotiation-depth1-over-depth2 b/tests/ref/fate/libavfilter-negotiation-depth1-over-depth2 new file mode 100644 index 0000000000..dc6aff0817 --- /dev/null +++ b/tests/ref/fate/libavfilter-negotiation-depth1-over-depth2 @@ -0,0 +1,20 @@ +Dump of complex filter graph #0: + +Filter: Parsed_testsrc2_0 (testsrc2) + out 0: default → Parsed_format_1.0:default [320x240 1:1 yuv444p10le] + +Filter: Parsed_format_1 (format) + in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuv444p10le] + out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuv444p10le] + +Filter: Parsed_scale_2 (scale) + in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuv444p10le] + out 0: default → Parsed_format_3.0:default [320x240 1:1 yuv444p9le] + +Filter: Parsed_format_3 (format) + in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuv444p9le] + out 0: default → out_0_0.0:default [320x240 1:1 yuv444p9le] + +Filter: out_0_0 (buffersink) + in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuv444p9le] + diff --git a/tests/ref/fate/libavfilter-negotiation-depth2-over-alpha b/tests/ref/fate/libavfilter-negotiation-depth2-over-alpha new file mode 100644 index 0000000000..96867239f8 --- /dev/null +++ b/tests/ref/fate/libavfilter-negotiation-depth2-over-alpha @@ -0,0 +1,20 @@ +Dump of complex filter graph #0: + +Filter: Parsed_testsrc2_0 (testsrc2) + out 0: default → Parsed_format_1.0:default [320x240 1:1 yuva444p10le] + +Filter: Parsed_format_1 (format) + in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuva444p10le] + out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuva444p10le] + +Filter: Parsed_scale_2 (scale) + in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuva444p10le] + out 0: default → Parsed_format_3.0:default [320x240 1:1 yuva444p] + +Filter: Parsed_format_3 (format) + in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuva444p] + out 0: default → out_0_0.0:default [320x240 1:1 yuva444p] + +Filter: out_0_0 (buffersink) + in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuva444p] + diff --git a/tests/ref/fate/libavfilter-negotiation-palette-rgb b/tests/ref/fate/libavfilter-negotiation-palette-rgb new file mode 100644 index 0000000000..f317cc85cd --- /dev/null +++ b/tests/ref/fate/libavfilter-negotiation-palette-rgb @@ -0,0 +1,20 @@ +Dump of complex filter graph #0: + +Filter: Parsed_testsrc2_0 (testsrc2) + out 0: default → Parsed_format_1.0:default [320x240 1:1 rgb24] + +Filter: Parsed_format_1 (format) + in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 rgb24] + out 0: default → Parsed_scale_2.0:default [320x240 1:1 rgb24] + +Filter: Parsed_scale_2 (scale) + in 0: default ← Parsed_format_1.0:default [320x240 1:1 rgb24] + out 0: default → Parsed_format_3.0:default [320x240 1:1 yuv444p] + +Filter: Parsed_format_3 (format) + in 0: default ← Parsed_scale_2.0:default [320x240 1:1 yuv444p] + out 0: default → out_0_0.0:default [320x240 1:1 yuv444p] + +Filter: out_0_0 (buffersink) + in 0: default ← Parsed_format_3.0:default [320x240 1:1 yuv444p] + diff --git a/tests/ref/fate/libavfilter-negotiation-palette-yuv b/tests/ref/fate/libavfilter-negotiation-palette-yuv new file mode 100644 index 0000000000..ff3e54aa84 --- /dev/null +++ b/tests/ref/fate/libavfilter-negotiation-palette-yuv @@ -0,0 +1,20 @@ +Dump of complex filter graph #0: + +Filter: Parsed_testsrc2_0 (testsrc2) + out 0: default → Parsed_format_1.0:default [320x240 1:1 yuv444p] + +Filter: Parsed_format_1 (format) + in 0: default ← Parsed_testsrc2_0.0:default [320x240 1:1 yuv444p] + out 0: default → Parsed_scale_2.0:default [320x240 1:1 yuv444p] + +Filter: Parsed_scale_2 (scale) + in 0: default ← Parsed_format_1.0:default [320x240 1:1 yuv444p] + out 0: default → Parsed_format_3.0:default [320x240 1:1 rgb24] + +Filter: Parsed_format_3 (format) + in 0: default ← Parsed_scale_2.0:default [320x240 1:1 rgb24] + out 0: default → out_0_0.0:default [320x240 1:1 rgb24] + +Filter: out_0_0 (buffersink) + in 0: default ← Parsed_format_3.0:default [320x240 1:1 rgb24] +