[FFmpeg-devel] [PATCH 19/19] fate/all: add missing crc/framecrc/md5/framemd5/pipe dependencies
Nicolas Gaullier
nicolas.gaullier at cji.paris
Sun Oct 27 03:09:35 EEST 2024
When CMD is crc/framecrc, always use the macros CRC/FRAMECRC, even if it
includes unnecessary requirements for rawvideo/pcm_s16le encoders (as
actually noticed in a comment of the Makefile).
Signed-off-by: Nicolas Gaullier <nicolas.gaullier at cji.paris>
---
tests/Makefile | 3 ++
tests/fate/aac.mak | 2 +-
tests/fate/ac3.mak | 4 +-
tests/fate/acodec.mak | 4 +-
tests/fate/adpcm.mak | 38 +++++++--------
tests/fate/alac.mak | 2 +-
tests/fate/als.mak | 3 +-
tests/fate/amrnb.mak | 2 +-
tests/fate/amrwb.mak | 2 +-
tests/fate/apng.mak | 2 +-
tests/fate/atrac.mak | 6 +--
tests/fate/audio.mak | 20 ++++----
tests/fate/caf.mak | 2 +-
tests/fate/demux.mak | 90 +++++++++++++++++------------------
tests/fate/dpcm.mak | 4 +-
tests/fate/ffmpeg.mak | 6 +--
tests/fate/fifo-muxer.mak | 2 +-
tests/fate/filter-audio.mak | 16 ++++---
tests/fate/filter-video.mak | 4 +-
tests/fate/flac.mak | 2 +-
tests/fate/gapless.mak | 2 +-
tests/fate/h264.mak | 8 ++--
tests/fate/hlsenc.mak | 2 +
tests/fate/image.mak | 4 +-
tests/fate/imf.mak | 3 +-
tests/fate/indeo.mak | 18 ++++---
tests/fate/lavf-container.mak | 28 +++++------
tests/fate/lavf-video.mak | 2 +-
tests/fate/libswresample.mak | 1 +
tests/fate/lossless-audio.mak | 8 ++--
tests/fate/matroska.mak | 24 +++++-----
tests/fate/microsoft.mak | 2 +-
tests/fate/monkeysaudio.mak | 3 +-
tests/fate/mov.mak | 6 +--
tests/fate/mp3.mak | 2 +-
tests/fate/mpc.mak | 6 +--
tests/fate/mpegps.mak | 2 +-
tests/fate/oma.mak | 2 +-
tests/fate/pcm.mak | 9 ++--
tests/fate/qoa.mak | 6 +--
tests/fate/real.mak | 16 +++----
tests/fate/segment.mak | 6 +--
tests/fate/subtitles.mak | 3 +-
tests/fate/video.mak | 2 +-
tests/fate/voice.mak | 16 +++----
tests/fate/vpx.mak | 2 +-
tests/fate/vqf.mak | 4 +-
tests/fate/wma.mak | 16 +++----
tests/fate/xvid.mak | 2 +-
49 files changed, 215 insertions(+), 204 deletions(-)
diff --git a/tests/Makefile b/tests/Makefile
index da5cd1ccde..03e80d619f 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -106,6 +106,9 @@ FRAMEMD5 = $(call ALLYES, $(1:%=%_DEMUXER) $(2:%=%_DECODER) $(3) \
FRAMECRC = $(call ALLYES, $(1:%=%_DEMUXER) $(2:%=%_DECODER) $(3) \
PCM_S16LE_ENCODER RAWVIDEO_ENCODER FRAMECRC_MUXER \
PIPE_PROTOCOL FILE_PROTOCOL)
+CRC = $(call ALLYES, $(1:%=%_DEMUXER) $(2:%=%_DECODER) $(3) \
+ PCM_S16LE_ENCODER RAWVIDEO_ENCODER CRC_MUXER \
+ PIPE_PROTOCOL FILE_PROTOCOL)
# Variant of DEMDEC for use with the "pcm" command.
PCM = $(call ALLYES, $(1:%=%_DEMUXER) $(2:%=%_DECODER) $(3) FILE_PROTOCOL \
diff --git a/tests/fate/aac.mak b/tests/fate/aac.mak
index de7b912e20..56c35c88f9 100644
--- a/tests/fate/aac.mak
+++ b/tests/fate/aac.mak
@@ -263,7 +263,7 @@ $(FATE_AAC_ALL): FUZZ = 2
FATE_AAC_ENCODE-$(call TRANSCODE, AAC, ADTS AAC, WAV_MUXER WAV_DEMUXER PCM_S16LE_DECODER ARESAMPLE_FILTER) += $(FATE_AAC_ENCODE)
-FATE_AAC_BSF-$(call DEMDEC, AAC MATROSKA, AAC, AAC_ADTSTOASC_BSF MATROSKA_MUXER) += fate-aac-autobsf-adtstoasc
+FATE_AAC_BSF-$(call FRAMECRC, AAC MATROSKA, AAC, AAC_ADTSTOASC_BSF MATROSKA_MUXER) += fate-aac-autobsf-adtstoasc
FATE_SAMPLES_FFMPEG += $(FATE_AAC_ALL) $(FATE_AAC_ENCODE-yes) $(FATE_AAC_BSF-yes)
diff --git a/tests/fate/ac3.mak b/tests/fate/ac3.mak
index 714ae31990..a2e4522824 100644
--- a/tests/fate/ac3.mak
+++ b/tests/fate/ac3.mak
@@ -65,8 +65,8 @@ fate-eac3-5: REF = $(SAMPLES)/eac3/the_great_wall_7.1.pcm
$(FATE_AC3) $(FATE_EAC3): CMP = oneoff
-FATE_AC3-$(call DEMDEC, AC3, AC3 AC3_FIXED, PCM_S16LE_MUXER ARESAMPLE_FILTER) += $(FATE_AC3)
-FATE_EAC3-$(call DEMDEC, EAC3, EAC3, PCM_S16LE_MUXER ARESAMPLE_FILTER) += $(FATE_EAC3)
+FATE_AC3-$(call PCM, AC3, AC3 AC3_FIXED, PCM_S16LE_MUXER ARESAMPLE_FILTER) += $(FATE_AC3)
+FATE_EAC3-$(call PCM, EAC3, EAC3, PCM_S16LE_MUXER ARESAMPLE_FILTER) += $(FATE_EAC3)
FATE_AC3-$(call ENCDEC, AC3, AC3, WAV_MUXER WAV_DEMUXER ARESAMPLE_FILTER PCM_S16LE_ENCODER PIPE_PROTOCOL) += fate-ac3-encode
fate-ac3-encode: CMD = enc_dec_pcm ac3 wav s16le $(subst $(SAMPLES),$(TARGET_SAMPLES),$(REF)) -c:a ac3 -b:a 128k
diff --git a/tests/fate/acodec.mak b/tests/fate/acodec.mak
index 7b09e3bd63..54884371ac 100644
--- a/tests/fate/acodec.mak
+++ b/tests/fate/acodec.mak
@@ -121,7 +121,7 @@ fate-acodec-dca: CMD = md5 -i $(TARGET_PATH)/$(SRC) -c:a dca -strict -2 -f dts -
fate-acodec-dca: CMP = oneline
fate-acodec-dca: REF = 2aa580ac67820fce4f581b96ebb34acc
-FATE_ACODEC-$(call ENCDEC, DCA, WAV, ARESAMPLE_FILTER) += fate-acodec-dca2
+FATE_ACODEC-$(call ENCDEC, DCA, WAV, ARESAMPLE_FILTER PIPE_PROTOCOL) += fate-acodec-dca2
fate-acodec-dca2: CMD = enc_dec_pcm dts wav s16le $(SRC) -c:a dca -strict -2 -flags +bitexact -af aresample
fate-acodec-dca2: REF = $(SRC)
fate-acodec-dca2: CMP = stddev
@@ -144,7 +144,7 @@ fate-acodec-g723_1: CODEC = g723_1
fate-acodec-g723_1: ENCOPTS = -b:a 6.3k
fate-acodec-g723_1: CMP_SHIFT = 8
-FATE_ACODEC-$(call ENCDEC, RA_144, WAV) += fate-acodec-ra144
+FATE_ACODEC-$(call ENCDEC, RA_144, WAV, PIPE_PROTOCOL) += fate-acodec-ra144
fate-acodec-ra144: tests/data/asynth-8000-1.wav
fate-acodec-ra144: SRC = tests/data/asynth-8000-1.wav
fate-acodec-ra144: CMD = enc_dec_pcm rm wav s16le $(SRC) -c:a real_144
diff --git a/tests/fate/adpcm.mak b/tests/fate/adpcm.mak
index 7265211f09..70e59191aa 100644
--- a/tests/fate/adpcm.mak
+++ b/tests/fate/adpcm.mak
@@ -1,7 +1,7 @@
-FATE_ADPCM-$(call DEMDEC, FOURXM, ADPCM_4XM, ARESAMPLE_FILTER) += fate-adpcm-4xm
+FATE_ADPCM-$(call FRAMECRC, FOURXM, ADPCM_4XM, ARESAMPLE_FILTER) += fate-adpcm-4xm
fate-adpcm-4xm: CMD = framecrc -i $(TARGET_SAMPLES)/4xm/dracula.4xm -vn -map 0:6 -af aresample
-FATE_ADPCM-$(call DEMDEC, AST, ADPCM_AFC, ARESAMPLE_FILTER) += fate-adpcm-afc
+FATE_ADPCM-$(call FRAMECRC, AST, ADPCM_AFC, ARESAMPLE_FILTER) += fate-adpcm-afc
fate-adpcm-afc: CMD = framecrc -i $(TARGET_SAMPLES)/ast/demo11_02_partial.ast -af aresample
FATE_ADPCM-$(call DEMDEC, WAV, ADPCM_CT) += fate-adpcm-creative
@@ -16,28 +16,28 @@ fate-adpcm-creative-8-2.6bit: CMD = md5 -i $(TARGET_SAMPLES)/creative/BBC_3BIT.V
FATE_ADPCM-$(call DEMDEC, VOC, ADPCM_SBPRO_4) += fate-adpcm-creative-8-4bit
fate-adpcm-creative-8-4bit: CMD = md5 -i $(TARGET_SAMPLES)/creative/BBC_4BIT.VOC -f s16le
-FATE_ADPCM-$(call DEMDEC, ADP, ADPCM_DTK, ARESAMPLE_FILTER) += fate-adpcm-dtk
+FATE_ADPCM-$(call FRAMECRC, ADP, ADPCM_DTK, ARESAMPLE_FILTER) += fate-adpcm-dtk
fate-adpcm-dtk: CMD = framecrc -i $(TARGET_SAMPLES)/adp/shakespr_partial.adp -f s16le -af aresample
-FATE_ADPCM-$(call DEMDEC, EA, ADPCM_EA) += fate-adpcm-ea-1
+FATE_ADPCM-$(call FRAMECRC, EA, ADPCM_EA) += fate-adpcm-ea-1
fate-adpcm-ea-1: CMD = framecrc -i $(TARGET_SAMPLES)/ea-wve/networkBackbone-partial.wve -frames:a 26 -vn
-FATE_ADPCM-$(call DEMDEC, EA, ADPCM_EA) += fate-adpcm-ea-2
+FATE_ADPCM-$(call FRAMECRC, EA, ADPCM_EA) += fate-adpcm-ea-2
fate-adpcm-ea-2: CMD = framecrc -i $(TARGET_SAMPLES)/ea-dct/NFS2Esprit-partial.dct -vn
-FATE_ADPCM-$(call DEMDEC, XA, ADPCM_EA_MAXIS_XA) += fate-adpcm-ea-maxis-xa
+FATE_ADPCM-$(call FRAMECRC, XA, ADPCM_EA_MAXIS_XA) += fate-adpcm-ea-maxis-xa
fate-adpcm-ea-maxis-xa: CMD = framecrc -i $(TARGET_SAMPLES)/maxis-xa/SC2KBUG.XA -frames:a 30
-FATE_ADPCM-$(call DEMDEC, EA, ADPCM_EA_R1, ARESAMPLE_FILTER) += fate-adpcm-ea-r1
+FATE_ADPCM-$(call FRAMECRC, EA, ADPCM_EA_R1, ARESAMPLE_FILTER) += fate-adpcm-ea-r1
fate-adpcm-ea-r1: CMD = framecrc -i $(TARGET_SAMPLES)/ea-mad/NFS6LogoE.mad -vn -af aresample
-FATE_ADPCM-$(call DEMDEC, EA, ADPCM_EA_R2, ARESAMPLE_FILTER) += fate-adpcm-ea-r2
+FATE_ADPCM-$(call CRC, EA, ADPCM_EA_R2, ARESAMPLE_FILTER) += fate-adpcm-ea-r2
fate-adpcm-ea-r2: CMD = crc -i $(TARGET_SAMPLES)/ea-mpc/THX_logo.mpc -vn -af aresample
-FATE_ADPCM-$(call DEMDEC, EA, ADPCM_EA_R3, ARESAMPLE_FILTER) += fate-adpcm-ea-r3
+FATE_ADPCM-$(call CRC, EA, ADPCM_EA_R3, ARESAMPLE_FILTER) += fate-adpcm-ea-r3
fate-adpcm-ea-r3: CMD = crc -i $(TARGET_SAMPLES)/ea-vp6/THX_logo.vp6 -vn -af aresample
-FATE_ADPCM-$(call DEMDEC, AVI, ADPCM_IMA_AMV) += fate-adpcm-ima-amv
+FATE_ADPCM-$(call FRAMECRC, AVI, ADPCM_IMA_AMV) += fate-adpcm-ima-amv
fate-adpcm-ima-amv: CMD = framecrc -i $(TARGET_SAMPLES)/amv/MTV_high_res_320x240_sample_Penguin_Joke_MTV_from_WMV.amv -t 10 -vn
FATE_ADPCM-$(call DEMDEC, APC, ADPCM_IMA_APC) += fate-adpcm-ima-apc
@@ -49,10 +49,10 @@ fate-adpcm-ima-dk3: CMD = md5 -i $(TARGET_SAMPLES)/duck/sop-audio-only.avi -f s1
FATE_ADPCM-$(call DEMDEC, AVI, ADPCM_IMA_DK4) += fate-adpcm-ima-dk4
fate-adpcm-ima-dk4: CMD = md5 -i $(TARGET_SAMPLES)/duck/salsa-audio-only.avi -f s16le
-FATE_ADPCM-$(call DEMDEC, EA, ADPCM_IMA_EA_EACS) += fate-adpcm-ima-ea-eacs
+FATE_ADPCM-$(call FRAMECRC, EA, ADPCM_IMA_EA_EACS) += fate-adpcm-ima-ea-eacs
fate-adpcm-ima-ea-eacs: CMD = framecrc -i $(TARGET_SAMPLES)/ea-tgv/INTRO8K-partial.TGV -vn
-FATE_ADPCM-$(call DEMDEC, EA, ADPCM_IMA_EA_SEAD) += fate-adpcm-ima-ea-sead
+FATE_ADPCM-$(call FRAMECRC, EA, ADPCM_IMA_EA_SEAD) += fate-adpcm-ima-ea-sead
fate-adpcm-ima-ea-sead: CMD = framecrc -i $(TARGET_SAMPLES)/ea-tgv/INTEL_S.TGV -vn
FATE_ADPCM-$(call DEMDEC, ISS, ADPCM_IMA_ISS) += fate-adpcm-ima-iss
@@ -64,31 +64,31 @@ fate-adpcm-ima-oki: CMD = md5 -i $(TARGET_SAMPLES)/oki/test.wav -f s16le
FATE_ADPCM-$(call DEMDEC, RSD, ADPCM_IMA_RAD) += fate-adpcm-ima-rad
fate-adpcm-ima-rad: CMD = md5 -i $(TARGET_SAMPLES)/rsd/hit_run_partial.rsd -f s16le
-FATE_ADPCM-$(call DEMDEC, SMJPEG, ADPCM_IMA_SMJPEG) += fate-adpcm-ima-smjpeg
+FATE_ADPCM-$(call FRAMECRC, SMJPEG, ADPCM_IMA_SMJPEG) += fate-adpcm-ima-smjpeg
fate-adpcm-ima-smjpeg: CMD = framecrc -i $(TARGET_SAMPLES)/smjpeg/scenwin.mjpg -vn
FATE_ADPCM-$(call DEMDEC, MOV, ADPCM_IMA_WAV, ARESAMPLE_FILTER) += fate-adpcm-ima_wav-stereo
fate-adpcm-ima_wav-stereo: CMD = md5 -i $(TARGET_SAMPLES)/qt-surge-suite/surge-2-16-L-ms11.mov -f s16le -af aresample
-FATE_ADPCM-$(call DEMDEC, WSVQA, ADPCM_IMA_WS) += fate-adpcm-ima-ws
+FATE_ADPCM-$(call FRAMECRC, WSVQA, ADPCM_IMA_WS) += fate-adpcm-ima-ws
fate-adpcm-ima-ws: CMD = framecrc -i $(TARGET_SAMPLES)/vqa/cc-demo1-partial.vqa -vn
-FATE_ADPCM-$(call DEMDEC, WSVQA, ADPCM_IMA_WS, ARESAMPLE_FILTER) += fate-adpcm-ima-ws-vqa3
+FATE_ADPCM-$(call FRAMECRC, WSVQA, ADPCM_IMA_WS, ARESAMPLE_FILTER) += fate-adpcm-ima-ws-vqa3
fate-adpcm-ima-ws-vqa3: CMD = framecrc -i $(TARGET_SAMPLES)/vqa/small-cut-v3.vqa -vn -af aresample
-FATE_ADPCM-$(call DEMDEC, DXA, ADPCM_MS) += fate-adpcm-ms-mono
+FATE_ADPCM-$(call FRAMECRC, DXA, ADPCM_MS) += fate-adpcm-ms-mono
fate-adpcm-ms-mono: CMD = framecrc -i $(TARGET_SAMPLES)/dxa/meetsquid.dxa -t 2 -vn
FATE_ADPCM-$(call DEMDEC, MOV, ADPCM_MS) += fate-adpcm_ms-stereo
fate-adpcm_ms-stereo: CMD = md5 -i $(TARGET_SAMPLES)/qt-surge-suite/surge-2-16-L-ms02.mov -f s16le
-FATE_ADPCM-$(call DEMDEC, THP, ADPCM_THP, ARESAMPLE_FILTER) += fate-adpcm-thp
+FATE_ADPCM-$(call FRAMECRC, THP, ADPCM_THP, ARESAMPLE_FILTER) += fate-adpcm-thp
fate-adpcm-thp: CMD = framecrc -i $(TARGET_SAMPLES)/thp/pikmin2-opening1-partial.thp -vn -af aresample
-FATE_ADPCM-$(call DEMDEC, SMUSH, ADPCM_VIMA) += fate-adpcm-vima
+FATE_ADPCM-$(call FRAMECRC, SMUSH, ADPCM_VIMA) += fate-adpcm-vima
fate-adpcm-vima: CMD = framecrc -i $(TARGET_SAMPLES)/smush/ronin_part.znm -vn
-FATE_ADPCM-$(call DEMDEC, STR, ADPCM_XA, ARESAMPLE_FILTER) += fate-adpcm-xa
+FATE_ADPCM-$(call FRAMECRC, STR, ADPCM_XA, ARESAMPLE_FILTER) += fate-adpcm-xa
fate-adpcm-xa: CMD = framecrc -i $(TARGET_SAMPLES)/psx-str/abc000_cut.str -vn -af aresample
FATE_ADPCM-$(call DEMDEC, ARGO_ASF, ADPCM_ARGO, ARESAMPLE_FILTER) += fate-adpcm-argo-mono
diff --git a/tests/fate/alac.mak b/tests/fate/alac.mak
index d582d07ef2..fd58703b6a 100644
--- a/tests/fate/alac.mak
+++ b/tests/fate/alac.mak
@@ -20,7 +20,7 @@ fate-alac-24-%: CMD = enc_dec_pcm mov wav s24le $(subst $(SAMPLES),$(TARGET_SAMP
fate-alac-%: CMP = oneoff
fate-alac-%: FUZZ = 0
-FATE_ALAC-$(call ENCDEC, ALAC, MOV, ARESAMPLE_FILTER) += $(FATE_ALAC)
+FATE_ALAC-$(call ENCDEC, ALAC, MOV, ARESAMPLE_FILTER PIPE_PROTOCOL) += $(FATE_ALAC)
FATE_SAMPLES_FFMPEG += $(FATE_ALAC-yes)
fate-alac: $(FATE_ALAC-yes)
diff --git a/tests/fate/als.mak b/tests/fate/als.mak
index c7287dee86..58649bd01c 100644
--- a/tests/fate/als.mak
+++ b/tests/fate/als.mak
@@ -11,5 +11,6 @@ FATE_ALS += fate-mpeg4-als-conformance-09
fate-mpeg4-als-conformance-09: CMD = crc -i $(TARGET_SAMPLES)/lossless-audio/als_09_512ch2k16b.mp4
-FATE_SAMPLES_AVCONV-$(call DEMDEC, MOV, ALS) += $(FATE_ALS)
+FATE_ALS := $(if $(call CRC, MOV, ALS), $(FATE_ALS))
+FATE_SAMPLES_AVCONV-yes += $(FATE_ALS)
fate-als: $(FATE_ALS)
diff --git a/tests/fate/amrnb.mak b/tests/fate/amrnb.mak
index 3dad9d67f6..007174de0a 100644
--- a/tests/fate/amrnb.mak
+++ b/tests/fate/amrnb.mak
@@ -35,6 +35,6 @@ fate-amrnb-remux: CMD = transcode amr $(TARGET_SAMPLES)/amrnb/10.2k.amr amr "-c
$(FATE_AMRNB): CMP = stddev
-FATE_SAMPLES_FFMPEG-$(call DEMDEC, AMR, AMRNB, ARESAMPLE_FILTER) += $(FATE_AMRNB)
+FATE_SAMPLES_FFMPEG-$(call PCM, AMR, AMRNB, ARESAMPLE_FILTER) += $(FATE_AMRNB)
FATE_SAMPLES_FFMPEG += $(FATE_AMRNB_REMUX-yes)
fate-amrnb: $(FATE_AMRNB) $(FATE_AMRNB_REMUX-yes)
diff --git a/tests/fate/amrwb.mak b/tests/fate/amrwb.mak
index 5e0a47bb82..aec1c9d859 100644
--- a/tests/fate/amrwb.mak
+++ b/tests/fate/amrwb.mak
@@ -46,6 +46,6 @@ fate-amrwb-remux: CMD = transcode mov $(TARGET_SAMPLES)/amrwb/seed-23k85.awb amr
$(FATE_AMRWB): CMP = stddev
-FATE_SAMPLES_FFMPEG-$(call DEMDEC, MOV, AMRWB, ARESAMPLE_FILTER) += $(FATE_AMRWB)
+FATE_SAMPLES_FFMPEG-$(call PCM, MOV, AMRWB, ARESAMPLE_FILTER) += $(FATE_AMRWB)
FATE_SAMPLES_FFMPEG += $(FATE_AMRWB_REMUX-yes)
fate-amrwb: $(FATE_AMRWB) $(FATE_AMRWB_REMUX-yes)
diff --git a/tests/fate/apng.mak b/tests/fate/apng.mak
index e9d3cf2a02..aec06c28a6 100644
--- a/tests/fate/apng.mak
+++ b/tests/fate/apng.mak
@@ -13,7 +13,7 @@ fate-apng-dispose-background: CMD = framecrc -i $(TARGET_SAMPLES)/apng/015.png
FATE_APNG += fate-apng-dispose-background2
fate-apng-dispose-background2: CMD = framecrc -i $(TARGET_SAMPLES)/apng/alogo.png
-FATE_APNG-$(call DEMDEC, APNG, APNG) += $(FATE_APNG)
+FATE_APNG-$(call FRAMECRC, APNG, APNG) += $(FATE_APNG)
FATE_SAMPLES_FFMPEG += $(FATE_APNG-yes)
fate-apng: $(FATE_APNG-yes)
diff --git a/tests/fate/atrac.mak b/tests/fate/atrac.mak
index 592d1819df..098063e298 100644
--- a/tests/fate/atrac.mak
+++ b/tests/fate/atrac.mak
@@ -7,7 +7,7 @@ fate-atrac1-2: CMD = pcm -i $(TARGET_SAMPLES)/atrac1/chirp_tone_10-16000.aea
fate-atrac1-2: REF = $(SAMPLES)/atrac1/chirp_tone_10-16000.pcm
fate-atrac1-2: FUZZ = 61
-FATE_ATRAC1-$(call DEMDEC, AEA, ATRAC1, ARESAMPLE_FILTER) += $(FATE_ATRAC1)
+FATE_ATRAC1-$(call PCM, AEA, ATRAC1, ARESAMPLE_FILTER) += $(FATE_ATRAC1)
FATE_ATRAC3 += fate-atrac3-1
fate-atrac3-1: CMD = pcm -i $(TARGET_SAMPLES)/atrac3/mc_sich_at3_066_small.wav
@@ -21,7 +21,7 @@ FATE_ATRAC3 += fate-atrac3-3
fate-atrac3-3: CMD = pcm -i $(TARGET_SAMPLES)/atrac3/mc_sich_at3_132_small.wav
fate-atrac3-3: REF = $(SAMPLES)/atrac3/mc_sich_at3_132_small.pcm
-FATE_ATRAC3-$(call DEMDEC, WAV, ATRAC3, ARESAMPLE_FILTER) += $(FATE_ATRAC3)
+FATE_ATRAC3-$(call PCM, WAV, ATRAC3, ARESAMPLE_FILTER) += $(FATE_ATRAC3)
FATE_ATRAC3P += fate-atrac3p-1
fate-atrac3p-1: CMD = pcm -i $(TARGET_SAMPLES)/atrac3p/at3p_sample1.oma
@@ -31,7 +31,7 @@ FATE_ATRAC3P += fate-atrac3p-2
fate-atrac3p-2: CMD = pcm -i $(TARGET_SAMPLES)/atrac3p/sonateno14op27-2-cut.aa3
fate-atrac3p-2: REF = $(SAMPLES)/atrac3p/sonateno14op27-2-cut.pcm
-FATE_ATRAC3P-$(call DEMDEC, OMA, ATRAC3P, ARESAMPLE_FILTER) += $(FATE_ATRAC3P)
+FATE_ATRAC3P-$(call PCM, OMA, ATRAC3P, ARESAMPLE_FILTER) += $(FATE_ATRAC3P)
FATE_ATRAC_ALL = $(FATE_ATRAC1-yes) $(FATE_ATRAC3-yes) $(FATE_ATRAC3P-yes)
diff --git a/tests/fate/audio.mak b/tests/fate/audio.mak
index 00dc9e239e..ae17825d55 100644
--- a/tests/fate/audio.mak
+++ b/tests/fate/audio.mak
@@ -20,10 +20,10 @@ $(FATE_BINKAUDIO-yes): CMP = oneoff
FATE_SAMPLES_AUDIO += $(FATE_BINKAUDIO-yes)
fate-binkaudio: $(FATE_BINKAUDIO-yes)
-FATE_SAMPLES_AUDIO-$(call DEMDEC, BMV, BMV_AUDIO) += fate-bmv-audio
+FATE_SAMPLES_AUDIO-$(call FRAMECRC, BMV, BMV_AUDIO) += fate-bmv-audio
fate-bmv-audio: CMD = framecrc -i $(TARGET_SAMPLES)/bmv/SURFING-partial.BMV -vn
-FATE_SAMPLES_AUDIO-$(call DEMDEC, DSICIN, DSICINAUDIO) += fate-delphine-cin-audio
+FATE_SAMPLES_AUDIO-$(call FRAMECRC, DSICIN, DSICINAUDIO) += fate-delphine-cin-audio
fate-delphine-cin-audio: CMD = framecrc -i $(TARGET_SAMPLES)/delphine-cin/LOGO-partial.CIN -vn
FATE_SAMPLES_AUDIO-$(call PCM, S337M, DOLBY_E, ARESAMPLE_FILTER) += fate-dolby-e
@@ -31,10 +31,10 @@ fate-dolby-e: CMD = pcm -i $(TARGET_SAMPLES)/dolby_e/16-11
fate-dolby-e: CMP = oneoff
fate-dolby-e: REF = $(SAMPLES)/dolby_e/16-11.pcm
-FATE_SAMPLES_AUDIO-$(call DEMDEC, DSS, DSS_SP, ARESAMPLE_FILTER) += fate-dss-lp
+FATE_SAMPLES_AUDIO-$(call FRAMECRC, DSS, DSS_SP, ARESAMPLE_FILTER) += fate-dss-lp
fate-dss-lp: CMD = framecrc -i $(TARGET_SAMPLES)/dss/lp.dss -frames 30 -af aresample
-FATE_SAMPLES_AUDIO-$(call DEMDEC, DSS, DSS_SP) += fate-dss-sp
+FATE_SAMPLES_AUDIO-$(call FRAMECRC, DSS, DSS_SP) += fate-dss-sp
fate-dss-sp: CMD = framecrc -i $(TARGET_SAMPLES)/dss/sp.dss -frames 30
FATE_SAMPLES_AUDIO-$(call PCM, DSF, DST, ARESAMPLE_FILTER) += fate-dsf-dst
@@ -42,7 +42,7 @@ fate-dsf-dst: CMD = pcm -i $(TARGET_SAMPLES)/dst/dst-64fs44-2ch.dff
fate-dsf-dst: CMP = oneoff
fate-dsf-dst: REF = $(SAMPLES)/dst/dst-64fs44-2ch.pcm
-FATE_SAMPLES_AUDIO-$(call DEMDEC, AVI, IMC, ARESAMPLE_FILTER) += fate-imc
+FATE_SAMPLES_AUDIO-$(call PCM, AVI, IMC, ARESAMPLE_FILTER) += fate-imc
fate-imc: CMD = pcm -i $(TARGET_SAMPLES)/imc/imc.avi
fate-imc: CMP = oneoff
fate-imc: CMP_TARGET = 59416
@@ -58,7 +58,7 @@ fate-nellymoser: CMD = pcm -i $(TARGET_SAMPLES)/nellymoser/nellymoser.flv
fate-nellymoser: CMP = oneoff
fate-nellymoser: REF = $(SAMPLES)/nellymoser/nellymoser.pcm
-FATE_SAMPLES_AUDIO-$(call ENCMUX, NELLYMOSER, FLV, ARESAMPLE_FILTER) += fate-nellymoser-aref-encode
+FATE_SAMPLES_AUDIO-$(call ENCMUX, NELLYMOSER, FLV, ARESAMPLE_FILTER PIPE_PROTOCOL) += fate-nellymoser-aref-encode
fate-nellymoser-aref-encode: $(AREF) ./tests/data/asynth-16000-1.wav
fate-nellymoser-aref-encode: CMD = enc_dec_pcm flv wav s16le $(REF) -c:a nellymoser
fate-nellymoser-aref-encode: CMP = stddev
@@ -67,16 +67,16 @@ fate-nellymoser-aref-encode: CMP_SHIFT = -256
fate-nellymoser-aref-encode: CMP_TARGET = 3863
fate-nellymoser-aref-encode: SIZE_TOLERANCE = 268
-FATE_SAMPLES_AUDIO-$(call DEMDEC, AVI, ON2AVC, ARESAMPLE_FILTER) += fate-on2avc
+FATE_SAMPLES_AUDIO-$(call FRAMECRC, AVI, ON2AVC, ARESAMPLE_FILTER) += fate-on2avc
fate-on2avc: CMD = framecrc -i $(TARGET_SAMPLES)/vp7/potter-40.vp7 -frames 30 -vn -af aresample
-FATE_SAMPLES_AUDIO-$(call DEMDEC, PAF, PAF_AUDIO) += fate-paf-audio
+FATE_SAMPLES_AUDIO-$(call FRAMECRC, PAF, PAF_AUDIO) += fate-paf-audio
fate-paf-audio: CMD = framecrc -i $(TARGET_SAMPLES)/paf/hod1-partial.paf -vn
-FATE_SAMPLES_AUDIO-$(call DEMDEC, VMD, VMDAUDIO, ARESAMPLE_FILTER) += fate-sierra-vmd-audio
+FATE_SAMPLES_AUDIO-$(call FRAMECRC, VMD, VMDAUDIO, ARESAMPLE_FILTER) += fate-sierra-vmd-audio
fate-sierra-vmd-audio: CMD = framecrc -i $(TARGET_SAMPLES)/vmd/12.vmd -vn -af aresample
-FATE_SAMPLES_AUDIO-$(call DEMDEC, SMACKER, SMACKAUD, ARESAMPLE_FILTER) += fate-smacker-audio
+FATE_SAMPLES_AUDIO-$(call FRAMECRC, SMACKER, SMACKAUD, ARESAMPLE_FILTER) += fate-smacker-audio
fate-smacker-audio: CMD = framecrc -i $(TARGET_SAMPLES)/smacker/wetlogo.smk -vn -af aresample
FATE_SAMPLES_AUDIO-$(call DEMDEC, WSVQA, WS_SND1, ARESAMPLE_FILTER) += fate-ws_snd
diff --git a/tests/fate/caf.mak b/tests/fate/caf.mak
index a53f5fa0f8..4ee9c95a5c 100644
--- a/tests/fate/caf.mak
+++ b/tests/fate/caf.mak
@@ -1,4 +1,4 @@
-FATE_CAF_FFMPEG-$(call ALLYES, CAF_DEMUXER CRC_MUXER) += fate-caf-demux
+FATE_CAF_FFMPEG-$(call CRC, CAF) += fate-caf-demux
fate-caf-demux: CMD = crc -i $(TARGET_SAMPLES)/caf/caf-pcm16.caf -c copy
FATE_CAF_FFMPEG_FFPROBE-$(call REMUX, CAF, MOV_DEMUXER) += fate-caf-alac-remux
diff --git a/tests/fate/demux.mak b/tests/fate/demux.mak
index f1a00eb1b1..2df9b91cf6 100644
--- a/tests/fate/demux.mak
+++ b/tests/fate/demux.mak
@@ -1,82 +1,82 @@
-FATE_SAMPLES_DEMUX-$(call DEMDEC, AVI, FRAPS) += fate-avio-direct
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, AVI, FRAPS) += fate-avio-direct
fate-avio-direct: CMD = framecrc -avioflags direct -i $(TARGET_SAMPLES)/fraps/fraps-v5-bouncing-balls-partial.avi -avioflags direct
-FATE_SAMPLES_DEMUX-$(call DEMDEC, AAC, AAC) += fate-adts-demux fate-adts-id3v1-demux fate-adts-id3v2-demux fate-adts-id3v2-two-tags-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, AAC, AAC, CRC_MUXER) += fate-adts-demux fate-adts-id3v1-demux fate-adts-id3v2-demux fate-adts-id3v2-two-tags-demux
fate-adts-demux: CMD = crc -i $(TARGET_SAMPLES)/aac/ct_faac-adts.aac -c:a copy
fate-adts-id3v1-demux: CMD = framecrc -f aac -i $(TARGET_SAMPLES)/aac/id3v1.aac -c:a copy
fate-adts-id3v2-demux: CMD = framecrc -f aac -i $(TARGET_SAMPLES)/aac/id3v2.aac -c:a copy
fate-adts-id3v2-two-tags-demux: CMD = framecrc -i $(TARGET_SAMPLES)/aac/id3v2_two_tags.aac -c:a copy
-FATE_SAMPLES_DEMUX-$(call DEMDEC, AA,, SIPR_PARSER) += fate-aa-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, AA,, SIPR_PARSER) += fate-aa-demux
fate-aa-demux: CMD = framecrc -i $(TARGET_SAMPLES)/aa/bush.aa -c:a copy
-FATE_SAMPLES_DEMUX-$(CONFIG_AEA_DEMUXER) += fate-aea-demux
+FATE_SAMPLES_DEMUX-$(call CRC, AEA) += fate-aea-demux
fate-aea-demux: CMD = crc -i $(TARGET_SAMPLES)/aea/chirp.aea -c:a copy
-FATE_SAMPLES_DEMUX-$(call DEMDEC, AV1, AV1, EXTRACT_EXTRADATA_BSF) += fate-av1-annexb-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, AV1, AV1, EXTRACT_EXTRADATA_BSF) += fate-av1-annexb-demux
fate-av1-annexb-demux: CMD = framecrc -c:v av1 -i $(TARGET_SAMPLES)/av1/annexb.obu -c:v copy
-FATE_SAMPLES_DEMUX-$(CONFIG_AST_DEMUXER) += fate-ast
+FATE_SAMPLES_DEMUX-$(call CRC, AST) += fate-ast
fate-ast: CMD = crc -i $(TARGET_SAMPLES)/ast/demo11_02_partial.ast -c copy
-FATE_SAMPLES_DEMUX-$(CONFIG_BINK_DEMUXER) += fate-bink-demux
+FATE_SAMPLES_DEMUX-$(call CRC, BINK) += fate-bink-demux
fate-bink-demux: CMD = crc -i $(TARGET_SAMPLES)/bink/Snd0a7d9b58.dee -vn -c:a copy
-FATE_SAMPLES_DEMUX-$(CONFIG_BFSTM_DEMUXER) += fate-bfstm fate-bcstm
+FATE_SAMPLES_DEMUX-$(call CRC, BFSTM) += fate-bfstm fate-bcstm
fate-bfstm: CMD = crc -i $(TARGET_SAMPLES)/bfstm/spl-forest-day.bfstm -c:a copy
fate-bcstm: CMD = crc -i $(TARGET_SAMPLES)/bfstm/loz-mm-mikau.bcstm -c:a copy
-FATE_SAMPLES_DEMUX-$(CONFIG_BRSTM_DEMUXER) += fate-brstm
+FATE_SAMPLES_DEMUX-$(call CRC, BRSTM) += fate-brstm
fate-brstm: CMD = crc -i $(TARGET_SAMPLES)/brstm/lozswd_partial.brstm -c:a copy
FATE_FFPROBE_DEMUX-$(call DEMDEC, CAVSVIDEO, CAVS, CAVSVIDEO_PARSER EXTRACT_EXTRADATA_BSF) += fate-cavs-demux
fate-cavs-demux: CMD = ffprobe_demux $(TARGET_SAMPLES)/cavs/bunny.mp4
-FATE_SAMPLES_DEMUX-$(CONFIG_CDXL_DEMUXER) += fate-cdxl-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, CDXL) += fate-cdxl-demux
fate-cdxl-demux: CMD = framecrc -i $(TARGET_SAMPLES)/cdxl/mirage.cdxl -c:v copy -c:a copy
-FATE_SAMPLES_DEMUX-$(CONFIG_CINE_DEMUXER) += fate-cine-demux
+FATE_SAMPLES_DEMUX-$(call CRC, CINE) += fate-cine-demux
fate-cine-demux: CMD = crc -i $(TARGET_SAMPLES)/cine/bayer_gbrg8.cine -c copy
-FATE_SAMPLES_DEMUX-$(CONFIG_DAUD_DEMUXER) += fate-d-cinema-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, DAUD) += fate-d-cinema-demux
fate-d-cinema-demux: CMD = framecrc -i $(TARGET_SAMPLES)/d-cinema/THX_Science_FLT_1920-partial.302 -c:a copy
-FATE_SAMPLES_DEMUX-$(call DEMDEC, EA, VP6) += fate-d-eavp6-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, EA, VP6) += fate-d-eavp6-demux
fate-d-eavp6-demux: CMD = framecrc -i $(TARGET_SAMPLES)/ea-vp6/SmallRing.vp6 -map 0 -c:v copy
-FATE_SAMPLES_DEMUX-$(call DEMDEC, FITS GIF, FITS GIF, FITS_MUXER FITS_ENCODER GIF_PARSER SCALE_FILTER) += fate-fits-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, FITS GIF, FITS GIF, FITS_MUXER FITS_ENCODER GIF_PARSER SCALE_FILTER) += fate-fits-demux
fate-fits-demux: tests/data/fits-multi.fits
fate-fits-demux: CMD = framecrc -i $(TARGET_PATH)/tests/data/fits-multi.fits -c:v copy
FATE_FFPROBE_DEMUX-$(call DEMDEC, FLV, H264 AAC, H264_PARSER) += fate-flv-demux
fate-flv-demux: CMD = ffprobe_demux $(TARGET_SAMPLES)/flv/Enigma_Principles_of_Lust-part.flv
-FATE_SAMPLES_DEMUX-$(call DEMDEC, GIF,, GIF_PARSER) += fate-gif-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, GIF,, GIF_PARSER) += fate-gif-demux
fate-gif-demux: CMD = framecrc -i $(TARGET_SAMPLES)/gif/Newtons_cradle_animation_book_2.gif -c:v copy
-FATE_SAMPLES_DEMUX-$(call ALLYES, IV8_DEMUXER MPEG4VIDEO_PARSER EXTRACT_EXTRADATA_BSF) += fate-iv8-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, IV8,, MPEG4VIDEO_PARSER EXTRACT_EXTRADATA_BSF) += fate-iv8-demux
fate-iv8-demux: CMD = framecrc -i $(TARGET_SAMPLES)/iv8/zzz-partial.mpg -c:v copy
-FATE_SAMPLES_DEMUX-$(CONFIG_JV_DEMUXER) += fate-jv-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, JV) += fate-jv-demux
fate-jv-demux: CMD = framecrc -i $(TARGET_SAMPLES)/jv/intro.jv -c:v copy -c:a copy
-FATE_SAMPLES_DEMUX-$(call ALLYES, LMLM4_DEMUXER MPEG4VIDEO_PARSER MPEGAUDIO_PARSER EXTRACT_EXTRADATA_BSF) += fate-lmlm4-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, LMLM4,, MPEG4VIDEO_PARSER MPEGAUDIO_PARSER EXTRACT_EXTRADATA_BSF) += fate-lmlm4-demux
fate-lmlm4-demux: CMD = framecrc -i $(TARGET_SAMPLES)/lmlm4/LMLM4_CIFat30fps.divx -t 3 -c:a copy -c:v copy
-FATE_SAMPLES_DEMUX-$(CONFIG_XA_DEMUXER) += fate-maxis-xa
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, XA) += fate-maxis-xa
fate-maxis-xa: CMD = framecrc -i $(TARGET_SAMPLES)/maxis-xa/SC2KBUG.XA -frames:a 30 -c:a copy
-FATE_SAMPLES_DEMUX-$(call DEMDEC, MATROSKA, H264) += fate-mkv
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, MATROSKA, H264) += fate-mkv
fate-mkv: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/test7_cut.mkv -c copy
#No dts errors or duplicate DTS should be in this
-FATE_SAMPLES_DEMUX-$(call DEMDEC, MATROSKA,, H264_PARSER) += fate-mkv-1242
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, MATROSKA,, H264_PARSER) += fate-mkv-1242
fate-mkv-1242: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/1242-small.mkv -c copy -frames:v 11
-FATE_SAMPLES_DEMUX-$(CONFIG_MLV_DEMUXER) += fate-mlv-demux
+FATE_SAMPLES_DEMUX-$(call CRC, MLV) += fate-mlv-demux
fate-mlv-demux: CMD = crc -i $(TARGET_SAMPLES)/mlv/M19-0333-cut.MLV -c copy
-FATE_SAMPLES_DEMUX-$(call ALLYES, MOV_DEMUXER FRAMECRC_MUXER PIPE_PROTOCOL) += fate-mov-mp3-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, MOV) += fate-mov-mp3-demux
fate-mov-mp3-demux: CMD = framecrc -i $(TARGET_SAMPLES)/mpegaudio/packed_maindata.mp3.mp4 -c copy
FATE_FFPROBE_DEMUX-$(call PARSERDEMDEC, OPUS, MPEGTS, OPUS) += fate-ts-opus-demux
@@ -85,73 +85,73 @@ fate-ts-opus-demux: CMD = ffprobe_demux $(TARGET_SAMPLES)/opus/test-8-7.1.opus-s
FATE_FFPROBE_DEMUX-$(call PARSERDEMDEC, H264, MPEGTS, H264, EXTRACT_EXTRADATA_BSF) += fate-ts-small-demux
fate-ts-small-demux: CMD = ffprobe_demux $(TARGET_SAMPLES)/mpegts/h264small.ts
-FATE_SAMPLES_DEMUX-$(call DEMDEC, MTV,, MPEGAUDIO_PARSER) += fate-mtv
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, MTV,, MPEGAUDIO_PARSER) += fate-mtv
fate-mtv: CMD = framecrc -i $(TARGET_SAMPLES)/mtv/comedian_auto-partial.mtv -c copy
-FATE_SAMPLES_DEMUX-$(call DEMDEC, MXF,, MPEG4VIDEO_PARSER) += fate-mxf-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, MXF,, MPEG4VIDEO_PARSER) += fate-mxf-demux
fate-mxf-demux: CMD = framecrc -i $(TARGET_SAMPLES)/mxf/C0023S01.mxf -c:a copy -c:v copy
-FATE_SAMPLES_DEMUX-$(call ALLYES, NC_DEMUXER MPEG4VIDEO_PARSER EXTRACT_EXTRADATA_BSF) += fate-nc-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, NC,, MPEG4VIDEO_PARSER EXTRACT_EXTRADATA_BSF) += fate-nc-demux
fate-nc-demux: CMD = framecrc -i $(TARGET_SAMPLES)/nc-camera/nc-sample-partial -c:v copy
-FATE_SAMPLES_DEMUX-$(CONFIG_NISTSPHERE_DEMUXER) += fate-nistsphere-demux
+FATE_SAMPLES_DEMUX-$(call CRC, NISTSPHERE) += fate-nistsphere-demux
fate-nistsphere-demux: CMD = crc -i $(TARGET_SAMPLES)/nistsphere/nist-ulaw.nist -c:a copy
-FATE_SAMPLES_DEMUX-$(call DEMDEC, NSV,, VP3_PARSER MPEGAUDIO_PARSER) += fate-nsv-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, NSV,, VP3_PARSER MPEGAUDIO_PARSER) += fate-nsv-demux
fate-nsv-demux: CMD = framecrc -i $(TARGET_SAMPLES)/nsv/witchblade-51kbps.nsv -t 6 -c:v copy -c:a copy
FATE_FFPROBE_DEMUX-$(call DEMDEC, OGG, OPUS) += fate-oggopus-demux
fate-oggopus-demux: CMD = ffprobe_demux $(TARGET_SAMPLES)/ogg/intro-partial.opus
-FATE_SAMPLES_DEMUX-$(call DEMDEC, OGG,, VP8_PARSER) += fate-oggvp8-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, OGG,, VP8_PARSER) += fate-oggvp8-demux
fate-oggvp8-demux: CMD = framecrc -i $(TARGET_SAMPLES)/ogg/videotest.ogv -c:v copy
-FATE_SAMPLES_DEMUX-$(CONFIG_PAF_DEMUXER) += fate-paf-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, PAF) += fate-paf-demux
fate-paf-demux: CMD = framecrc -i $(TARGET_SAMPLES)/paf/hod1-partial.paf -c:v copy -c:a copy
-FATE_SAMPLES_DEMUX-$(CONFIG_PMP_DEMUXER) += fate-pmp-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, PMP) += fate-pmp-demux
fate-pmp-demux: CMD = framecrc -i $(TARGET_SAMPLES)/pmp/demo.pmp -vn -c:a copy
-FATE_SAMPLES_DEMUX-$(CONFIG_RSD_DEMUXER) += fate-rsd-demux
+FATE_SAMPLES_DEMUX-$(call CRC, RSD) += fate-rsd-demux
fate-rsd-demux: CMD = crc -i $(TARGET_SAMPLES)/rsd/hum01_partial.rsd -c:a copy
-FATE_SAMPLES_DEMUX-$(CONFIG_REDSPARK_DEMUXER) += fate-redspark-demux
+FATE_SAMPLES_DEMUX-$(call CRC, REDSPARK) += fate-redspark-demux
fate-redspark-demux: CMD = crc -i $(TARGET_SAMPLES)/redspark/jingle04_partial.rsd -c:a copy
-FATE_SAMPLES_DEMUX-$(CONFIG_STR_DEMUXER) += fate-psx-str-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, STR) += fate-psx-str-demux
fate-psx-str-demux: CMD = framecrc -i $(TARGET_SAMPLES)/psx-str/descent-partial.str -c copy
-FATE_SAMPLES_DEMUX-$(call DEMDEC, PVA, MPEG2VIDEO, MPEGAUDIO_PARSER) += fate-pva-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, PVA, MPEG2VIDEO, MPEGAUDIO_PARSER) += fate-pva-demux
fate-pva-demux: CMD = framecrc -idct simple -i $(TARGET_SAMPLES)/pva/PVA_test-partial.pva -t 0.6 -c:a copy
-FATE_SAMPLES_DEMUX-$(CONFIG_QCP_DEMUXER) += fate-qcp-demux
+FATE_SAMPLES_DEMUX-$(call CRC, QCP) += fate-qcp-demux
fate-qcp-demux: CMD = crc -i $(TARGET_SAMPLES)/qcp/0036580847.QCP -c:a copy
-FATE_SAMPLES_DEMUX-$(call DEMDEC, R3D, JPEG2000 PCM_S32BE) += fate-redcode-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, R3D, JPEG2000 PCM_S32BE) += fate-redcode-demux
fate-redcode-demux: CMD = framecrc -i $(TARGET_SAMPLES)/r3d/4MB-sample.r3d -c:v copy -c:a copy
-FATE_SAMPLES_DEMUX-$(call ALLYES, S337M_DEMUXER DOLBY_E_PARSER FRAMECRC_MUXER) += fate-s337m-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, S337M,, DOLBY_E_PARSER) += fate-s337m-demux
fate-s337m-demux: CMD = framecrc -i $(TARGET_SAMPLES)/dolby_e/16-11 -c copy -ss 2 -t 1
-FATE_SAMPLES_DEMUX-$(CONFIG_SIFF_DEMUXER) += fate-siff-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, SIFF) += fate-siff-demux
fate-siff-demux: CMD = framecrc -i $(TARGET_SAMPLES)/SIFF/INTRO_B.VB -c copy
-FATE_SAMPLES_DEMUX-$(call DEMDEC, SMJPEG, MJPEG ADPCM_IMA_SMJPEG) += fate-smjpeg-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, SMJPEG, MJPEG ADPCM_IMA_SMJPEG) += fate-smjpeg-demux
fate-smjpeg-demux: CMD = framecrc -i $(TARGET_SAMPLES)/smjpeg/scenwin.mjpg -c copy
-FATE_SAMPLES_DEMUX-$(call DEMDEC, WAV SPDIF,, AC3_PARSER) += fate-wav-ac3
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, WAV SPDIF,, AC3_PARSER) += fate-wav-ac3
fate-wav-ac3: CMD = framecrc -i $(TARGET_SAMPLES)/ac3/diatonis_invisible_order_anfos_ac3-small.wav -c copy
-FATE_SAMPLES_DEMUX-$(CONFIG_WSAUD_DEMUXER) += fate-westwood-aud
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, WSAUD) += fate-westwood-aud
fate-westwood-aud: CMD = framecrc -i $(TARGET_SAMPLES)/westwood-aud/excellent.aud -c copy
-FATE_SAMPLES_DEMUX-$(call DEMDEC, WTV, MJPEG, MPEGVIDEO_PARSER MPEGAUDIO_PARSER EXTRACT_EXTRADATA_BSF) += fate-wtv-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, WTV, MJPEG, MPEGVIDEO_PARSER MPEGAUDIO_PARSER EXTRACT_EXTRADATA_BSF) += fate-wtv-demux
fate-wtv-demux: CMD = framecrc -i $(TARGET_SAMPLES)/wtv/law-and-order-partial.wtv -c:v copy -c:a copy
-FATE_SAMPLES_DEMUX-$(CONFIG_XMV_DEMUXER) += fate-xmv-demux
+FATE_SAMPLES_DEMUX-$(call FRAMECRC, XMV) += fate-xmv-demux
fate-xmv-demux: CMD = framecrc -i $(TARGET_SAMPLES)/xmv/logos1p.fmv -c:v copy -c:a copy
-FATE_SAMPLES_DEMUX-$(CONFIG_XWMA_DEMUXER) += fate-xwma-demux
+FATE_SAMPLES_DEMUX-$(call CRC, XWMA) += fate-xwma-demux
fate-xwma-demux: CMD = crc -i $(TARGET_SAMPLES)/xwma/ergon.xwma -c:a copy
FATE_FFPROBE_DEMUX-$(call PARSERDEMDEC, MPEGVIDEO, MPEGTS, MPEG2VIDEO AC3, EXTRACT_EXTRADATA_BSF) += fate-ts-demux
diff --git a/tests/fate/dpcm.mak b/tests/fate/dpcm.mak
index dd27246324..7596bdfb28 100644
--- a/tests/fate/dpcm.mak
+++ b/tests/fate/dpcm.mak
@@ -1,7 +1,7 @@
-FATE_DPCM-$(call DEMDEC, ROQ, ROQ_DPCM) += fate-dpcm-idroq
+FATE_DPCM-$(call FRAMECRC, ROQ, ROQ_DPCM) += fate-dpcm-idroq
fate-dpcm-idroq: CMD = framecrc -i $(TARGET_SAMPLES)/idroq/idlogo.roq -vn
-FATE_DPCM-$(call DEMDEC, IPMOVIE, INTERPLAY_DPCM) += fate-dpcm-interplay
+FATE_DPCM-$(call FRAMECRC, IPMOVIE, INTERPLAY_DPCM) += fate-dpcm-interplay
fate-dpcm-interplay: CMD = framecrc -i $(TARGET_SAMPLES)/interplay-mve/interplay-logo-2MB.mve -vn
FATE_DPCM-$(call DEMDEC, SOL, SOL_DPCM) += fate-dpcm-sierra
diff --git a/tests/fate/ffmpeg.mak b/tests/fate/ffmpeg.mak
index 87130428d1..360e62ebbe 100644
--- a/tests/fate/ffmpeg.mak
+++ b/tests/fate/ffmpeg.mak
@@ -40,7 +40,7 @@ fate-force_key_frames-source-dup: CMD = framecrc -i $(TARGET_SAMPLES)/h264/intra
-c:v mpeg2video -g 400 -sc_threshold 99999 \
-force_key_frames source -r 39 -force_fps -strict experimental
-FATE_SAMPLES_FFMPEG-$(call ENCDEC, MPEG2VIDEO H264, FRAMECRC H264, H264_PARSER CROP_FILTER DRAWBOX_FILTER) += \
+FATE_SAMPLES_FFMPEG-$(call ENCDEC, MPEG2VIDEO H264, FRAMECRC H264, H264_PARSER CROP_FILTER DRAWBOX_FILTER PIPE_PROTOCOL) += \
fate-force_key_frames-source fate-force_key_frames-source-drop fate-force_key_frames-source-dup
# Tests that the video is properly autorotated using the contained
@@ -97,8 +97,8 @@ fate-shortest: tests/data/vsynth1.yuv
fate-shortest: CMD = framecrc -auto_conversion_filters -f lavfi -i "sine=3000:d=10" -f lavfi -i "sine=1000:d=1" -sws_flags +accurate_rnd+bitexact -fflags +bitexact -flags +bitexact -idct simple -f rawvideo -s 352x288 -pix_fmt yuv420p -i $(TARGET_PATH)/tests/data/vsynth1.yuv -filter_complex "[0:a:0][1:a:0]amix=inputs=2[audio]" -map 2:v:0 -map "[audio]" -sws_flags +accurate_rnd+bitexact -fflags +bitexact -flags +bitexact -idct simple -dct fastint -qscale 10 -threads 1 -c:v mpeg4 -c:a ac3_fixed -shortest
# test interleaving video with a sparse subtitle stream
-FATE_SAMPLES_FFMPEG-$(call ALLYES, COLOR_FILTER, VOBSUB_DEMUXER, MATROSKA_DEMUXER,, \
- RAWVIDEO_ENCODER, MATROSKA_MUXER, FRAMECRC_MUXER) += fate-shortest-sub
+FATE_SAMPLES_FFMPEG-$(call FRAMECRC, MATROSKA,, COLOR_FILTER VOBSUB_DEMUXER \
+ RAWVIDEO_ENCODER MATROSKA_MUXER) += fate-shortest-sub
fate-shortest-sub: CMD = transcode \
vobsub $(TARGET_SAMPLES)/sub/vobsub.idx matroska \
"-filter_complex 'color=s=1x1:rate=1:duration=400' -pix_fmt rgb24 -allow_raw_vfw 1 -c:s copy -c:v rawvideo" \
diff --git a/tests/fate/fifo-muxer.mak b/tests/fate/fifo-muxer.mak
index 9c13954cf7..441f0fb5ed 100644
--- a/tests/fate/fifo-muxer.mak
+++ b/tests/fate/fifo-muxer.mak
@@ -2,7 +2,7 @@ fate-fifo-muxer-h264: CMD = ffmpeg -i $(TARGET_SAMPLES)/mkv/1242-small.mkv -fram
-c:v copy -c:a copy -map v:0 -map a:0 -flags +bitexact\
-fflags +bitexact -f fifo -fifo_format framecrc -
fate-fifo-muxer-h264: REF = $(SRC_PATH)/tests/ref/fate/mkv-1242
-FATE_SAMPLES_FIFO_MUXER-$(call ALLYES, FIFO_MUXER, MATROSKA_DEMUXER, H264_DECODER) += fate-fifo-muxer-h264
+FATE_SAMPLES_FIFO_MUXER-$(call FRAMECRC, MATROSKA, H264, FIFO_MUXER) += fate-fifo-muxer-h264
fate-fifo-muxer-wav: CMD = ffmpeg -i $(TARGET_SAMPLES)/audio-reference/chorusnoise_2ch_44kHz_s16.wav\
-c:a copy -map a:0 -flags +bitexact\
diff --git a/tests/fate/filter-audio.mak b/tests/fate/filter-audio.mak
index dcadd5cacd..c05de05221 100644
--- a/tests/fate/filter-audio.mak
+++ b/tests/fate/filter-audio.mak
@@ -52,7 +52,8 @@ fate-filter-afade-log: CMD = framecrc -i $(SRC) -af afade=t=in:ss=1:d=2.5:curve=
FATE_AFILTER-$(call FILTERDEMDECENCMUX, AFADE, WAV, PCM_S16LE, PCM_S16LE, WAV) += $(FATE_FILTER_AFADE)
-FATE_AFILTER_SAMPLES-$(call FILTERDEMDECENCMUX, ACROSSFADE, WAV, PCM_S16LE, PCM_S16LE, WAV) += fate-filter-acrossfade
+FATE_FILTER_ACROSSFADE-$(call FRAMECRC) += fate-filter-acrossfade
+FATE_AFILTER_SAMPLES-$(call FILTERDEMDECENCMUX, ACROSSFADE, WAV, PCM_S16LE, PCM_S16LE, WAV) += $(FATE_FILTER_ACROSSFADE-yes)
fate-filter-acrossfade: tests/data/asynth-44100-2.wav
fate-filter-acrossfade: SRC = $(TARGET_PATH)/tests/data/asynth-44100-2.wav
fate-filter-acrossfade: SRC2 = $(TARGET_SAMPLES)/audio-reference/luckynight_2ch_44kHz_s16.wav
@@ -186,11 +187,13 @@ fate-filter-pan-downmix2: CMD = framecrc -ss 3.14 -i $(SRC) -frames:a 20 -filter
FATE_AFILTER-$(call ALLYES, LAVFI_INDEV AEVALSRC_FILTER SILENCEREMOVE_FILTER ARESAMPLE_FILTER) += fate-filter-silenceremove
fate-filter-silenceremove: CMD = framecrc -auto_conversion_filters -f lavfi -i "aevalsrc=between(t\,1\,2)+between(t\,4\,5)+between(t\,7\,9):d=10:n=8192,silenceremove=start_periods=0:start_duration=0:start_threshold=0:stop_periods=-1:stop_duration=0:stop_threshold=-90dB:window=0:detection=avg"
-FATE_AFILTER_SAMPLES-$(call FILTERDEMDECENCMUX, STEREOTOOLS ARESAMPLE, WAV, PCM_S16LE, PCM_S16LE, WAV) += fate-filter-stereotools
+FATE_FILTER_STEREOTOOLS-$(call FRAMECRC) += fate-filter-stereotools
+FATE_AFILTER_SAMPLES-$(call FILTERDEMDECENCMUX, STEREOTOOLS ARESAMPLE, WAV, PCM_S16LE, PCM_S16LE, WAV) += $(FATE_FILTER_STEREOTOOLS-yes)
fate-filter-stereotools: SRC = $(TARGET_SAMPLES)/audio-reference/luckynight_2ch_44kHz_s16.wav
fate-filter-stereotools: CMD = framecrc -i $(SRC) -frames:a 20 -af aresample,stereotools=mlev=0.015625,aresample
-FATE_AFILTER_SAMPLES-$(call FILTERDEMDECENCMUX, TREMOLO ATRIM ARESAMPLE, WAV, PCM_S16LE, PCM_S16LE, WAV) += fate-filter-tremolo
+FATE_FILTER_TREMOLO-$(call FRAMECRC) += fate-filter-tremolo
+FATE_AFILTER_SAMPLES-$(call FILTERDEMDECENCMUX, TREMOLO ATRIM ARESAMPLE, WAV, PCM_S16LE, PCM_S16LE, WAV) += $(FATE_FILTER_TREMOLO-yes)
fate-filter-tremolo: tests/data/asynth-44100-2.wav
fate-filter-tremolo: SRC = $(TARGET_PATH)/tests/data/asynth-44100-2.wav
fate-filter-tremolo: CMD = ffmpeg -auto_conversion_filters -i $(SRC) -af tremolo,atrim=end_sample=20480 -f wav -f s16le -
@@ -242,14 +245,14 @@ fate-filter-amix-transition: SRC2 = $(TARGET_PATH)/tests/data/asynth-44100-2-3.w
fate-filter-amix-transition: CMD = ffmpeg -auto_conversion_filters -filter_complex amix=inputs=3:dropout_transition=0.5 -max_size 4096 -i $(SRC) -ss 2 -max_size 4096 -i $(SRC1) -ss 4 -max_size 4096 -i $(SRC2) -f f32le -
fate-filter-amix-transition: REF = $(SAMPLES)/filter/amix_transition.pcm
-FATE_AFILTER_SAMPLES-$(call FILTERDEMDECENCMUX, AMIX ARESAMPLE, WAV, PCM_S16LE, PCM_F32LE, PCM_F32LE) += $(FATE_AMIX)
+FATE_AFILTER_SAMPLES-$(call FILTERDEMDECENCMUX, AMIX ARESAMPLE, WAV, PCM_S16LE, PCM_F32LE, PCM_F32LE, PIPE_PROTOCOL) += $(FATE_AMIX)
$(FATE_AMIX): tests/data/asynth-44100-2.wav tests/data/asynth-44100-2-2.wav
$(FATE_AMIX): SRC = $(TARGET_PATH)/tests/data/asynth-44100-2.wav
$(FATE_AMIX): SRC1 = $(TARGET_PATH)/tests/data/asynth-44100-2-2.wav
$(FATE_AMIX): CMP = oneoff
$(FATE_AMIX): CMP_UNIT = f32
-FATE_AFILTER_SAMPLES-$(call DEMDEC, FLV, NELLYMOSER, PCM_S16LE_MUXER ARESAMPLE_FILTER) += fate-filter-aresample
+FATE_AFILTER_SAMPLES-$(call PCM, FLV, NELLYMOSER, PCM_S16LE_MUXER ARESAMPLE_FILTER) += fate-filter-aresample
fate-filter-aresample: SRC = $(TARGET_SAMPLES)/nellymoser/nellymoser-discont.flv
fate-filter-aresample: CMD = pcm -analyzeduration 10000000 -i $(SRC) -af aresample=min_comp=0.001:min_hard_comp=0.1:first_pts=0
fate-filter-aresample: CMP = oneoff
@@ -412,7 +415,7 @@ fate-filter-hdcd-s32p: CMD = md5 -i $(SRC) -af hdcd -f s32le
fate-filter-hdcd-s32p: CMP = oneline
fate-filter-hdcd-s32p: REF = 0c5513e83eedaa10ab6fac9ddc173cf5
-FATE_AFILTER_SAMPLES-$(call FILTERDEMDECENCMUX, ATEMPO, WAV, PCM_S16LE, PCM_S16LE, PCM_S16LE WAV) += fate-filter-atempo
+FATE_AFILTER_SAMPLES-$(call FILTERDEMDECENCMUX, ATEMPO, WAV, PCM_S16LE, PCM_S16LE, PCM_S16LE WAV, PIPE_PROTOCOL) += fate-filter-atempo
fate-filter-atempo: tests/data/asynth-44100-1.wav
fate-filter-atempo: CMD = pcm -i $(TARGET_PATH)/tests/data/asynth-44100-1.wav -af "atempo=2.0"
fate-filter-atempo: CMP = oneoff
@@ -426,6 +429,7 @@ FATE_AFILTER-yes += fate-filter-formats
fate-filter-formats: libavfilter/tests/formats$(EXESUF)
fate-filter-formats: CMD = run libavfilter/tests/formats$(EXESUF)
+FATE_AFILTER-yes := $(if $(call FRAMECRC), $(FATE_AFILTER-yes))
FATE_SAMPLES_AVCONV += $(FATE_AFILTER_SAMPLES-yes)
FATE_FFMPEG += $(FATE_AFILTER-yes)
fate-afilter: $(FATE_AFILTER-yes) $(FATE_AFILTER_SAMPLES-yes)
diff --git a/tests/fate/filter-video.mak b/tests/fate/filter-video.mak
index ca1093b521..604c0c5572 100644
--- a/tests/fate/filter-video.mak
+++ b/tests/fate/filter-video.mak
@@ -574,8 +574,8 @@ fate-filter-pixelize-min: CMD = video_filter "pixelize=mode=min"
FATE_FILTER_VSYNTH_VIDEO_FILTER-$(CONFIG_PIXELIZE_FILTER) += fate-filter-pixelize-max
fate-filter-pixelize-max: CMD = video_filter "pixelize=mode=max"
-FATE_FILTER_VSYNTH_VIDEO_FILTER-$(CONFIG_TILTANDSHIFT_FILTER) += fate-filter-tiltandshift
-FATE_FILTER_VSYNTH_VIDEO_FILTER-$(call ALLYES, SCALE_FILTER TILTANDSHIFT_FILTER) += fate-filter-tiltandshift-410 fate-filter-tiltandshift-422 fate-filter-tiltandshift-444
+FATE_FILTER_VSYNTH_VIDEO_FILTER-$(call FRAMECRC,,, TILTANDSHIFT_FILTER) += fate-filter-tiltandshift
+FATE_FILTER_VSYNTH_VIDEO_FILTER-$(call FRAMECRC,,, SCALE_FILTER TILTANDSHIFT_FILTER) += fate-filter-tiltandshift-410 fate-filter-tiltandshift-422 fate-filter-tiltandshift-444
fate-filter-tiltandshift: CMD = framecrc -c:v pgmyuv -i $(SRC) -flags +bitexact -vf tiltandshift
fate-filter-tiltandshift-410: CMD = framecrc -c:v pgmyuv -i $(SRC) -flags +bitexact -vf scale=sws_flags=+accurate_rnd+bitexact,format=yuv410p,tiltandshift
fate-filter-tiltandshift-422: CMD = framecrc -c:v pgmyuv -i $(SRC) -flags +bitexact -vf scale=sws_flags=+accurate_rnd+bitexact,format=yuv422p,tiltandshift
diff --git a/tests/fate/flac.mak b/tests/fate/flac.mak
index 3424b2bf82..62f2126d92 100644
--- a/tests/fate/flac.mak
+++ b/tests/fate/flac.mak
@@ -30,7 +30,7 @@ fate-flac-rice-params: CMD = enc_dec_pcm flac wav s16le $(subst $(SAMPLES),$(TAR
fate-flac-%: CMP = oneoff
fate-flac-%: FUZZ = 0
-FATE_FLAC-$(call ENCMUX, FLAC, FLAC) += $(FATE_FLAC)
+FATE_FLAC-$(call ENCMUX, FLAC, FLAC, PIPE_PROTOCOL) += $(FATE_FLAC)
FATE_SAMPLES_AVCONV += $(FATE_FLAC-yes)
fate-flac: $(FATE_FLAC)
diff --git a/tests/fate/gapless.mak b/tests/fate/gapless.mak
index e6fba1436b..e2013ea854 100644
--- a/tests/fate/gapless.mak
+++ b/tests/fate/gapless.mak
@@ -1,4 +1,4 @@
-FATE_GAPLESS-$(call DEMDEC, MP3, MP3, ARESAMPLE_FILTER) += fate-gapless-mp3
+FATE_GAPLESS-$(call FRAMECRC, MP3, MP3, ARESAMPLE_FILTER) += fate-gapless-mp3
fate-gapless-mp3: CMD = gapless $(TARGET_SAMPLES)/gapless/gapless.mp3 "-c:a mp3"
FATE_GAPLESSINFO_PROBE-$(CONFIG_MP3_DEMUXER) += fate-gapless-mp3-side-data
diff --git a/tests/fate/h264.mak b/tests/fate/h264.mak
index 33bc3b78f1..c2c0017c89 100644
--- a/tests/fate/h264.mak
+++ b/tests/fate/h264.mak
@@ -224,15 +224,15 @@ FATE_H264-$(call FRAMECRC, MOV, H264) += fate-h264-unescaped-extradata
# this sample contains field-coded frames, with both fields in a single packet
FATE_H264-$(call FRAMECRC, MOV, H264) += fate-h264-twofields-packet
-FATE_H264-$(call DEMDEC, MOV H264, H264, H264_PARSER H264_MUXER H264_MP4TOANNEXB_BSF SCALE_FILTER) += fate-h264-bsf-mp4toannexb-new-extradata
+FATE_H264-$(call FRAMECRC, MOV H264, H264, H264_PARSER H264_MUXER H264_MP4TOANNEXB_BSF SCALE_FILTER) += fate-h264-bsf-mp4toannexb-new-extradata
-FATE_H264-$(call DEMMUX, MOV, H264, H264_MP4TOANNEXB_BSF) += fate-h264-bsf-mp4toannexb \
+FATE_H264-$(call FRAMECRC, MOV,, H264_MUXER H264_MP4TOANNEXB_BSF) += fate-h264-bsf-mp4toannexb \
fate-h264-bsf-mp4toannexb-2 \
-FATE_H264-$(call DEMDEC, MOV H264, H264, H264_PARSER H264_MUXER H264_MP4TOANNEXB_BSF EXTRACT_EXTRADATA_BSF) += fate-h264_mp4toannexb_ticket5927 \
+FATE_H264-$(call FRAMECRC, MOV H264, H264, H264_PARSER H264_MUXER H264_MP4TOANNEXB_BSF EXTRACT_EXTRADATA_BSF) += fate-h264_mp4toannexb_ticket5927 \
fate-h264_mp4toannexb_ticket5927_2
-FATE_H264-$(call DEMMUX, H264, MOV, H264_PARSER DTS2PTS_BSF) += fate-h264-bsf-dts2pts
+FATE_H264-$(call FRAMECRC, H264,, H264_PARSER MOV_MUXER DTS2PTS_BSF) += fate-h264-bsf-dts2pts
FATE_H264-$(call FRAMECRC, MATROSKA, H264) += fate-h264-direct-bff
FATE_H264-$(call FRAMECRC, FLV, H264, SCALE_FILTER) += fate-h264-brokensps-2580
diff --git a/tests/fate/hlsenc.mak b/tests/fate/hlsenc.mak
index 72c75bec3a..b7455b7a33 100644
--- a/tests/fate/hlsenc.mak
+++ b/tests/fate/hlsenc.mak
@@ -105,6 +105,8 @@ tests/data/hls_fmp4_ac3.m3u8: ffmpeg$(PROGSSUF)$(EXESUF) | tests/data
-hls_time 2 -hls_segment_filename "$(TARGET_PATH)/tests/data/hls_fmp4_ac3_%d.m4s" \
$(TARGET_PATH)/tests/data/hls_fmp4_ac3.m3u8 2>/dev/null
+FATE_HLSENC-yes := $(if $(call FRAMECRC), $(FATE_HLSENC-yes))
+
FATE_HLSENC_PROBE-$(call DEMMUX, HLS AC3, HLS MP4, AC3_DECODER) += fate-hls-fmp4_ac3
fate-hls-fmp4_ac3: tests/data/hls_fmp4_ac3.m3u8
fate-hls-fmp4_ac3: CMD = probeaudiostream $(TARGET_PATH)/tests/data/now_ac3.mp4
diff --git a/tests/fate/image.mak b/tests/fate/image.mak
index 3cedf9e877..98c4e0fdcc 100644
--- a/tests/fate/image.mak
+++ b/tests/fate/image.mak
@@ -331,7 +331,7 @@ FATE_EXR-$(call DEMDEC, IMAGE2, EXR, SCALE_FILTER) += $(FATE_EXR)
FATE_IMAGE_FRAMECRC += $(FATE_EXR-yes)
fate-exr: $(FATE_EXR-yes)
-FATE_JPG-$(call DEMDEC, IMAGE2, MJPEG, SCALE_FILTER SETSAR_FILTER) += fate-jpg-12bpp
+FATE_JPG-$(call FRAMECRC, IMAGE2, MJPEG, SCALE_FILTER SETSAR_FILTER) += fate-jpg-12bpp
fate-jpg-12bpp: CMD = framecrc -idct simple -i $(TARGET_SAMPLES)/jpg/12bpp.jpg -f rawvideo -pix_fmt gray16le -vf setsar=sar=sar,scale
FATE_JPG += fate-jpg-jfif
@@ -360,7 +360,7 @@ fate-jpg-rgb-5: CMD = framecrc -idct simple -i $(TARGET_SAMPLES)/jpg/jpg-8930-5.
FATE_JPG_TRANSCODE-$(call TRANSCODE, MJPEG, MJPEG IMAGE_JPEG_PIPE, IMAGE_PNG_PIPE_DEMUXER PNG_DECODER SCALE_FILTER) += fate-jpg-icc
fate-jpg-icc: CMD = transcode png_pipe $(TARGET_SAMPLES)/png1/lena-int_rgb24.png mjpeg "-vf scale" "" "-show_frames"
-FATE_JPG-$(call DEMDEC, IMAGE2, MJPEG) += $(FATE_JPG)
+FATE_JPG-$(call FRAMECRC, IMAGE2, MJPEG) += $(FATE_JPG)
FATE_IMAGE_FRAMECRC += $(FATE_JPG-yes)
FATE_IMAGE_TRANSCODE += $(FATE_JPG_TRANSCODE-yes)
fate-jpg: $(FATE_JPG-yes) $(FATE_JPG_TRANSCODE-yes)
diff --git a/tests/fate/imf.mak b/tests/fate/imf.mak
index 100822f5e0..5ff37104d4 100644
--- a/tests/fate/imf.mak
+++ b/tests/fate/imf.mak
@@ -4,6 +4,7 @@ fate-imf-cpl-with-repeat: CMD = framecrc -i $(TARGET_SAMPLES)/imf/countdown/CPL_
FATE_IMF += fate-imf-cpl-with-audio
fate-imf-cpl-with-audio: CMD = framecrc -i $(TARGET_SAMPLES)/imf/countdown-audio/CPL_688f4f63-a317-4271-99bf-51444ff39c5b.xml -c:a copy
-FATE_SAMPLES_FFMPEG-$(CONFIG_IMF_DEMUXER) += $(FATE_IMF)
+FATE_IMF := $(if $(call FRAMECRC, IMF), $(FATE_IMF))
+FATE_SAMPLES_FFMPEG += $(FATE_IMF)
fate-imfdec: $(FATE_IMF)
diff --git a/tests/fate/indeo.mak b/tests/fate/indeo.mak
index bb3c154bb8..158fd52a0b 100644
--- a/tests/fate/indeo.mak
+++ b/tests/fate/indeo.mak
@@ -1,26 +1,24 @@
-FATE_INDEO2 += fate-indeo2-delta
+FATE_INDEO2-$(call FRAMECRC, AVI, INDEO2) += fate-indeo2-delta
fate-indeo2-delta: CMD = framecrc -i $(TARGET_SAMPLES)/rt21/ISKATE.AVI -an
-FATE_INDEO2 += fate-indeo2-intra
+FATE_INDEO2-$(call FRAMECRC, AVI, INDEO2) += fate-indeo2-intra
fate-indeo2-intra: CMD = framecrc -i $(TARGET_SAMPLES)/rt21/VPAR0026.AVI
-FATE_SAMPLES_AVCONV-$(call DEMDEC, AVI, INDEO2) += $(FATE_INDEO2)
-fate-indeo2: $(FATE_INDEO2)
+fate-indeo2: $(FATE_INDEO2-yes)
-FATE_INDEO3-$(CONFIG_MOV_DEMUXER) += fate-indeo3-1
+FATE_INDEO3-$(call FRAMECRC, MOV, INDEO3) += fate-indeo3-1
fate-indeo3-1: CMD = framecrc -i $(TARGET_SAMPLES)/iv32/cubes.mov
-FATE_INDEO3-$(CONFIG_AVI_DEMUXER) += fate-indeo3-2
+FATE_INDEO3-$(call FRAMECRC, AVI, INDEO3) += fate-indeo3-2
fate-indeo3-2: CMD = framecrc -i $(TARGET_SAMPLES)/iv32/OPENINGH.avi
-FATE_SAMPLES_AVCONV-$(CONFIG_INDEO3_DECODER) += $(FATE_INDEO3-yes)
fate-indeo3: $(FATE_INDEO3-yes)
-FATE_INDEO-$(call DEMDEC, AVI, INDEO4) += fate-indeo4
+FATE_INDEO-$(call FRAMECRC, AVI, INDEO4) += fate-indeo4
fate-indeo4: CMD = framecrc -i $(TARGET_SAMPLES)/iv41/indeo41-partial.avi -an
-FATE_INDEO-$(call DEMDEC, AVI, INDEO5) += fate-indeo5
+FATE_INDEO-$(call FRAMECRC, AVI, INDEO5) += fate-indeo5
fate-indeo5: CMD = framecrc -i $(TARGET_SAMPLES)/iv50/Educ_Movie_DeadlyForce.avi -an
-FATE_SAMPLES_AVCONV += $(FATE_INDEO-yes)
+FATE_SAMPLES_AVCONV += $(FATE_INDEO2-yes) $(FATE_INDEO3-yes) $(FATE_INDEO-yes)
fate-indeo: $(FATE_INDEO2) $(FATE_INDEO3-yes) $(FATE_INDEO-yes)
diff --git a/tests/fate/lavf-container.mak b/tests/fate/lavf-container.mak
index 5d9e769458..2485c6088b 100644
--- a/tests/fate/lavf-container.mak
+++ b/tests/fate/lavf-container.mak
@@ -71,20 +71,20 @@ fate-lavf-wtv: CMD = lavf_container "" "-c:a mp2 -threads 1"
FATE_AVCONV += $(FATE_LAVF_CONTAINER)
fate-lavf-container fate-lavf: $(FATE_LAVF_CONTAINER)
-FATE_LAVF_CONTAINER_FATE-$(call DEMDEC, IVF, AV1, AV1_PARSER EXTRACT_EXTRADATA_BSF MP4_MUXER) += av1.mp4
-FATE_LAVF_CONTAINER_FATE-$(call DEMDEC, IVF MATROSKA, AV1, AV1_PARSER EXTRACT_EXTRADATA_BSF MATROSKA_MUXER) += av1.mkv
-FATE_LAVF_CONTAINER_FATE-$(call DEMDEC, EVC,, EVC_PARSER MP4_MUXER) += evc.mp4
-FATE_LAVF_CONTAINER_FATE-$(call DEMDEC, H264,, H264_PARSER EXTRACT_EXTRADATA_BSF MP4_MUXER) += h264.mp4
-FATE_LAVF_CONTAINER_FATE-$(call DEMDEC, HEVC,, HEVC_PARSER EXTRACT_EXTRADATA_BSF MP4_MUXER) += hevc.mp4
-FATE_LAVF_CONTAINER_FATE-$(call DEMDEC, MOV,, MOV_MUXER) += mv_hevc.mov
-FATE_LAVF_CONTAINER_FATE-$(call DEMDEC, VVC,, VVC_PARSER EXTRACT_EXTRADATA_BSF MP4_MUXER) += vvc.mp4
-FATE_LAVF_CONTAINER_FATE-$(call DEMDEC, MATROSKA OGG, VP3 THEORA, OGG_MUXER) += vp3.ogg
-FATE_LAVF_CONTAINER_FATE-$(call DEMDEC, MATROSKA OGG, VP8 VORBIS, VORBIS_PARSER OGV_MUXER) += vp8.ogg
-FATE_LAVF_CONTAINER_FATE-$(call DEMDEC, MOV LOAS, AAC_LATM, LATM_MUXER) += latm
-FATE_LAVF_CONTAINER_FATE-$(call DEMDEC, MP3,, MP3_MUXER) += mp3
-FATE_LAVF_CONTAINER_FATE-$(call DEMDEC, MOV, QTRLE MACE6, MOV_MUXER ARESAMPLE_FILTER) += qtrle_mace6.mov
-FATE_LAVF_CONTAINER_FATE-$(call DEMDEC, AVI, MSVIDEO1 PCM_U8, AVI_MUXER ARESAMPLE_FILTER) += cram.avi
-FATE_LAVF_CONTAINER_FATE-$(call DEMDEC, AVI,, FLV_MUXER) += hevc.flv
+FATE_LAVF_CONTAINER_FATE-$(call CRC, IVF, AV1, AV1_PARSER EXTRACT_EXTRADATA_BSF MP4_MUXER) += av1.mp4
+FATE_LAVF_CONTAINER_FATE-$(call CRC, IVF MATROSKA, AV1, AV1_PARSER EXTRACT_EXTRADATA_BSF MATROSKA_MUXER) += av1.mkv
+FATE_LAVF_CONTAINER_FATE-$(call CRC, EVC,, EVC_PARSER MP4_MUXER) += evc.mp4
+FATE_LAVF_CONTAINER_FATE-$(call CRC, H264,, H264_PARSER EXTRACT_EXTRADATA_BSF MP4_MUXER) += h264.mp4
+FATE_LAVF_CONTAINER_FATE-$(call CRC, HEVC,, HEVC_PARSER EXTRACT_EXTRADATA_BSF MP4_MUXER) += hevc.mp4
+FATE_LAVF_CONTAINER_FATE-$(call CRC, MOV,, MOV_MUXER) += mv_hevc.mov
+FATE_LAVF_CONTAINER_FATE-$(call CRC, VVC,, VVC_PARSER EXTRACT_EXTRADATA_BSF MP4_MUXER) += vvc.mp4
+FATE_LAVF_CONTAINER_FATE-$(call CRC, MATROSKA OGG, VP3 THEORA, OGG_MUXER) += vp3.ogg
+FATE_LAVF_CONTAINER_FATE-$(call CRC, MATROSKA OGG, VP8 VORBIS, VORBIS_PARSER OGV_MUXER) += vp8.ogg
+FATE_LAVF_CONTAINER_FATE-$(call CRC, MOV LOAS, AAC_LATM, LATM_MUXER) += latm
+FATE_LAVF_CONTAINER_FATE-$(call CRC, MP3,, MP3_MUXER) += mp3
+FATE_LAVF_CONTAINER_FATE-$(call CRC, MOV, QTRLE MACE6, MOV_MUXER ARESAMPLE_FILTER) += qtrle_mace6.mov
+FATE_LAVF_CONTAINER_FATE-$(call CRC, AVI, MSVIDEO1 PCM_U8, AVI_MUXER ARESAMPLE_FILTER) += cram.avi
+FATE_LAVF_CONTAINER_FATE-$(call CRC, AVI,, FLV_MUXER) += hevc.flv
FATE_LAVF_CONTAINER_FATE = $(FATE_LAVF_CONTAINER_FATE-yes:%=fate-lavf-fate-%)
diff --git a/tests/fate/lavf-video.mak b/tests/fate/lavf-video.mak
index da3b114bc8..971a21d161 100644
--- a/tests/fate/lavf-video.mak
+++ b/tests/fate/lavf-video.mak
@@ -12,7 +12,7 @@ FATE_LAVF_VIDEO-$(call ENCDEC, WRAPPED_AVFRAME RAWVIDEO, YUV4MPEGPIPE) += y4m
FATE_LAVF_VIDEO-$(CONFIG_SCALE_FILTER) += $(FATE_LAVF_VIDEO_SCALE-yes)
FATE_LAVF_VIDEO = $(FATE_LAVF_VIDEO-yes:%=fate-lavf-%)
FATE_LAVF_VIDEO := $(if $(call ALLYES, IMAGE2_DEMUXER PGMYUV_DECODER \
- RAWVIDEO_ENCODER CRC_MUXER, PIPE_PROTOCOL), \
+ RAWVIDEO_ENCODER CRC_MUXER PIPE_PROTOCOL), \
$(FATE_LAVF_VIDEO))
$(FATE_LAVF_VIDEO): CMD = lavf_video
diff --git a/tests/fate/libswresample.mak b/tests/fate/libswresample.mak
index a1e5ab91fa..4f1eab923a 100644
--- a/tests/fate/libswresample.mak
+++ b/tests/fate/libswresample.mak
@@ -1097,5 +1097,6 @@ fate-swr-audioconvert: CMP = stddev
fate-swr-audioconvert: FUZZ = 0
FATE_SWR += $(FATE_SWR_AUDIOCONVERT-yes)
+FATE_SWR := $(if $(CONFIG_PIPE_PROTOCOL), $(FATE_SWR))
FATE_FFMPEG += $(FATE_SWR)
fate-swr: $(FATE_SWR)
diff --git a/tests/fate/lossless-audio.mak b/tests/fate/lossless-audio.mak
index 7c5af885b4..8be62b5244 100644
--- a/tests/fate/lossless-audio.mak
+++ b/tests/fate/lossless-audio.mak
@@ -16,13 +16,13 @@ fate-lossless-rka: CMD = md5 -i $(TARGET_SAMPLES)/lossless-audio/luckynight-part
FATE_SAMPLES_LOSSLESS_AUDIO-$(call DEMDEC, OSQ, OSQ, ARESAMPLE_FILTER) += fate-lossless-osq
fate-lossless-osq: CMD = md5 -i $(TARGET_SAMPLES)/lossless-audio/luckynight-partial.osq -f s16le -af aresample
-FATE_SAMPLES_LOSSLESS_AUDIO-$(call DEMDEC, TAK, TAK, ARESAMPLE_FILTER) += fate-lossless-tak
+FATE_SAMPLES_LOSSLESS_AUDIO-$(call CRC, TAK, TAK, ARESAMPLE_FILTER) += fate-lossless-tak
fate-lossless-tak: CMD = crc -i $(TARGET_SAMPLES)/lossless-audio/luckynight-partial.tak -af aresample
-FATE_SAMPLES_LOSSLESS_AUDIO-$(call DEMDEC, TTA, TTA) += fate-lossless-tta
+FATE_SAMPLES_LOSSLESS_AUDIO-$(call CRC, TTA, TTA) += fate-lossless-tta
fate-lossless-tta: CMD = crc -i $(TARGET_SAMPLES)/lossless-audio/inside.tta
-FATE_SAMPLES_LOSSLESS_AUDIO-$(call DEMDEC, TTA, TTA) += fate-lossless-tta-encrypted
+FATE_SAMPLES_LOSSLESS_AUDIO-$(call CRC, TTA, TTA) += fate-lossless-tta-encrypted
fate-lossless-tta-encrypted: CMD = crc -password ffmpeg -i $(TARGET_SAMPLES)/lossless-audio/encrypted.tta
FATE_SAMPLES_LOSSLESS_AUDIO-$(call DEMDEC, ASF, WMALOSSLESS, ARESAMPLE_FILTER) += fate-lossless-wma fate-lossless-wma24-1 fate-lossless-wma24-2 fate-lossless-wma24-rawtile
@@ -35,5 +35,5 @@ fate-lossless-wmall: fate-lossless-wma fate-lossless-wma24-1 fate-lossless-wma24
FATE_SAMPLES_LOSSLESS_AUDIO += $(FATE_SAMPLES_LOSSLESS_AUDIO-yes)
FATE_SAMPLES_FFMPEG += $(FATE_SAMPLES_LOSSLESS_AUDIO)
-fate-lossless-audio: $(FATE_SAMPLES_LOSSLESS_AUDIO)
+fate-lossless-audio: $(FATE_SAMPLES_LOSSLESS_AUDIO)
diff --git a/tests/fate/matroska.mak b/tests/fate/matroska.mak
index 76b8a5e6db..bcd01928fc 100644
--- a/tests/fate/matroska.mak
+++ b/tests/fate/matroska.mak
@@ -1,9 +1,9 @@
-FATE_MATROSKA-$(call ALLYES, MATROSKA_DEMUXER ZLIB) += fate-matroska-prores-zlib
+FATE_MATROSKA-$(call FRAMECRC, MATROSKA,, ZLIB) += fate-matroska-prores-zlib
fate-matroska-prores-zlib: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/prores_zlib.mkv -c:v copy
# This tests that the matroska demuxer correctly adds the icpf header atom
# upon demuxing; it also tests bz2 decompression and unknown-length cluster.
-FATE_MATROSKA-$(call ALLYES, MATROSKA_DEMUXER BZLIB) += fate-matroska-prores-header-insertion-bz2
+FATE_MATROSKA-$(call FRAMECRC, MATROSKA,, BZLIB) += fate-matroska-prores-header-insertion-bz2
fate-matroska-prores-header-insertion-bz2: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/prores_bz2.mkv -map 0 -c copy
# This tests that the matroska demuxer supports modifying the colorspace
@@ -14,21 +14,21 @@ fate-matroska-remux: CMD = md5pipe -i $(TARGET_SAMPLES)/vp9-test-vectors/vp90-2-
fate-matroska-remux: CMP = oneline
fate-matroska-remux: REF = b9c7b650349972c9dce42ab79b472917
-FATE_MATROSKA-$(call ALLYES, MATROSKA_DEMUXER VORBIS_PARSER) += fate-matroska-xiph-lacing
+FATE_MATROSKA-$(call FRAMECRC, MATROSKA,, VORBIS_PARSER) += fate-matroska-xiph-lacing
fate-matroska-xiph-lacing: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/xiph_lacing.mka -c:a copy
# This tests that the Matroska demuxer correctly demuxes WavPack
# without CodecPrivate; it also tests zlib compressed WavPack.
-FATE_MATROSKA-$(call ALLYES, MATROSKA_DEMUXER ZLIB) += fate-matroska-wavpack-missing-codecprivate
+FATE_MATROSKA-$(call FRAMECRC, MATROSKA,, ZLIB) += fate-matroska-wavpack-missing-codecprivate
fate-matroska-wavpack-missing-codecprivate: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/wavpack_missing_codecprivate.mka -c copy
# This tests that the matroska demuxer supports decompressing
# zlib compressed tracks (both the CodecPrivate as well as the actual frames).
-FATE_MATROSKA-$(call ALLYES, MATROSKA_DEMUXER ZLIB) += fate-matroska-zlib-decompression
+FATE_MATROSKA-$(call FRAMECRC, MATROSKA,, ZLIB) += fate-matroska-zlib-decompression
fate-matroska-zlib-decompression: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/subtitle_zlib.mks -c:s copy
# This tests that the matroska demuxer can decompress lzo compressed tracks.
-FATE_MATROSKA-$(CONFIG_MATROSKA_DEMUXER) += fate-matroska-lzo-decompression
+FATE_MATROSKA-$(call FRAMECRC, MATROSKA) += fate-matroska-lzo-decompression
fate-matroska-lzo-decompression: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/lzo.mka -c copy
# This tests that the ALAC extradata is correctly transformed upon remuxing.
@@ -40,7 +40,7 @@ fate-matroska-alac-remux: CMD = transcode mov $(TARGET_SAMPLES)/lossless-audio/i
# This tests that the matroska demuxer correctly propagates
# the channel layout contained in vorbis comments in the CodecPrivate
# of flac tracks. It also tests header removal compression.
-FATE_MATROSKA-$(call ALLYES, MATROSKA_DEMUXER FLAC_PARSER) += fate-matroska-flac-channel-mapping
+FATE_MATROSKA-$(call FRAMECRC, MATROSKA,, FLAC_PARSER) += fate-matroska-flac-channel-mapping
fate-matroska-flac-channel-mapping: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/flac_channel_layouts.mka -map 0 -c:a copy
# This tests that the Matroska muxer writes the channel layout
@@ -50,8 +50,7 @@ fate-matroska-flac-channel-mapping: CMD = framecrc -i $(TARGET_SAMPLES)/mkv/flac
# Furthermore it tests everything the matroska-flac-channel-mapping test
# tests and it also tests the FLAC decoder and encoder, in particular
# the latter's ability to send updated extradata.
-FATE_MATROSKA-$(call ALLYES, FLAC_DECODER FLAC_ENCODER FLAC_PARSER \
- MATROSKA_DEMUXER MATROSKA_MUXER) += fate-matroska-flac-extradata-update
+FATE_MATROSKA-$(call TRANSCODE, FLAC, MATROSKA, FLAC_PARSER) += fate-matroska-flac-extradata-update
fate-matroska-flac-extradata-update: CMD = transcode matroska $(TARGET_SAMPLES)/mkv/flac_channel_layouts.mka \
matroska "-map 0 -map 0:0 -c flac -frames:a:2 8" "-map 0 -c copy"
@@ -64,9 +63,8 @@ fate-webm-av1-extradata-update: CMD = transcode ivf $(TARGET_SAMPLES)/av1/decode
# This test tests demuxing Vorbis and chapters from ogg and muxing it in and
# demuxing it from Matroska/WebM. It furthermore tests the WebM muxer, in
# particular its DASH mode. Finally, it tests writing the Cues at the front.
-FATE_MATROSKA_FFMPEG_FFPROBE-$(call ALLYES, MATROSKA_DEMUXER OGG_DEMUXER \
- VORBIS_DECODER VORBIS_PARSER WEBM_MUXER) \
- += fate-webm-dash-chapters
+FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, WEBM MATROSKA, OGG_DEMUXER VORBIS_DECODER VORBIS_PARSER) \
+ += fate-webm-dash-chapters
fate-webm-dash-chapters: CMD = transcode ogg $(TARGET_SAMPLES)/vorbis/vorbis_chapter_extension_demo.ogg webm "-c copy -cluster_time_limit 1500 -dash 1 -dash_track_number 124 -reserve_index_space 400" "-c copy -t 0.5" -show_chapters
# The input file has a Block whose payload has a size of zero before reversing
@@ -75,7 +73,7 @@ fate-webm-dash-chapters: CMD = transcode ogg $(TARGET_SAMPLES)/vorbis/vorbis_cha
# For the muxer this tests that it can correctly write huge TrackNumbers and
# that it can expand the Cues element's length field by one byte if necessary.
# It furthermore tests correct propagation of the description tag.
-FATE_MATROSKA_FFMPEG_FFPROBE-$(call DEMMUX, MATROSKA, MATROSKA) \
+FATE_MATROSKA_FFMPEG_FFPROBE-$(call FRAMECRC, MATROSKA,, MATROSKA_MUXER) \
+= fate-matroska-zero-length-block
fate-matroska-zero-length-block: CMD = transcode matroska $(TARGET_SAMPLES)/mkv/zero_length_block.mks matroska "-c:s copy -dash 1 -dash_track_number 2000000000 -reserve_index_space 62 -metadata_header_padding 1 -default_mode infer_no_subs" "-c:s copy" "-show_entries stream_tags=description"
diff --git a/tests/fate/microsoft.mak b/tests/fate/microsoft.mak
index 15ca874c7f..8d8e92575a 100644
--- a/tests/fate/microsoft.mak
+++ b/tests/fate/microsoft.mak
@@ -47,7 +47,7 @@ fate-wmv3-drm-nodec: CMD = framecrc -cryptokey 137381538c84c068111902a59c5cf6c34
FATE_MICROSOFT += $(FATE_WMV3_DRM-yes)
fate-wmv3-drm: $(FATE_WMV3_DRM-yes)
-FATE_MICROSOFT-$(call DEMDEC, ASF, WMV2) += fate-wmv8-x8intra
+FATE_MICROSOFT-$(call FRAMECRC, ASF, WMV2) += fate-wmv8-x8intra
fate-wmv8-x8intra: CMD = framecrc -flags +bitexact -i $(TARGET_SAMPLES)/wmv8/wmv8_x8intra.wmv -an
FATE_VC1 += fate-vc1_sa00040
diff --git a/tests/fate/monkeysaudio.mak b/tests/fate/monkeysaudio.mak
index 55d47b4539..eaca9005c8 100644
--- a/tests/fate/monkeysaudio.mak
+++ b/tests/fate/monkeysaudio.mak
@@ -19,5 +19,6 @@ fate-lossless-monkeysaudio-399: CMD = md5 -i $(TARGET_SAMPLES)/lossless-audio/lu
FATE_APE += fate-lossless-monkeysaudio-legacy
fate-lossless-monkeysaudio-legacy: CMD = md5 -i $(TARGET_SAMPLES)/lossless-audio/NoLegacy-cut.ape -f s32le -af aresample
-FATE_SAMPLES_FFMPEG-$(call DEMDEC, APE, APE, ARESAMPLE_FILTER) += $(FATE_APE)
+FATE_APE := $(if $(call CRC, APE, APE, ARESAMPLE_FILTER), $(FATE_APE))
+FATE_SAMPLES_FFMPEG += $(FATE_APE)
fate-lossless-monkeysaudio: $(FATE_APE)
diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak
index 78da66a6f7..c752ad2f7f 100644
--- a/tests/fate/mov.mak
+++ b/tests/fate/mov.mak
@@ -177,19 +177,19 @@ fate-mov-heic-demux-clap-irot-imir: CMD = stream_demux mov $(TARGET_SAMPLES)/hei
"-show_entries stream=index,id:stream_disposition:stream_side_data_list"
# heic demuxing - still image with multiple items in a grid.
-FATE_MOV_FFMPEG_FFPROBE_SAMPLES-$(call DEMMUX, MOV, FRAMECRC, HEVC_DECODER HEVC_PARSER) \
+FATE_MOV_FFMPEG_FFPROBE_SAMPLES-$(call FRAMECRC, MOV, HEVC, HEVC_PARSER) \
+= fate-mov-heic-demux-still-image-grid
fate-mov-heic-demux-still-image-grid: CMD = stream_demux mov $(TARGET_SAMPLES)/heif-conformance/C007.heic "" "-c:v copy -map 0:g:0" \
"-show_entries stream_group=index,id,nb_streams,type:stream_group_components:stream_group_disposition:stream_group_tags:stream_group_stream=index,id:stream_group_stream_disposition"
# heic demuxing - still image with multiple items in an overlay canvas.
-FATE_MOV_FFMPEG_FFPROBE_SAMPLES-$(call DEMMUX, MOV, FRAMECRC, HEVC_DECODER HEVC_PARSER) \
+FATE_MOV_FFMPEG_FFPROBE_SAMPLES-$(call FRAMECRC, MOV, HEVC, HEVC_PARSER) \
+= fate-mov-heic-demux-still-image-iovl
fate-mov-heic-demux-still-image-iovl: CMD = stream_demux mov $(TARGET_SAMPLES)/heif-conformance/C015.heic "" "-c:v copy -map 0:g:0" \
"-show_entries stream_group=index,id,nb_streams,type:stream_group_components:stream_group_disposition:stream_group_tags:stream_group_stream=index,id:stream_group_stream_disposition"
# heic demuxing - still image where one image item is placed twice on an overlay canvas.
-FATE_MOV_FFMPEG_FFPROBE_SAMPLES-$(call DEMMUX, MOV, FRAMECRC, HEVC_DECODER HEVC_PARSER) \
+FATE_MOV_FFMPEG_FFPROBE_SAMPLES-$(call FRAMECRC, MOV, HEVC, HEVC_PARSER) \
+= fate-mov-heic-demux-still-image-iovl-2
fate-mov-heic-demux-still-image-iovl-2: CMD = stream_demux mov $(TARGET_SAMPLES)/heif-conformance/C021.heic "" "-c:v copy -map 0:g:0" \
"-show_entries stream_group=index,id,nb_streams,type:stream_group_components:stream_group_disposition:stream_group_tags:stream_group_stream=index,id:stream_group_stream_disposition"
diff --git a/tests/fate/mp3.mak b/tests/fate/mp3.mak
index 638ff63264..145ce72a6e 100644
--- a/tests/fate/mp3.mak
+++ b/tests/fate/mp3.mak
@@ -36,7 +36,7 @@ $(FATE_MP3): FUZZ = 18
fate-mp3-float-extra_overread: FUZZ = 23
-FATE_MP3-$(call DEMDEC, MP3, MP3FLOAT, ARESAMPLE_FILTER) += $(FATE_MP3)
+FATE_MP3-$(call DEMDEC, MP3, MP3FLOAT, ARESAMPLE_FILTER PIPE_PROTOCOL) += $(FATE_MP3)
FATE_SAMPLES_AVCONV += $(FATE_MP3-yes)
fate-mp3: $(FATE_MP3-yes)
diff --git a/tests/fate/mpc.mak b/tests/fate/mpc.mak
index 1a034da197..7c194c268d 100644
--- a/tests/fate/mpc.mak
+++ b/tests/fate/mpc.mak
@@ -1,10 +1,10 @@
-FATE_MPC-$(CONFIG_MPC_DEMUXER) += fate-mpc7-demux
+FATE_MPC-$(call CRC, MPC) += fate-mpc7-demux
fate-mpc7-demux: CMD = crc -i $(TARGET_SAMPLES)/musepack/inside-mp7.mpc -c:a copy
-FATE_MPC-$(CONFIG_MPC8_DEMUXER) += fate-mpc8-demux
+FATE_MPC-$(call CRC, MPC) += fate-mpc8-demux
fate-mpc8-demux: CMD = crc -i $(TARGET_SAMPLES)/musepack/inside-mp8.mpc -c:a copy
-FATE_MPC-$(call DEMDEC, MPC, MPC7, ARESAMPLE_FILTER) += fate-musepack7
+FATE_MPC-$(call PCM, MPC, MPC7, ARESAMPLE_FILTER) += fate-musepack7
fate-musepack7: CMD = pcm -i $(TARGET_SAMPLES)/musepack/inside-mp7.mpc
fate-musepack7: CMP = oneoff
fate-musepack7: REF = $(SAMPLES)/musepack/inside-mp7.pcm
diff --git a/tests/fate/mpegps.mak b/tests/fate/mpegps.mak
index 43cd2aa22b..a6114b1a8a 100644
--- a/tests/fate/mpegps.mak
+++ b/tests/fate/mpegps.mak
@@ -1,5 +1,5 @@
# This tests that a 16-bit pcm_dvd stream is correctly remuxed in mpegps
-FATE_MPEGPS-$(call DEMMUX, MPEGPS, MPEG1SYSTEM) += fate-mpegps-remuxed-pcm-demux
+FATE_MPEGPS-$(call REMUX, MPEG1SYSTEM MPEGPS) += fate-mpegps-remuxed-pcm-demux
fate-mpegps-remuxed-pcm-demux: $(SAMPLES)/mpegps/pcm_aud.mpg
fate-mpegps-remuxed-pcm-demux: CMD = stream_remux "mpeg" "$(TARGET_SAMPLES)/mpegps/pcm_aud.mpg" "" "mpeg" "-map 0:a:0" "" "-codec copy"
diff --git a/tests/fate/oma.mak b/tests/fate/oma.mak
index 8f872242f4..cf670a69bb 100644
--- a/tests/fate/oma.mak
+++ b/tests/fate/oma.mak
@@ -1,4 +1,4 @@
-FATE_OMA_FFMPEG-$(call ALLYES, OMA_DEMUXER CRC_MUXER) += fate-oma-demux
+FATE_OMA_FFMPEG-$(call CRC, OMA) += fate-oma-demux
fate-oma-demux: CMD = crc -i $(TARGET_SAMPLES)/oma/01-Untitled-partial.oma -c:a copy
# Also tests splitting and joining the date into TYER and TDAT id3v2.3 tags.
diff --git a/tests/fate/pcm.mak b/tests/fate/pcm.mak
index fe432b0852..b4e405d58b 100644
--- a/tests/fate/pcm.mak
+++ b/tests/fate/pcm.mak
@@ -1,10 +1,10 @@
FATE_SAMPLES_PCM-$(call TRANSCODE, PCM_S16LE PCM_U8, PCM_S16LE WAV, ARESAMPLE_FILTER) += fate-iff-pcm
fate-iff-pcm: CMD = md5 -i $(TARGET_SAMPLES)/iff/Bells -f s16le -af aresample
-FATE_SAMPLES_PCM-$(call DEMDEC, MPEGPS, PCM_DVD, ARESAMPLE_FILTER) += fate-pcm_dvd
+FATE_SAMPLES_PCM-$(call FRAMECRC, MPEGPS, PCM_DVD, ARESAMPLE_FILTER) += fate-pcm_dvd
fate-pcm_dvd: CMD = framecrc -i $(TARGET_SAMPLES)/pcm-dvd/coolitnow-partial.vob -vn -af aresample
-FATE_SAMPLES_PCM-$(call DEMDEC, EA, PCM_S16LE_PLANAR, ARESAMPLE_FILTER) += fate-pcm-planar
+FATE_SAMPLES_PCM-$(call FRAMECRC, EA, PCM_S16LE_PLANAR, ARESAMPLE_FILTER) += fate-pcm-planar
fate-pcm-planar: CMD = framecrc -i $(TARGET_SAMPLES)/ea-mad/xeasport.mad -vn -af aresample
FATE_SAMPLES_PCM-$(call DEMDEC, MOV, PCM_S16BE, PCM_S16LE_MUXER) += fate-pcm_s16be-stereo
@@ -19,10 +19,11 @@ fate-pcm_u8-mono: CMD = md5 -i $(TARGET_SAMPLES)/qt-surge-suite/surge-1-8-raw.mo
FATE_SAMPLES_PCM-$(call TRANSCODE, PCM_S16LE PCM_U8, PCM_S16LE MOV, ARESAMPLE_FILTER) += fate-pcm_u8-stereo
fate-pcm_u8-stereo: CMD = md5 -i $(TARGET_SAMPLES)/qt-surge-suite/surge-2-8-raw.mov -f s16le -af aresample
-FATE_SAMPLES_PCM-$(call DEMDEC, W64, PCM_S16LE) += fate-w64
+FATE_SAMPLES_PCM-$(call CRC, W64, PCM_S16LE) += fate-w64
fate-w64: CMD = crc -i $(TARGET_SAMPLES)/w64/w64-pcm16.w64
-FATE_PCM-$(call ENCMUX, PCM_S24DAUD, DAUD, WAV_DEMUXER FILE_PROTOCOL) += fate-dcinema-encode
+FATE_DCINEMA_ENCODE-$(call FRAMEMD5) := fate-dcinema-encode
+FATE_PCM-$(call ENCMUX, PCM_S24DAUD, DAUD, WAV_DEMUXER) += $(FATE_DCINEMA_ENCODE-yes)
fate-dcinema-encode: tests/data/asynth-96000-6.wav
fate-dcinema-encode: SRC = tests/data/asynth-96000-6.wav
fate-dcinema-encode: CMD = enc_dec_pcm daud framemd5 s16le $(SRC) -c:a pcm_s24daud -frames:a 20
diff --git a/tests/fate/qoa.mak b/tests/fate/qoa.mak
index 2e20ee5ee1..f0868e7825 100644
--- a/tests/fate/qoa.mak
+++ b/tests/fate/qoa.mak
@@ -1,10 +1,10 @@
-FATE_QOA-$(call DEMDEC, QOA, QOA) += fate-qoa-152
+FATE_QOA-$(call FRAMECRC, QOA, QOA) += fate-qoa-152
fate-qoa-152: CMD = framecrc -i $(TARGET_SAMPLES)/qoa/coin_48_1_152.qoa
-FATE_QOA-$(call DEMDEC, QOA, QOA) += fate-qoa-278
+FATE_QOA-$(call FRAMECRC, QOA, QOA) += fate-qoa-278
fate-qoa-278: CMD = framecrc -i $(TARGET_SAMPLES)/qoa/vibra_44_2_278.qoa
-FATE_QOA-$(call DEMDEC, QOA, QOA) += fate-qoa-303
+FATE_QOA-$(call FRAMECRC, QOA, QOA) += fate-qoa-303
fate-qoa-303: CMD = framecrc -i $(TARGET_SAMPLES)/qoa/banjo_48_2_303.qoa
fate-qoa: fate-qoa-152 fate-qoa-278 fate-qoa-303
diff --git a/tests/fate/real.mak b/tests/fate/real.mak
index 13ceab7adf..1935619d1b 100644
--- a/tests/fate/real.mak
+++ b/tests/fate/real.mak
@@ -1,4 +1,4 @@
-FATE_REALAUDIO-$(call DEMDEC, RM, RA_144) += fate-ra3-144
+FATE_REALAUDIO-$(call FRAMECRC, RM, RA_144) += fate-ra3-144
fate-ra3-144: CMD = framecrc -i $(TARGET_SAMPLES)/realaudio/ra3.ra
#FATE_REALAUDIO-$(call DEMDEC, RM, RA_288) += fate-ra4-288
@@ -6,27 +6,27 @@ fate-ra4-288: CMD = pcm -i $(TARGET_SAMPLES)/realaudio/ra4_288.ra
fate-ra4-288: REF = $(SAMPLES)/realaudio/ra4_288.pcm
fate-ra4-288: CMP = oneoff
-FATE_REALMEDIA_AUDIO-$(call DEMDEC, RM, RA_144) += fate-ra-144
+FATE_REALMEDIA_AUDIO-$(call PCM, RM, RA_144) += fate-ra-144
fate-ra-144: CMD = md5 -i $(TARGET_SAMPLES)/real/ra3_in_rm_file.rm -f s16le
-FATE_REALMEDIA_AUDIO-$(call DEMDEC, RM, RA_288, ARESAMPLE_FILTER) += fate-ra-288
+FATE_REALMEDIA_AUDIO-$(call PCM, RM, RA_288, ARESAMPLE_FILTER) += fate-ra-288
fate-ra-288: CMD = pcm -i $(TARGET_SAMPLES)/real/ra_288.rm
fate-ra-288: CMP = oneoff
fate-ra-288: REF = $(SAMPLES)/real/ra_288.pcm
fate-ra-288: FUZZ = 2
-FATE_REALMEDIA_AUDIO-$(call DEMDEC, RM, COOK, ARESAMPLE_FILTER) += fate-ra-cook
+FATE_REALMEDIA_AUDIO-$(call PCM, RM, COOK, ARESAMPLE_FILTER) += fate-ra-cook
fate-ra-cook: CMD = pcm -i $(TARGET_SAMPLES)/real/ra_cook.rm
fate-ra-cook: CMP = oneoff
fate-ra-cook: REF = $(SAMPLES)/real/ra_cook.pcm
-FATE_REALMEDIA_VIDEO-$(call DEMDEC, RM, RV20) += fate-rv20-1239
+FATE_REALMEDIA_VIDEO-$(call FRAMECRC, RM, RV20) += fate-rv20-1239
fate-rv20-1239: CMD = framecrc -flags +bitexact -idct simple -lowres 1 -i $(TARGET_SAMPLES)/real/G2_with_SVT_320_240.rm
-FATE_REALMEDIA_VIDEO-$(call DEMDEC, RM, RV30) += fate-rv30
+FATE_REALMEDIA_VIDEO-$(call FRAMECRC, RM, RV30) += fate-rv30
fate-rv30: CMD = framecrc -flags +bitexact -idct simple -i $(TARGET_SAMPLES)/real/rv30.rm -an
-FATE_REALMEDIA_VIDEO-$(call DEMDEC, RM, RV40) += fate-rv40
+FATE_REALMEDIA_VIDEO-$(call FRAMECRC, RM, RV40) += fate-rv40
fate-rv40: CMD = framecrc -i $(TARGET_SAMPLES)/real/spygames-2MB.rmvb -t 10 -an
FATE_SIPR += fate-sipr-5k0
@@ -48,7 +48,7 @@ fate-sipr-16k: SIZE_TOLERANCE = 40000
$(FATE_SIPR): CMP = oneoff
-FATE_REALMEDIA_AUDIO-$(call DEMDEC, RM, SIPR, ARESAMPLE_FILTER) += $(FATE_SIPR)
+FATE_REALMEDIA_AUDIO-$(call PCM, RM, SIPR, ARESAMPLE_FILTER) += $(FATE_SIPR)
fate-sipr: $(FATE_SIPR)
fate-realaudio: $(FATE_REALAUDIO-yes)
diff --git a/tests/fate/segment.mak b/tests/fate/segment.mak
index cd906ad57a..343af73b10 100644
--- a/tests/fate/segment.mak
+++ b/tests/fate/segment.mak
@@ -35,20 +35,20 @@ tests/data/adts-to-mkv-cated-%.mkv: tests/data/adts-to-mkv-header.mkv tests/data
FATE_SEGMENT += fate-segment-mp4-to-ts
fate-segment-mp4-to-ts: tests/data/mp4-to-ts.m3u8
fate-segment-mp4-to-ts: CMD = framecrc -flags +bitexact -i $(TARGET_PATH)/tests/data/mp4-to-ts.m3u8 -c copy
-FATE_SEGMENT-$(call DEMDEC, MOV HLS MATROSKA, H264, H264_PARSER H264_MP4TOANNEXB_BSF MPEGTS_MUXER STREAM_SEGMENT_MUXER EXTRACT_EXTRADATA_BSF) += fate-segment-mp4-to-ts
+FATE_SEGMENT-$(call FRAMECRC, MOV HLS MATROSKA, H264, H264_PARSER H264_MP4TOANNEXB_BSF MPEGTS_MUXER STREAM_SEGMENT_MUXER EXTRACT_EXTRADATA_BSF) += fate-segment-mp4-to-ts
FATE_SEGMENT += fate-segment-adts-to-mkv
fate-segment-adts-to-mkv: tests/data/adts-to-mkv.m3u8
fate-segment-adts-to-mkv: CMD = framecrc -flags +bitexact -i $(TARGET_PATH)/tests/data/adts-to-mkv.m3u8 -c copy
fate-segment-adts-to-mkv: REF = $(SRC_PATH)/tests/ref/fate/segment-adts-to-mkv-header-all
-FATE_SEGMENT-$(call DEMDEC, AAC HLS MATROSKA, AAC, AAC_ADTSTOASC_BSF MATROSKA_MUXER SEGMENT_MUXER) += fate-segment-adts-to-mkv
+FATE_SEGMENT-$(call FRAMECRC, AAC HLS MATROSKA, AAC, AAC_ADTSTOASC_BSF MATROSKA_MUXER SEGMENT_MUXER) += fate-segment-adts-to-mkv
FATE_SEGMENT_ALLPARTS = $(FATE_SEGMENT_PARTS)
FATE_SEGMENT_ALLPARTS += all
FATE_SEGMENT_SPLIT += $(FATE_SEGMENT_ALLPARTS:%=fate-segment-adts-to-mkv-header-%)
$(foreach N,$(FATE_SEGMENT_ALLPARTS),$(eval $(N:%=fate-segment-adts-to-mkv-header-%): tests/data/adts-to-mkv-cated-$(N).mkv))
fate-segment-adts-to-mkv-header-%: CMD = framecrc -flags +bitexact -i $(TARGET_PATH)/tests/data/$(@:fate-segment-adts-to-mkv-header-%=adts-to-mkv-cated-%).mkv -c copy
-FATE_SEGMENT-$(call DEMDEC, AAC HLS MATROSKA, AAC, AAC_ADTSTOASC_BSF MATROSKA_MUXER SEGMENT_MUXER) += $(FATE_SEGMENT_SPLIT)
+FATE_SEGMENT-$(call FRAMECRC, AAC HLS MATROSKA, AAC, AAC_ADTSTOASC_BSF MATROSKA_MUXER SEGMENT_MUXER) += $(FATE_SEGMENT_SPLIT)
FATE_SAMPLES_FFMPEG += $(FATE_SEGMENT-yes)
diff --git a/tests/fate/subtitles.mak b/tests/fate/subtitles.mak
index fa0c09fc9c..6aef4090d9 100644
--- a/tests/fate/subtitles.mak
+++ b/tests/fate/subtitles.mak
@@ -124,7 +124,7 @@ fate-sub-rcwt: CMD = md5 -i $(TARGET_SAMPLES)/sub/witch.scc -map 0 -c copy -f rc
fate-sub-rcwt: CMP = oneline
fate-sub-rcwt: REF = d86f179094a5752d68aa97d82cf887b0
-FATE_SUBTITLES-$(call ALLYES, MPEGTS_DEMUXER DVBSUB_DECODER DVBSUB_ENCODER) += fate-sub-dvb
+FATE_SUBTITLES-$(call FRAMECRC, MPEGTS, DVBSUB, DVBSUB_ENCODER) += fate-sub-dvb
fate-sub-dvb: CMD = framecrc -i $(TARGET_SAMPLES)/sub/dvbsubtest_filter.ts -map s:0 -c dvbsub
FATE_SUBTITLES-$(call ALLYES, PIPE_PROTOCOL SRT_DEMUXER SUBRIP_DECODER TTML_ENCODER TTML_MUXER) += fate-sub-ttmlenc
@@ -132,6 +132,7 @@ fate-sub-ttmlenc: CMD = fmtstdout ttml -i $(TARGET_SAMPLES)/sub/SubRip_capabilit
FATE_SUBTITLES-$(call ENCMUX, ASS, ASS) += $(FATE_SUBTITLES_ASS-yes)
FATE_SUBTITLES += $(FATE_SUBTITLES-yes)
+FATE_SUBTITLES := $(if $(CONFIG_PIPE_PROTOCOL), $(FATE_SUBTITLES))
fate-sub-%: CMP = rawdiff
diff --git a/tests/fate/video.mak b/tests/fate/video.mak
index 84a67e55a0..c5e5056e8b 100644
--- a/tests/fate/video.mak
+++ b/tests/fate/video.mak
@@ -288,7 +288,7 @@ fate-nuv-rtjpeg: CMD = framecrc -idct simple -i $(TARGET_SAMPLES)/nuv/Today.nuv
FATE_NUV += fate-nuv-rtjpeg-fh
fate-nuv-rtjpeg-fh: CMD = framecrc -idct simple -i $(TARGET_SAMPLES)/nuv/rtjpeg_frameheader.nuv -an
-FATE_VIDEO-$(call DEMDEC, NUV, NUV) += $(FATE_NUV)
+FATE_VIDEO-$(call FRAMECRC, NUV, NUV) += $(FATE_NUV)
fate-nuv: $(FATE_NUV)
FATE_VIDEO-$(call FRAMECRC, PAF, PAF_VIDEO, SCALE_FILTER) += fate-paf-video
diff --git a/tests/fate/voice.mak b/tests/fate/voice.mak
index 84eb83e07f..945b8624ac 100644
--- a/tests/fate/voice.mak
+++ b/tests/fate/voice.mak
@@ -1,7 +1,7 @@
-FATE_G722-$(call DEMDEC, G722, ADPCM_G722) += fate-g722dec-1
+FATE_G722-$(call FRAMECRC, G722, ADPCM_G722) += fate-g722dec-1
fate-g722dec-1: CMD = framecrc -i $(TARGET_SAMPLES)/g722/conf-adminmenu-162.g722
-FATE_G722-$(call TRANSCODE, ADPCM_G722, WAV, PCM_S16LE_DECODER) += fate-g722-encode
+FATE_G722-$(call FRAMEMD5, WAV, ADPCM_G722, WAV_MUXER ADPCM_G722_ENCODER PCM_S16LE_DECODER) += fate-g722-encode
fate-g722-encode: tests/data/asynth-16000-1.wav
fate-g722-encode: SRC = tests/data/asynth-16000-1.wav
fate-g722-encode: CMD = enc_dec_pcm wav framemd5 s16le $(SRC) -c:a g722
@@ -33,7 +33,7 @@ fate-g723_1-dec-7: CMD = framecrc -postfilter 1 -i $(TARGET_SAMPLES)/g723_1/dtx6
FATE_G723_1 += fate-g723_1-dec-8
fate-g723_1-dec-8: CMD = framecrc -postfilter 1 -i $(TARGET_SAMPLES)/g723_1/dtx63e.tco -af aresample
-FATE_VOICE-$(call DEMDEC, G723_1, G723_1, ARESAMPLE_FILTER) += $(FATE_G723_1)
+FATE_VOICE-$(call FRAMECRC, G723_1, G723_1, ARESAMPLE_FILTER) += $(FATE_G723_1)
fate-g723_1: $(FATE_G723_1)
FATE_G726 += fate-g726-encode-2bit
@@ -51,24 +51,24 @@ fate-g726-encode-5bit: CMD = enc_dec_pcm wav framemd5 s16le $(SRC) -c:a g726 -b:
$(FATE_G726): tests/data/asynth-8000-1.wav
$(FATE_G726): SRC = tests/data/asynth-8000-1.wav
-FATE_VOICE-$(call TRANSCODE, ADPCM_G726, WAV, PCM_S16LE_DECODER) += $(FATE_G726)
+FATE_VOICE-$(call FRAMEMD5, WAV, ADPCM_G726, WAV_MUXER ADPCM_G726_ENCODER PCM_S16LE_DECODER) += $(FATE_G726)
fate-g726: $(FATE_G726)
-FATE_GSM-$(call DEMDEC, WAV, GSM) += fate-gsm-ms
+FATE_GSM-$(call FRAMECRC, WAV, GSM) += fate-gsm-ms
fate-gsm-ms: CMD = framecrc -i $(TARGET_SAMPLES)/gsm/ciao.wav
-FATE_GSM-$(call DEMDEC, MOV, GSM) += fate-gsm-toast
+FATE_GSM-$(call FRAMECRC, MOV, GSM) += fate-gsm-toast
fate-gsm-toast: CMD = framecrc -i $(TARGET_SAMPLES)/gsm/sample-gsm-8000.mov -t 10
FATE_VOICE-yes += $(FATE_GSM-yes)
fate-gsm: $(FATE_GSM-yes)
-FATE_VOICE-$(call DEMDEC, QCP, QCELP, ARESAMPLE_FILTER) += fate-qcelp
+FATE_VOICE-$(call PCM, QCP, QCELP, ARESAMPLE_FILTER) += fate-qcelp
fate-qcelp: CMD = pcm -i $(TARGET_SAMPLES)/qcp/0036580847.QCP
fate-qcelp: CMP = oneoff
fate-qcelp: REF = $(SAMPLES)/qcp/0036580847.pcm
-FATE_VOICE-$(call DEMDEC, WAV, TRUESPEECH) += fate-truespeech
+FATE_VOICE-$(call PCM, WAV, TRUESPEECH) += fate-truespeech
fate-truespeech: CMD = pcm -i $(TARGET_SAMPLES)/truespeech/a6.wav
fate-truespeech: CMP = oneoff
fate-truespeech: REF = $(SAMPLES)/truespeech/a6.pcm
diff --git a/tests/fate/vpx.mak b/tests/fate/vpx.mak
index 5f688b296e..e54dd69092 100644
--- a/tests/fate/vpx.mak
+++ b/tests/fate/vpx.mak
@@ -138,7 +138,7 @@ fate-vp9-05-resize: REF = $(SRC_PATH)/tests/ref/fate/vp9-05-resize
fate-vp9-encparams: CMD = venc_data $(TARGET_SAMPLES)/vp9-test-vectors/vp90-2-segmentation-aq-akiyo.webm 0 5
FATE_SAMPLES_DUMP_DATA-$(call DEMDEC, MATROSKA, VP9) += fate-vp9-encparams
-FATE_VP9-$(call ALLYES, MATROSKA_DEMUXER VP9_PARSER VP9_SUPERFRAME_SPLIT_BSF \
+FATE_VP9-$(call FRAMECRC, MATROSKA,, VP9_PARSER VP9_SUPERFRAME_SPLIT_BSF \
VP9_SUPERFRAME_BSF FRAMECRC_MUXER) += fate-vp9-superframe-bsf
fate-vp9-superframe-bsf: CMD = framecrc -i $(TARGET_SAMPLES)/vp9-test-vectors/vp90-2-segmentation-sf-akiyo.webm -c:v copy -bsf:v vp9_superframe_split,vp9_superframe
diff --git a/tests/fate/vqf.mak b/tests/fate/vqf.mak
index ccdbe50033..16db9c828a 100644
--- a/tests/fate/vqf.mak
+++ b/tests/fate/vqf.mak
@@ -1,9 +1,9 @@
-FATE_VQF-$(call DEMDEC, VQF, TWINVQ, ARESAMPLE_FILTER) += fate-twinvq
+FATE_VQF-$(call PCM, VQF, TWINVQ, ARESAMPLE_FILTER) += fate-twinvq
fate-twinvq: CMD = pcm -i $(TARGET_SAMPLES)/vqf/achterba.vqf
fate-twinvq: CMP = oneoff
fate-twinvq: REF = $(SAMPLES)/vqf/achterba.pcm
-FATE_VQF-$(CONFIG_VQF_DEMUXER) += fate-vqf-demux
+FATE_VQF-$(call FRAMECRC, VQF) += fate-vqf-demux
fate-vqf-demux: CMD = md5 -i $(TARGET_SAMPLES)/vqf/achterba.vqf -c:a copy -flags bitexact -fflags +bitexact -f framecrc
FATE_VQF += $(FATE_VQF-yes)
diff --git a/tests/fate/wma.mak b/tests/fate/wma.mak
index ed29edae3a..62914c84dd 100644
--- a/tests/fate/wma.mak
+++ b/tests/fate/wma.mak
@@ -1,14 +1,14 @@
-FATE_WMAPRO-$(call DEMDEC, ASF, WMAPRO, ARESAMPLE_FILTER) += fate-wmapro-2ch
+FATE_WMAPRO-$(call PCM, ASF, WMAPRO, ARESAMPLE_FILTER) += fate-wmapro-2ch
fate-wmapro-2ch: CMD = pcm -i $(TARGET_SAMPLES)/wmapro/Beethovens_9th-1_small.wma -frames 43
fate-wmapro-2ch: REF = $(SAMPLES)/wmapro/Beethovens_9th-1_small.pcm
fate-wmapro-2ch: SIZE_TOLERANCE = 8192
-FATE_WMAPRO-$(call DEMDEC, ASF, WMAPRO, ARESAMPLE_FILTER) += fate-wmapro-5.1
+FATE_WMAPRO-$(call PCM, ASF, WMAPRO, ARESAMPLE_FILTER) += fate-wmapro-5.1
fate-wmapro-5.1: CMD = pcm -i $(TARGET_SAMPLES)/wmapro/latin_192_mulitchannel_cut.wma -frames 101
fate-wmapro-5.1: REF = $(SAMPLES)/wmapro/latin_192_mulitchannel_cut.pcm
fate-wmapro-5.1: SIZE_TOLERANCE = 24576
-FATE_WMAPRO-$(call DEMDEC, MOV, WMAPRO, ARESAMPLE_FILTER) += fate-wmapro-ism
+FATE_WMAPRO-$(call PCM, MOV, WMAPRO, ARESAMPLE_FILTER) += fate-wmapro-ism
fate-wmapro-ism: CMD = pcm -i $(TARGET_SAMPLES)/isom/vc1-wmapro.ism -vn
fate-wmapro-ism: REF = $(SAMPLES)/isom/vc1-wmapro.pcm
fate-wmapro-ism: SIZE_TOLERANCE = 4784
@@ -18,19 +18,19 @@ $(FATE_WMAPRO-yes): CMP = oneoff
FATE_SAMPLES_AVCONV += $(FATE_WMAPRO-yes)
fate-wmapro: $(FATE_WMAPRO-yes)
-FATE_WMAVOICE-$(call DEMDEC, ASF, WMAVOICE, ARESAMPLE_FILTER) += fate-wmavoice-7k
+FATE_WMAVOICE-$(call PCM, ASF, WMAVOICE, ARESAMPLE_FILTER) += fate-wmavoice-7k
fate-wmavoice-7k: CMD = pcm -i $(TARGET_SAMPLES)/wmavoice/streaming_CBR-7K.wma
fate-wmavoice-7k: REF = $(SAMPLES)/wmavoice/streaming_CBR-7K_ref.pcm
fate-wmavoice-7k: CMP_TARGET = 1368.61
fate-wmavoice-7k: FUZZ = 3
-FATE_WMAVOICE-$(call DEMDEC, ASF, WMAVOICE, ARESAMPLE_FILTER) += fate-wmavoice-11k
+FATE_WMAVOICE-$(call PCM, ASF, WMAVOICE, ARESAMPLE_FILTER) += fate-wmavoice-11k
fate-wmavoice-11k: CMD = pcm -i $(TARGET_SAMPLES)/wmavoice/streaming_CBR-11K.wma
fate-wmavoice-11k: REF = $(SAMPLES)/wmavoice/streaming_CBR-11K_ref.pcm
fate-wmavoice-11k: CMP_TARGET = 965.24
fate-wmavoice-11k: FUZZ = 3
-FATE_WMAVOICE-$(call DEMDEC, ASF, WMAVOICE, ARESAMPLE_FILTER) += fate-wmavoice-19k
+FATE_WMAVOICE-$(call PCM, ASF, WMAVOICE, ARESAMPLE_FILTER) += fate-wmavoice-19k
fate-wmavoice-19k: CMD = pcm -i $(TARGET_SAMPLES)/wmavoice/streaming_CBR-19K.wma
fate-wmavoice-19k: REF = $(SAMPLES)/wmavoice/streaming_CBR-19K_ref.pcm
fate-wmavoice-19k: CMP_TARGET = 689.33
@@ -41,13 +41,13 @@ $(FATE_WMAVOICE-yes): CMP = stddev
FATE_SAMPLES_AVCONV += $(FATE_WMAVOICE-yes)
fate-wmavoice: $(FATE_WMAVOICE-yes)
-FATE_WMA_ENCODE-$(call ENCDEC, WMAV1, ASF, ARESAMPLE_FILTER) += fate-wmav1-encode
+FATE_WMA_ENCODE-$(call ENCDEC, WMAV1, ASF, ARESAMPLE_FILTER PIPE_PROTOCOL) += fate-wmav1-encode
fate-wmav1-encode: CMD = enc_dec_pcm asf wav s16le $(subst $(SAMPLES),$(TARGET_SAMPLES),$(REF)) -c:a wmav1 -b:a 128k
fate-wmav1-encode: CMP_SHIFT = 8192
fate-wmav1-encode: CMP_TARGET = 299.99
fate-wmav1-encode: SIZE_TOLERANCE = 4632
-FATE_WMA_ENCODE-$(call ENCDEC, WMAV2, ASF, ARESAMPLE_FILTER) += fate-wmav2-encode
+FATE_WMA_ENCODE-$(call ENCDEC, WMAV2, ASF, ARESAMPLE_FILTER PIPE_PROTOCOL) += fate-wmav2-encode
fate-wmav2-encode: CMD = enc_dec_pcm asf wav s16le $(subst $(SAMPLES),$(TARGET_SAMPLES),$(REF)) -c:a wmav2 -b:a 128k
fate-wmav2-encode: CMP_SHIFT = 8192
fate-wmav2-encode: CMP_TARGET = 267.92
diff --git a/tests/fate/xvid.mak b/tests/fate/xvid.mak
index 68e75b1139..6461d8dbac 100644
--- a/tests/fate/xvid.mak
+++ b/tests/fate/xvid.mak
@@ -1,7 +1,7 @@
fate-xvid-custom-matrix: CMD = framemd5 -flags +bitexact -idct simple -i $(TARGET_SAMPLES)/mpeg4/xvid_vlc_trac7411.h263
fate-xvid-idct: CMD = framemd5 -flags +bitexact -cpuflags all -i $(TARGET_SAMPLES)/mpeg4/xvid_vlc_trac7411.h263
-FATE_XVID-$(call DEMDEC, M4V, MPEG4, MPEG4VIDEO_PARSER) += fate-xvid-custom-matrix fate-xvid-idct
+FATE_XVID-$(call FRAMEMD5, M4V, MPEG4, MPEG4VIDEO_PARSER) += fate-xvid-custom-matrix fate-xvid-idct
FATE_SAMPLES_AVCONV += $(FATE_XVID-yes)
--
2.30.2
More information about the ffmpeg-devel
mailing list