PR #22806 opened by i-Amogh URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22806 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22806.patch
Added portable FATE tests for two video sink/filter components in libavfilter. For vsink_nullsink.c, a single test has been added that uses a split filtergraph to verify that the nullsink sink filter correctly accepts and discards video frames without disrupting the rest of the pipeline. For vf_noise.c, eleven tests have been added that exercise all code paths in the noise filter: individual and combined flag tests cover every noise generation branch; fate-filter-noise-seed validates deterministic LCG seeding; fate-filter-noise-strength0 exercises the av_image_copy_plane pass through path; and fate-filter-noise-slice uses a tall image exceeding MAX_RES to trigger the slice threading disable fallback. Coverage: 1. 0% -> 100% Line, 100% Function for vsink_nullsink.c. 2. 0% -> 96.8% Line, 100% Function for vf_noise.c >From 83825cb1c7e22c6059b2b7f859d08314b05ecc5d Mon Sep 17 00:00:00 2001 From: i-Amogh <[email protected]> Date: Mon, 13 Apr 2026 02:22:52 +0530 Subject: [PATCH 1/2] tests/fate/filter-video: Add FATE tests for libavfilter/vf_noise.c Added 11 FATE tests for the vf_noise filter covering all code paths in the filter's initialization and execution. The tests exercise each flag individually, seeded noise for reproducibility, combined flag combinations, zero strength with a on-writable input frame to trigger the copy path, and a tall image exceeding MAX_RES to exercise the slice threading disable path. Signed-off-by: i-Amogh <[email protected]> --- tests/fate/filter-video.mak | 33 +++++++++++ tests/ref/fate/filter-noise | 55 +++++++++++++++++++ tests/ref/fate/filter-noise-averaged | 55 +++++++++++++++++++ .../filter-noise-averaged-pattern-uniform | 55 +++++++++++++++++++ tests/ref/fate/filter-noise-averaged-uniform | 55 +++++++++++++++++++ tests/ref/fate/filter-noise-pattern | 55 +++++++++++++++++++ tests/ref/fate/filter-noise-pattern-uniform | 55 +++++++++++++++++++ tests/ref/fate/filter-noise-seed | 55 +++++++++++++++++++ tests/ref/fate/filter-noise-slice | 6 ++ tests/ref/fate/filter-noise-strength0 | 55 +++++++++++++++++++ tests/ref/fate/filter-noise-temporal | 55 +++++++++++++++++++ tests/ref/fate/filter-noise-uniform | 55 +++++++++++++++++++ 12 files changed, 589 insertions(+) create mode 100644 tests/ref/fate/filter-noise create mode 100644 tests/ref/fate/filter-noise-averaged create mode 100644 tests/ref/fate/filter-noise-averaged-pattern-uniform create mode 100644 tests/ref/fate/filter-noise-averaged-uniform create mode 100644 tests/ref/fate/filter-noise-pattern create mode 100644 tests/ref/fate/filter-noise-pattern-uniform create mode 100644 tests/ref/fate/filter-noise-seed create mode 100644 tests/ref/fate/filter-noise-slice create mode 100644 tests/ref/fate/filter-noise-strength0 create mode 100644 tests/ref/fate/filter-noise-temporal create mode 100644 tests/ref/fate/filter-noise-uniform diff --git a/tests/fate/filter-video.mak b/tests/fate/filter-video.mak index 5016ea9d4d..add2e14eb5 100644 --- a/tests/fate/filter-video.mak +++ b/tests/fate/filter-video.mak @@ -272,6 +272,39 @@ FATE_FILTER_VSYNTH_PGMYUV-$(CONFIG_VSTACK_FILTER) += fate-filter-vstack fate-filter-vstack: tests/data/filtergraphs/vstack fate-filter-vstack: CMD = framecrc -c:v pgmyuv -i $(SRC) -c:v pgmyuv -i $(SRC) -/filter_complex $(TARGET_PATH)/tests/data/filtergraphs/vstack +FATE_FILTER_VSYNTH_PGMYUV-$(CONFIG_NOISE_FILTER) += fate-filter-noise +fate-filter-noise: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf noise=all_strength=20 + +FATE_FILTER_VSYNTH_PGMYUV-$(CONFIG_NOISE_FILTER) += fate-filter-noise-averaged +fate-filter-noise-averaged: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf noise=all_strength=20:all_flags=a + +FATE_FILTER_VSYNTH_PGMYUV-$(CONFIG_NOISE_FILTER) += fate-filter-noise-uniform +fate-filter-noise-uniform: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf noise=all_strength=20:all_flags=u + +FATE_FILTER_VSYNTH_PGMYUV-$(CONFIG_NOISE_FILTER) += fate-filter-noise-temporal +fate-filter-noise-temporal: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf noise=all_strength=20:all_flags=t + +FATE_FILTER_VSYNTH_PGMYUV-$(CONFIG_NOISE_FILTER) += fate-filter-noise-pattern +fate-filter-noise-pattern: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf noise=all_strength=20:all_flags=p + +FATE_FILTER_VSYNTH_PGMYUV-$(CONFIG_NOISE_FILTER) += fate-filter-noise-seed +fate-filter-noise-seed: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf noise=all_seed=1234:all_strength=50 + +FATE_FILTER_VSYNTH_PGMYUV-$(CONFIG_NOISE_FILTER) += fate-filter-noise-averaged-uniform +fate-filter-noise-averaged-uniform: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf noise=all_strength=20:all_flags=u+a + +FATE_FILTER_VSYNTH_PGMYUV-$(CONFIG_NOISE_FILTER) += fate-filter-noise-pattern-uniform +fate-filter-noise-pattern-uniform: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf noise=all_strength=20:all_flags=u+p + +FATE_FILTER_VSYNTH_PGMYUV-$(CONFIG_NOISE_FILTER) += fate-filter-noise-averaged-pattern-uniform +fate-filter-noise-averaged-pattern-uniform: CMD = framecrc -c:v pgmyuv -i $(SRC) -vf noise=all_strength=20:all_flags=u+a+p + +FATE_FILTER-$(CONFIG_NOISE_FILTER) += fate-filter-noise-strength0 +fate-filter-noise-strength0: CMD = framecrc -f lavfi -i "color=c=0x808080:s=352x288:d=2:r=25,format=yuv420p" -vf noise=all_strength=0 + +FATE_FILTER-$(CONFIG_NOISE_FILTER) += fate-filter-noise-slice +fate-filter-noise-slice: CMD = framecrc -f lavfi -i "color=c=0x808080:s=352x4100:d=0.04:r=25,format=yuv420p" -vf noise=all_strength=20:all_flags=a + FATE_FILTER_OVERLAY-$(call FILTERDEMDEC, SCALE OVERLAY, IMAGE2, PGMYUV) += fate-filter-overlay fate-filter-overlay: CMD = framecrc -c:v pgmyuv -i $(SRC) -c:v pgmyuv -i $(SRC) -/filter_complex $(FILTERGRAPH) diff --git a/tests/ref/fate/filter-noise b/tests/ref/fate/filter-noise new file mode 100644 index 0000000000..80f3c401b0 --- /dev/null +++ b/tests/ref/fate/filter-noise @@ -0,0 +1,55 @@ +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 352x288 +#sar 0: 0/1 +0, 0, 0, 1, 152064, 0x892a0c1e +0, 1, 1, 1, 152064, 0x9245e778 +0, 2, 2, 1, 152064, 0xaa5d7844 +0, 3, 3, 1, 152064, 0x4de2025a +0, 4, 4, 1, 152064, 0x2130380d +0, 5, 5, 1, 152064, 0x0bdb2b36 +0, 6, 6, 1, 152064, 0xe73cfe65 +0, 7, 7, 1, 152064, 0x68cd0cee +0, 8, 8, 1, 152064, 0xd372023b +0, 9, 9, 1, 152064, 0x4f2bbac4 +0, 10, 10, 1, 152064, 0x3d90c9ac +0, 11, 11, 1, 152064, 0x34677f2a +0, 12, 12, 1, 152064, 0x4e762f82 +0, 13, 13, 1, 152064, 0x2b9c23cc +0, 14, 14, 1, 152064, 0x23971006 +0, 15, 15, 1, 152064, 0x28f5911e +0, 16, 16, 1, 152064, 0x393cd0c7 +0, 17, 17, 1, 152064, 0x5274bb41 +0, 18, 18, 1, 152064, 0x4f3ced26 +0, 19, 19, 1, 152064, 0xa4fc5ddb +0, 20, 20, 1, 152064, 0x850e779c +0, 21, 21, 1, 152064, 0x72c8a68b +0, 22, 22, 1, 152064, 0xc31f9f9a +0, 23, 23, 1, 152064, 0xb5b7eb7c +0, 24, 24, 1, 152064, 0xd33d7bcd +0, 25, 25, 1, 152064, 0x552f1b32 +0, 26, 26, 1, 152064, 0x55041902 +0, 27, 27, 1, 152064, 0x5de65afd +0, 28, 28, 1, 152064, 0x378c26c4 +0, 29, 29, 1, 152064, 0xf4a6e70a +0, 30, 30, 1, 152064, 0xa94aecd7 +0, 31, 31, 1, 152064, 0x9e8b4776 +0, 32, 32, 1, 152064, 0x82847f13 +0, 33, 33, 1, 152064, 0x097ffccd +0, 34, 34, 1, 152064, 0xfdadc555 +0, 35, 35, 1, 152064, 0xa2cb1776 +0, 36, 36, 1, 152064, 0xc66db986 +0, 37, 37, 1, 152064, 0x6d1a841d +0, 38, 38, 1, 152064, 0xba12db47 +0, 39, 39, 1, 152064, 0x66e9d146 +0, 40, 40, 1, 152064, 0xc577db0e +0, 41, 41, 1, 152064, 0x8c332083 +0, 42, 42, 1, 152064, 0x6ba7418b +0, 43, 43, 1, 152064, 0x078da319 +0, 44, 44, 1, 152064, 0xbd808671 +0, 45, 45, 1, 152064, 0xae210117 +0, 46, 46, 1, 152064, 0xa90bd668 +0, 47, 47, 1, 152064, 0x10ec47b5 +0, 48, 48, 1, 152064, 0xbcde369e +0, 49, 49, 1, 152064, 0xfa8f5af9 diff --git a/tests/ref/fate/filter-noise-averaged b/tests/ref/fate/filter-noise-averaged new file mode 100644 index 0000000000..ff3575f59e --- /dev/null +++ b/tests/ref/fate/filter-noise-averaged @@ -0,0 +1,55 @@ +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 352x288 +#sar 0: 0/1 +0, 0, 0, 1, 152064, 0x7bbe71b4 +0, 1, 1, 1, 152064, 0xa3af4d9d +0, 2, 2, 1, 152064, 0xbeaada6e +0, 3, 3, 1, 152064, 0xc95f65ef +0, 4, 4, 1, 152064, 0x1a619735 +0, 5, 5, 1, 152064, 0xdbad8777 +0, 6, 6, 1, 152064, 0xaa1c63ac +0, 7, 7, 1, 152064, 0x25977e4b +0, 8, 8, 1, 152064, 0x94bf5f50 +0, 9, 9, 1, 152064, 0x2d231ba1 +0, 10, 10, 1, 152064, 0xf6803ab8 +0, 11, 11, 1, 152064, 0x9b3fe399 +0, 12, 12, 1, 152064, 0x160a91fb +0, 13, 13, 1, 152064, 0x666e8fd3 +0, 14, 14, 1, 152064, 0xb66277f8 +0, 15, 15, 1, 152064, 0xf512f3d2 +0, 16, 16, 1, 152064, 0xa4df2b28 +0, 17, 17, 1, 152064, 0xd3d91f44 +0, 18, 18, 1, 152064, 0x7f67595d +0, 19, 19, 1, 152064, 0x5052c909 +0, 20, 20, 1, 152064, 0xff8de37a +0, 21, 21, 1, 152064, 0x15500eb6 +0, 22, 22, 1, 152064, 0x6a1c0663 +0, 23, 23, 1, 152064, 0x8eaa51d5 +0, 24, 24, 1, 152064, 0xb20fe7b5 +0, 25, 25, 1, 152064, 0x2aa291e4 +0, 26, 26, 1, 152064, 0xc53d8430 +0, 27, 27, 1, 152064, 0x768dc862 +0, 28, 28, 1, 152064, 0x038790f0 +0, 29, 29, 1, 152064, 0xa4df4e9d +0, 30, 30, 1, 152064, 0x55045358 +0, 31, 31, 1, 152064, 0x63f4a552 +0, 32, 32, 1, 152064, 0xdcedec38 +0, 33, 33, 1, 152064, 0x1b3762fe +0, 34, 34, 1, 152064, 0x1fa81dc6 +0, 35, 35, 1, 152064, 0x768d8420 +0, 36, 36, 1, 152064, 0xc16d24d1 +0, 37, 37, 1, 152064, 0x8872eb80 +0, 38, 38, 1, 152064, 0x737f3f80 +0, 39, 39, 1, 152064, 0x5b804314 +0, 40, 40, 1, 152064, 0x465e546e +0, 41, 41, 1, 152064, 0x1c9e81e5 +0, 42, 42, 1, 152064, 0x22e0ac85 +0, 43, 43, 1, 152064, 0xddee0712 +0, 44, 44, 1, 152064, 0x9acdf28a +0, 45, 45, 1, 152064, 0x607072ec +0, 46, 46, 1, 152064, 0x018a466f +0, 47, 47, 1, 152064, 0x29f8b5fc +0, 48, 48, 1, 152064, 0xc6a2a1d6 +0, 49, 49, 1, 152064, 0x7c2cc967 diff --git a/tests/ref/fate/filter-noise-averaged-pattern-uniform b/tests/ref/fate/filter-noise-averaged-pattern-uniform new file mode 100644 index 0000000000..e4412f7d1f --- /dev/null +++ b/tests/ref/fate/filter-noise-averaged-pattern-uniform @@ -0,0 +1,55 @@ +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 352x288 +#sar 0: 0/1 +0, 0, 0, 1, 152064, 0xd4a4a4f1 +0, 1, 1, 1, 152064, 0x65f67db6 +0, 2, 2, 1, 152064, 0xd2080f0a +0, 3, 3, 1, 152064, 0xe51a9a48 +0, 4, 4, 1, 152064, 0xb22dcfee +0, 5, 5, 1, 152064, 0xd495bf18 +0, 6, 6, 1, 152064, 0x6934965e +0, 7, 7, 1, 152064, 0xdd25a6c3 +0, 8, 8, 1, 152064, 0xcb609977 +0, 9, 9, 1, 152064, 0x7b9453b7 +0, 10, 10, 1, 152064, 0xdd915f35 +0, 11, 11, 1, 152064, 0xb7a3172b +0, 12, 12, 1, 152064, 0x8c99c715 +0, 13, 13, 1, 152064, 0x4a96b950 +0, 14, 14, 1, 152064, 0x71c1a713 +0, 15, 15, 1, 152064, 0x7c1a2ab5 +0, 16, 16, 1, 152064, 0xd70b68ac +0, 17, 17, 1, 152064, 0x4f0a51c9 +0, 18, 18, 1, 152064, 0x9ad1880c +0, 19, 19, 1, 152064, 0xf531f8f9 +0, 20, 20, 1, 152064, 0xcf5f11a8 +0, 21, 21, 1, 152064, 0x04904110 +0, 22, 22, 1, 152064, 0xbf283a85 +0, 23, 23, 1, 152064, 0x0d738401 +0, 24, 24, 1, 152064, 0x1d301544 +0, 25, 25, 1, 152064, 0x99cdb4c1 +0, 26, 26, 1, 152064, 0x27d8b0ae +0, 27, 27, 1, 152064, 0x7e5befe9 +0, 28, 28, 1, 152064, 0x426fbd53 +0, 29, 29, 1, 152064, 0x11587ed2 +0, 30, 30, 1, 152064, 0x9dc58795 +0, 31, 31, 1, 152064, 0xadf3e1ad +0, 32, 32, 1, 152064, 0x062e1619 +0, 33, 33, 1, 152064, 0x3c579301 +0, 34, 34, 1, 152064, 0xf4725e7c +0, 35, 35, 1, 152064, 0xe1a1af4a +0, 36, 36, 1, 152064, 0x1659515b +0, 37, 37, 1, 152064, 0x1a7b1c73 +0, 38, 38, 1, 152064, 0x3e8f750e +0, 39, 39, 1, 152064, 0x41aa6861 +0, 40, 40, 1, 152064, 0x753c7390 +0, 41, 41, 1, 152064, 0x102eb90e +0, 42, 42, 1, 152064, 0xdf5fdb48 +0, 43, 43, 1, 152064, 0x14d63cf3 +0, 44, 44, 1, 152064, 0xcfed1fb7 +0, 45, 45, 1, 152064, 0x78b0960e +0, 46, 46, 1, 152064, 0x62e96c3b +0, 47, 47, 1, 152064, 0xd1ffded9 +0, 48, 48, 1, 152064, 0x2e78cf46 +0, 49, 49, 1, 152064, 0x2b5df3e7 diff --git a/tests/ref/fate/filter-noise-averaged-uniform b/tests/ref/fate/filter-noise-averaged-uniform new file mode 100644 index 0000000000..21bc630aaf --- /dev/null +++ b/tests/ref/fate/filter-noise-averaged-uniform @@ -0,0 +1,55 @@ +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 352x288 +#sar 0: 0/1 +0, 0, 0, 1, 152064, 0x69fa852e +0, 1, 1, 1, 152064, 0x1e8c5826 +0, 2, 2, 1, 152064, 0x26b1ec71 +0, 3, 3, 1, 152064, 0xc9627916 +0, 4, 4, 1, 152064, 0xd5e6a956 +0, 5, 5, 1, 152064, 0x823f9a60 +0, 6, 6, 1, 152064, 0xe6c27205 +0, 7, 7, 1, 152064, 0x6fec87cb +0, 8, 8, 1, 152064, 0x3a05755d +0, 9, 9, 1, 152064, 0x2e9b2e7d +0, 10, 10, 1, 152064, 0xf03b3c99 +0, 11, 11, 1, 152064, 0x34f5f7bf +0, 12, 12, 1, 152064, 0xff64a110 +0, 13, 13, 1, 152064, 0xa27d90ab +0, 14, 14, 1, 152064, 0x8ae785a4 +0, 15, 15, 1, 152064, 0xaa5f0897 +0, 16, 16, 1, 152064, 0x6fb545fe +0, 17, 17, 1, 152064, 0xa4872ccf +0, 18, 18, 1, 152064, 0xb3166856 +0, 19, 19, 1, 152064, 0x9a7cde9c +0, 20, 20, 1, 152064, 0xf80df41b +0, 21, 21, 1, 152064, 0xc67025e5 +0, 22, 22, 1, 152064, 0xf5481c43 +0, 23, 23, 1, 152064, 0x3e4d6495 +0, 24, 24, 1, 152064, 0x2d2df77e +0, 25, 25, 1, 152064, 0x3d0b9642 +0, 26, 26, 1, 152064, 0x5c2390b0 +0, 27, 27, 1, 152064, 0x3231ce71 +0, 28, 28, 1, 152064, 0x58569a9d +0, 29, 29, 1, 152064, 0xca8c59cb +0, 30, 30, 1, 152064, 0x6fa267f4 +0, 31, 31, 1, 152064, 0xf038c043 +0, 32, 32, 1, 152064, 0xeac3f37f +0, 33, 33, 1, 152064, 0x60266c23 +0, 34, 34, 1, 152064, 0x8af63cda +0, 35, 35, 1, 152064, 0xebf99071 +0, 36, 36, 1, 152064, 0x7d212a1c +0, 37, 37, 1, 152064, 0xc7faf880 +0, 38, 38, 1, 152064, 0x79485882 +0, 39, 39, 1, 152064, 0x743e4769 +0, 40, 40, 1, 152064, 0xca684e11 +0, 41, 41, 1, 152064, 0x86a4964c +0, 42, 42, 1, 152064, 0x5752ba03 +0, 43, 43, 1, 152064, 0x186c1e43 +0, 44, 44, 1, 152064, 0x6d89fdf9 +0, 45, 45, 1, 152064, 0xf70272f2 +0, 46, 46, 1, 152064, 0x8d0d482d +0, 47, 47, 1, 152064, 0xebcebcc1 +0, 48, 48, 1, 152064, 0xe31baecf +0, 49, 49, 1, 152064, 0xeddad226 diff --git a/tests/ref/fate/filter-noise-pattern b/tests/ref/fate/filter-noise-pattern new file mode 100644 index 0000000000..37a7f916c6 --- /dev/null +++ b/tests/ref/fate/filter-noise-pattern @@ -0,0 +1,55 @@ +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 352x288 +#sar 0: 0/1 +0, 0, 0, 1, 152064, 0x150a3bb5 +0, 1, 1, 1, 152064, 0x52661709 +0, 2, 2, 1, 152064, 0xbc6ea801 +0, 3, 3, 1, 152064, 0x731b3282 +0, 4, 4, 1, 152064, 0x2e3767fc +0, 5, 5, 1, 152064, 0xe7e25a91 +0, 6, 6, 1, 152064, 0x73a92dd8 +0, 7, 7, 1, 152064, 0x722b3d50 +0, 8, 8, 1, 152064, 0x317d31da +0, 9, 9, 1, 152064, 0x9e91eab9 +0, 10, 10, 1, 152064, 0x17c8f8ec +0, 11, 11, 1, 152064, 0x63e0ae94 +0, 12, 12, 1, 152064, 0x56e15f12 +0, 13, 13, 1, 152064, 0x667a53ce +0, 14, 14, 1, 152064, 0xcec83fa8 +0, 15, 15, 1, 152064, 0x622ac075 +0, 16, 16, 1, 152064, 0x3dbeffdc +0, 17, 17, 1, 152064, 0x79a1ea62 +0, 18, 18, 1, 152064, 0x82fb1c9a +0, 19, 19, 1, 152064, 0x314b8db6 +0, 20, 20, 1, 152064, 0x4570a72c +0, 21, 21, 1, 152064, 0x4ab4d5c6 +0, 22, 22, 1, 152064, 0x1d12cf07 +0, 23, 23, 1, 152064, 0xfae41ac1 +0, 24, 24, 1, 152064, 0xcee2ab78 +0, 25, 25, 1, 152064, 0x48d84ae3 +0, 26, 26, 1, 152064, 0xdca8488d +0, 27, 27, 1, 152064, 0x03388a4d +0, 28, 28, 1, 152064, 0xd45e5616 +0, 29, 29, 1, 152064, 0x748116ca +0, 30, 30, 1, 152064, 0xe9951c93 +0, 31, 31, 1, 152064, 0x6d457715 +0, 32, 32, 1, 152064, 0x6468ae54 +0, 33, 33, 1, 152064, 0x12bb2bdb +0, 34, 34, 1, 152064, 0xfea0f515 +0, 35, 35, 1, 152064, 0xf3e846cb +0, 36, 36, 1, 152064, 0x62bae933 +0, 37, 37, 1, 152064, 0x3f30b39f +0, 38, 38, 1, 152064, 0xe2ca0b05 +0, 39, 39, 1, 152064, 0xee7f00bf +0, 40, 40, 1, 152064, 0x60b60aec +0, 41, 41, 1, 152064, 0x9ece4fe1 +0, 42, 42, 1, 152064, 0x27767178 +0, 43, 43, 1, 152064, 0x0d51d283 +0, 44, 44, 1, 152064, 0xdb2db61c +0, 45, 45, 1, 152064, 0xc0223031 +0, 46, 46, 1, 152064, 0x47b505c9 +0, 47, 47, 1, 152064, 0x9892775d +0, 48, 48, 1, 152064, 0x9d126622 +0, 49, 49, 1, 152064, 0x43608a9d diff --git a/tests/ref/fate/filter-noise-pattern-uniform b/tests/ref/fate/filter-noise-pattern-uniform new file mode 100644 index 0000000000..ab9ba60b17 --- /dev/null +++ b/tests/ref/fate/filter-noise-pattern-uniform @@ -0,0 +1,55 @@ +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 352x288 +#sar 0: 0/1 +0, 0, 0, 1, 152064, 0x08c3c40c +0, 1, 1, 1, 152064, 0x0fa89f67 +0, 2, 2, 1, 152064, 0xaff1306b +0, 3, 3, 1, 152064, 0xd277bace +0, 4, 4, 1, 152064, 0xf978f068 +0, 5, 5, 1, 152064, 0x5d27e302 +0, 6, 6, 1, 152064, 0x4cc8b639 +0, 7, 7, 1, 152064, 0x54ccc5c7 +0, 8, 8, 1, 152064, 0xfaaeba3e +0, 9, 9, 1, 152064, 0xb729732b +0, 10, 10, 1, 152064, 0x10198177 +0, 11, 11, 1, 152064, 0xf38336f7 +0, 12, 12, 1, 152064, 0xf23ae77b +0, 13, 13, 1, 152064, 0xe4a4dc30 +0, 14, 14, 1, 152064, 0x2ac6c7f7 +0, 15, 15, 1, 152064, 0x75554919 +0, 16, 16, 1, 152064, 0xb4f98836 +0, 17, 17, 1, 152064, 0xd02272d4 +0, 18, 18, 1, 152064, 0xfb46a4e9 +0, 19, 19, 1, 152064, 0xd1a81623 +0, 20, 20, 1, 152064, 0x5afe2f9a +0, 21, 21, 1, 152064, 0x973d5e29 +0, 22, 22, 1, 152064, 0x522f5777 +0, 23, 23, 1, 152064, 0x8308a307 +0, 24, 24, 1, 152064, 0x382033fa +0, 25, 25, 1, 152064, 0x6c9cd34c +0, 26, 26, 1, 152064, 0xe6f5d0c9 +0, 27, 27, 1, 152064, 0xeefd12ac +0, 28, 28, 1, 152064, 0x73b9de68 +0, 29, 29, 1, 152064, 0x0d849f27 +0, 30, 30, 1, 152064, 0xd822a4e4 +0, 31, 31, 1, 152064, 0xdeffff46 +0, 32, 32, 1, 152064, 0xf57936bb +0, 33, 33, 1, 152064, 0x8469b43f +0, 34, 34, 1, 152064, 0x01be7d81 +0, 35, 35, 1, 152064, 0xc440cf1a +0, 36, 36, 1, 152064, 0x677471b9 +0, 37, 37, 1, 152064, 0x84473c0e +0, 38, 38, 1, 152064, 0x6bad935e +0, 39, 39, 1, 152064, 0x212788fb +0, 40, 40, 1, 152064, 0x200b933f +0, 41, 41, 1, 152064, 0x5932d821 +0, 42, 42, 1, 152064, 0x1cb7f9b7 +0, 43, 43, 1, 152064, 0xbf8d5b00 +0, 44, 44, 1, 152064, 0xcbe73e8e +0, 45, 45, 1, 152064, 0xd00db88a +0, 46, 46, 1, 152064, 0x54b38e13 +0, 47, 47, 1, 152064, 0x9690ffe4 +0, 48, 48, 1, 152064, 0xde11ee97 +0, 49, 49, 1, 152064, 0xba8e1312 diff --git a/tests/ref/fate/filter-noise-seed b/tests/ref/fate/filter-noise-seed new file mode 100644 index 0000000000..00f24d9dce --- /dev/null +++ b/tests/ref/fate/filter-noise-seed @@ -0,0 +1,55 @@ +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 352x288 +#sar 0: 0/1 +0, 0, 0, 1, 152064, 0x52e8dd57 +0, 1, 1, 1, 152064, 0x223fb6e6 +0, 2, 2, 1, 152064, 0xecdb4801 +0, 3, 3, 1, 152064, 0xe2fdd664 +0, 4, 4, 1, 152064, 0xff170a67 +0, 5, 5, 1, 152064, 0x41e4fbe1 +0, 6, 6, 1, 152064, 0xc9adce15 +0, 7, 7, 1, 152064, 0xdcabdba2 +0, 8, 8, 1, 152064, 0x3929d595 +0, 9, 9, 1, 152064, 0x4f008a89 +0, 10, 10, 1, 152064, 0xe7fd9bef +0, 11, 11, 1, 152064, 0xb77f53c6 +0, 12, 12, 1, 152064, 0x92ba00b7 +0, 13, 13, 1, 152064, 0x7d5ef256 +0, 14, 14, 1, 152064, 0x17b6e2c8 +0, 15, 15, 1, 152064, 0xc5b76136 +0, 16, 16, 1, 152064, 0xc94ba0a0 +0, 17, 17, 1, 152064, 0x0ed48a66 +0, 18, 18, 1, 152064, 0xa116b9b6 +0, 19, 19, 1, 152064, 0xb0112e76 +0, 20, 20, 1, 152064, 0x6d774a48 +0, 21, 21, 1, 152064, 0x64427834 +0, 22, 22, 1, 152064, 0xcf3570e7 +0, 23, 23, 1, 152064, 0x9984bade +0, 24, 24, 1, 152064, 0x7ee14f34 +0, 25, 25, 1, 152064, 0x45bcef7e +0, 26, 26, 1, 152064, 0x4acaf28a +0, 27, 27, 1, 152064, 0x25f22ef6 +0, 28, 28, 1, 152064, 0x0323fb26 +0, 29, 29, 1, 152064, 0xcc96b7a2 +0, 30, 30, 1, 152064, 0x5f49c306 +0, 31, 31, 1, 152064, 0xf0511be3 +0, 32, 32, 1, 152064, 0x131c4da6 +0, 33, 33, 1, 152064, 0x2257d4cf +0, 34, 34, 1, 152064, 0x22c691c0 +0, 35, 35, 1, 152064, 0x974de6b7 +0, 36, 36, 1, 152064, 0xa4818cbf +0, 37, 37, 1, 152064, 0xf2545927 +0, 38, 38, 1, 152064, 0xa5e0b042 +0, 39, 39, 1, 152064, 0x0b95a34d +0, 40, 40, 1, 152064, 0x0571b27b +0, 41, 41, 1, 152064, 0x2ddef061 +0, 42, 42, 1, 152064, 0xd88a132b +0, 43, 43, 1, 152064, 0x4c3a76d2 +0, 44, 44, 1, 152064, 0x4e785566 +0, 45, 45, 1, 152064, 0xfebed564 +0, 46, 46, 1, 152064, 0x3516abfb +0, 47, 47, 1, 152064, 0x1d3f1cc3 +0, 48, 48, 1, 152064, 0x89450a59 +0, 49, 49, 1, 152064, 0x62842e7a diff --git a/tests/ref/fate/filter-noise-slice b/tests/ref/fate/filter-noise-slice new file mode 100644 index 0000000000..9d89c4ffa6 --- /dev/null +++ b/tests/ref/fate/filter-noise-slice @@ -0,0 +1,6 @@ +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 352x4100 +#sar 0: 1/1 +0, 0, 0, 1, 2164800, 0x14c51daa diff --git a/tests/ref/fate/filter-noise-strength0 b/tests/ref/fate/filter-noise-strength0 new file mode 100644 index 0000000000..b8a2b81b3f --- /dev/null +++ b/tests/ref/fate/filter-noise-strength0 @@ -0,0 +1,55 @@ +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 352x288 +#sar 0: 1/1 +0, 0, 0, 1, 152064, 0xdd64f92b +0, 1, 1, 1, 152064, 0xdd64f92b +0, 2, 2, 1, 152064, 0xdd64f92b +0, 3, 3, 1, 152064, 0xdd64f92b +0, 4, 4, 1, 152064, 0xdd64f92b +0, 5, 5, 1, 152064, 0xdd64f92b +0, 6, 6, 1, 152064, 0xdd64f92b +0, 7, 7, 1, 152064, 0xdd64f92b +0, 8, 8, 1, 152064, 0xdd64f92b +0, 9, 9, 1, 152064, 0xdd64f92b +0, 10, 10, 1, 152064, 0xdd64f92b +0, 11, 11, 1, 152064, 0xdd64f92b +0, 12, 12, 1, 152064, 0xdd64f92b +0, 13, 13, 1, 152064, 0xdd64f92b +0, 14, 14, 1, 152064, 0xdd64f92b +0, 15, 15, 1, 152064, 0xdd64f92b +0, 16, 16, 1, 152064, 0xdd64f92b +0, 17, 17, 1, 152064, 0xdd64f92b +0, 18, 18, 1, 152064, 0xdd64f92b +0, 19, 19, 1, 152064, 0xdd64f92b +0, 20, 20, 1, 152064, 0xdd64f92b +0, 21, 21, 1, 152064, 0xdd64f92b +0, 22, 22, 1, 152064, 0xdd64f92b +0, 23, 23, 1, 152064, 0xdd64f92b +0, 24, 24, 1, 152064, 0xdd64f92b +0, 25, 25, 1, 152064, 0xdd64f92b +0, 26, 26, 1, 152064, 0xdd64f92b +0, 27, 27, 1, 152064, 0xdd64f92b +0, 28, 28, 1, 152064, 0xdd64f92b +0, 29, 29, 1, 152064, 0xdd64f92b +0, 30, 30, 1, 152064, 0xdd64f92b +0, 31, 31, 1, 152064, 0xdd64f92b +0, 32, 32, 1, 152064, 0xdd64f92b +0, 33, 33, 1, 152064, 0xdd64f92b +0, 34, 34, 1, 152064, 0xdd64f92b +0, 35, 35, 1, 152064, 0xdd64f92b +0, 36, 36, 1, 152064, 0xdd64f92b +0, 37, 37, 1, 152064, 0xdd64f92b +0, 38, 38, 1, 152064, 0xdd64f92b +0, 39, 39, 1, 152064, 0xdd64f92b +0, 40, 40, 1, 152064, 0xdd64f92b +0, 41, 41, 1, 152064, 0xdd64f92b +0, 42, 42, 1, 152064, 0xdd64f92b +0, 43, 43, 1, 152064, 0xdd64f92b +0, 44, 44, 1, 152064, 0xdd64f92b +0, 45, 45, 1, 152064, 0xdd64f92b +0, 46, 46, 1, 152064, 0xdd64f92b +0, 47, 47, 1, 152064, 0xdd64f92b +0, 48, 48, 1, 152064, 0xdd64f92b +0, 49, 49, 1, 152064, 0xdd64f92b diff --git a/tests/ref/fate/filter-noise-temporal b/tests/ref/fate/filter-noise-temporal new file mode 100644 index 0000000000..119540dccc --- /dev/null +++ b/tests/ref/fate/filter-noise-temporal @@ -0,0 +1,55 @@ +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 352x288 +#sar 0: 0/1 +0, 0, 0, 1, 152064, 0x892a0c1e +0, 1, 1, 1, 152064, 0x0b3e078b +0, 2, 2, 1, 152064, 0x2c84918a +0, 3, 3, 1, 152064, 0x21ae0ef3 +0, 4, 4, 1, 152064, 0x1674444c +0, 5, 5, 1, 152064, 0x29983b36 +0, 6, 6, 1, 152064, 0x244c0592 +0, 7, 7, 1, 152064, 0xcf4c0d38 +0, 8, 8, 1, 152064, 0xef461750 +0, 9, 9, 1, 152064, 0x37d1c0dc +0, 10, 10, 1, 152064, 0x51edddd1 +0, 11, 11, 1, 152064, 0x6b8c94ca +0, 12, 12, 1, 152064, 0x6fd83c1d +0, 13, 13, 1, 152064, 0xf00b1f5c +0, 14, 14, 1, 152064, 0x759e1cff +0, 15, 15, 1, 152064, 0x729da71b +0, 16, 16, 1, 152064, 0x7a82d293 +0, 17, 17, 1, 152064, 0x01cfc073 +0, 18, 18, 1, 152064, 0x20adf4c4 +0, 19, 19, 1, 152064, 0xede96d4c +0, 20, 20, 1, 152064, 0x07167a4b +0, 21, 21, 1, 152064, 0xbd1cac99 +0, 22, 22, 1, 152064, 0x86adaf8e +0, 23, 23, 1, 152064, 0x7655073d +0, 24, 24, 1, 152064, 0xb03881d0 +0, 25, 25, 1, 152064, 0x9cda13de +0, 26, 26, 1, 152064, 0xa83b2373 +0, 27, 27, 1, 152064, 0x5592687a +0, 28, 28, 1, 152064, 0x995f258b +0, 29, 29, 1, 152064, 0x8c6fed6a +0, 30, 30, 1, 152064, 0x34f4fd01 +0, 31, 31, 1, 152064, 0xe4b55caa +0, 32, 32, 1, 152064, 0xfd548221 +0, 33, 33, 1, 152064, 0xb34afc2e +0, 34, 34, 1, 152064, 0x22f5dbfb +0, 35, 35, 1, 152064, 0xefc51d79 +0, 36, 36, 1, 152064, 0xf62bc51d +0, 37, 37, 1, 152064, 0x2c4d9a63 +0, 38, 38, 1, 152064, 0x4cbce26b +0, 39, 39, 1, 152064, 0x9e80009a +0, 40, 40, 1, 152064, 0x5b3ad8d6 +0, 41, 41, 1, 152064, 0x257333e4 +0, 42, 42, 1, 152064, 0x296e4c7e +0, 43, 43, 1, 152064, 0x0455a9d6 +0, 44, 44, 1, 152064, 0x45ca88f0 +0, 45, 45, 1, 152064, 0xf46cfca0 +0, 46, 46, 1, 152064, 0x1daeec5f +0, 47, 47, 1, 152064, 0xa4de3ffc +0, 48, 48, 1, 152064, 0xf79e5245 +0, 49, 49, 1, 152064, 0xd4c65edc diff --git a/tests/ref/fate/filter-noise-uniform b/tests/ref/fate/filter-noise-uniform new file mode 100644 index 0000000000..a3d472eaff --- /dev/null +++ b/tests/ref/fate/filter-noise-uniform @@ -0,0 +1,55 @@ +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 352x288 +#sar 0: 0/1 +0, 0, 0, 1, 152064, 0xd14c3123 +0, 1, 1, 1, 152064, 0xe6aa0c71 +0, 2, 2, 1, 152064, 0xb2f79d5c +0, 3, 3, 1, 152064, 0x8a8f27de +0, 4, 4, 1, 152064, 0x0fa25d80 +0, 5, 5, 1, 152064, 0xf62a5022 +0, 6, 6, 1, 152064, 0xb1bb233f +0, 7, 7, 1, 152064, 0x73c632dd +0, 8, 8, 1, 152064, 0x5e272746 +0, 9, 9, 1, 152064, 0x81c8e02b +0, 10, 10, 1, 152064, 0x2b6aee6f +0, 11, 11, 1, 152064, 0x753aa3fe +0, 12, 12, 1, 152064, 0x37015486 +0, 13, 13, 1, 152064, 0x9e4f4942 +0, 14, 14, 1, 152064, 0x68ac3501 +0, 15, 15, 1, 152064, 0xde12b612 +0, 16, 16, 1, 152064, 0xaea4f53d +0, 17, 17, 1, 152064, 0x6ff5dfcc +0, 18, 18, 1, 152064, 0xc08811fc +0, 19, 19, 1, 152064, 0x1b418338 +0, 20, 20, 1, 152064, 0x84d09c8e +0, 21, 21, 1, 152064, 0x874fcb38 +0, 22, 22, 1, 152064, 0xd2cbc470 +0, 23, 23, 1, 152064, 0xc9f4101a +0, 24, 24, 1, 152064, 0x6068a103 +0, 25, 25, 1, 152064, 0x6235405d +0, 26, 26, 1, 152064, 0x17af3de5 +0, 27, 27, 1, 152064, 0x6fbb7fac +0, 28, 28, 1, 152064, 0x11674b79 +0, 29, 29, 1, 152064, 0xc5a00c36 +0, 30, 30, 1, 152064, 0x953911fe +0, 31, 31, 1, 152064, 0x5fe96c4e +0, 32, 32, 1, 152064, 0x723fa3b4 +0, 33, 33, 1, 152064, 0x92ae2153 +0, 34, 34, 1, 152064, 0xcd1eea7e +0, 35, 35, 1, 152064, 0xcae23c24 +0, 36, 36, 1, 152064, 0x0ddcdebe +0, 37, 37, 1, 152064, 0x78a2a917 +0, 38, 38, 1, 152064, 0x8b6e006e +0, 39, 39, 1, 152064, 0x0a48f602 +0, 40, 40, 1, 152064, 0xf95d004c +0, 41, 41, 1, 152064, 0x2c89452c +0, 42, 42, 1, 152064, 0x9fb766c4 +0, 43, 43, 1, 152064, 0xf522c7fb +0, 44, 44, 1, 152064, 0xb6bcab8e +0, 45, 45, 1, 152064, 0x56cf2599 +0, 46, 46, 1, 152064, 0x0937fb0e +0, 47, 47, 1, 152064, 0xbf2d6cee +0, 48, 48, 1, 152064, 0x0c645ba7 +0, 49, 49, 1, 152064, 0xbcc18015 -- 2.52.0 >From 330f726e51b705537f677db19a42f99702ba6a6d Mon Sep 17 00:00:00 2001 From: i-Amogh <[email protected]> Date: Mon, 13 Apr 2026 04:18:31 +0530 Subject: [PATCH 2/2] tests/fate/filter-video: Add FATE test for libavfilter/vsink_nullsink.c Added a portable FATE test for the nullsink video sink filter. The test uses a split filtergraph with testsrc2 to verify that nullsink properly accepts and discards video frames while allowing the other split output to be captured and verified via framecrc. Signed-off-by: i-Amogh <[email protected]> --- tests/fate/filter-video.mak | 3 +++ tests/ref/fate/filter-nullsink | 10 ++++++++++ 2 files changed, 13 insertions(+) create mode 100644 tests/ref/fate/filter-nullsink diff --git a/tests/fate/filter-video.mak b/tests/fate/filter-video.mak index add2e14eb5..4db1371739 100644 --- a/tests/fate/filter-video.mak +++ b/tests/fate/filter-video.mak @@ -552,6 +552,9 @@ FATE_FILTER_VSYNTH-$(call ALLYES, TESTSRC_FILTER SCALE_FILTER NULLSINK_FILTER FR fate-filter-scale2ref_keep_aspect: tests/data/filtergraphs/scale2ref_keep_aspect fate-filter-scale2ref_keep_aspect: CMD = framemd5 -frames:v 5 -/filter_complex $(TARGET_PATH)/tests/data/filtergraphs/scale2ref_keep_aspect -map "[main]" +FATE_FILTER-$(call ALLYES, TESTSRC2_FILTER FORMAT_FILTER NULLSINK_FILTER SPLIT_FILTER PCM_S16LE_ENCODER FRAMECRC_MUXER PIPE_PROTOCOL FILE_PROTOCOL) += fate-filter-nullsink +fate-filter-nullsink: CMD = framecrc -lavfi "testsrc2=r=7:d=10,format=yuv420p,split[out1][out2];[out2]nullsink" -map "[out1]" -frames:v 5 + FATE_FILTER_VSYNTH-$(call FILTERDEMDEC, SCALE, RAWVIDEO, RAWVIDEO) += fate-filter-scalechroma fate-filter-scalechroma: tests/data/vsynth1.yuv fate-filter-scalechroma: CMD = framecrc -flags bitexact -s 352x288 -pix_fmt yuv444p -i $(TARGET_PATH)/tests/data/vsynth1.yuv -pix_fmt yuv420p -sws_flags +bitexact -vf scale=out_chroma_loc=bottomleft diff --git a/tests/ref/fate/filter-nullsink b/tests/ref/fate/filter-nullsink new file mode 100644 index 0000000000..473a2d3073 --- /dev/null +++ b/tests/ref/fate/filter-nullsink @@ -0,0 +1,10 @@ +#tb 0: 1/7 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 320x240 +#sar 0: 1/1 +0, 0, 0, 1, 115200, 0xeba70ff3 +0, 1, 1, 1, 115200, 0xb986bcbd +0, 2, 2, 1, 115200, 0x8567f6cf +0, 3, 3, 1, 115200, 0xed18e21f +0, 4, 4, 1, 115200, 0x0054f5dd -- 2.52.0 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
