summaryrefslogtreecommitdiff
path: root/ffmpeg/tests/fate
diff options
context:
space:
mode:
Diffstat (limited to 'ffmpeg/tests/fate')
-rw-r--r--ffmpeg/tests/fate/aac.mak106
-rw-r--r--ffmpeg/tests/fate/ac3.mak76
-rw-r--r--ffmpeg/tests/fate/acodec.mak122
-rw-r--r--ffmpeg/tests/fate/adpcm.mak83
-rw-r--r--ffmpeg/tests/fate/alac.mak24
-rw-r--r--ffmpeg/tests/fate/als.mak11
-rw-r--r--ffmpeg/tests/fate/amrnb.mak36
-rw-r--r--ffmpeg/tests/fate/amrwb.mak47
-rw-r--r--ffmpeg/tests/fate/atrac.mak26
-rw-r--r--ffmpeg/tests/fate/audio.mak64
-rw-r--r--ffmpeg/tests/fate/avfilter.mak66
-rw-r--r--ffmpeg/tests/fate/avformat.mak72
-rw-r--r--ffmpeg/tests/fate/bmp.mak43
-rw-r--r--ffmpeg/tests/fate/cdxl.mak19
-rw-r--r--ffmpeg/tests/fate/cover-art.mak33
-rw-r--r--ffmpeg/tests/fate/demux.mak99
-rw-r--r--ffmpeg/tests/fate/dfa.mak37
-rw-r--r--ffmpeg/tests/fate/dpcm.mak14
-rw-r--r--ffmpeg/tests/fate/ea.mak26
-rw-r--r--ffmpeg/tests/fate/ffmpeg.mak37
-rw-r--r--ffmpeg/tests/fate/ffprobe.mak33
-rw-r--r--ffmpeg/tests/fate/fft.mak42
-rw-r--r--ffmpeg/tests/fate/filter.mak83
-rw-r--r--ffmpeg/tests/fate/flac.mak28
-rw-r--r--ffmpeg/tests/fate/gif.mak13
-rw-r--r--ffmpeg/tests/fate/h264.mak391
-rw-r--r--ffmpeg/tests/fate/image.mak85
-rw-r--r--ffmpeg/tests/fate/indeo.mak14
-rw-r--r--ffmpeg/tests/fate/libavcodec.mak23
-rw-r--r--ffmpeg/tests/fate/libavformat.mak14
-rw-r--r--ffmpeg/tests/fate/libavutil.mak74
-rw-r--r--ffmpeg/tests/fate/lossless-audio.mak32
-rw-r--r--ffmpeg/tests/fate/lossless-video.mak52
-rw-r--r--ffmpeg/tests/fate/microsoft.mak51
-rw-r--r--ffmpeg/tests/fate/mp3.mak43
-rw-r--r--ffmpeg/tests/fate/mpc.mak13
-rw-r--r--ffmpeg/tests/fate/pcm.mak32
-rw-r--r--ffmpeg/tests/fate/probe.mak20
-rw-r--r--ffmpeg/tests/fate/prores.mak14
-rw-r--r--ffmpeg/tests/fate/qt.mak55
-rw-r--r--ffmpeg/tests/fate/qtrle.mak23
-rw-r--r--ffmpeg/tests/fate/real.mak43
-rw-r--r--ffmpeg/tests/fate/screen.mak65
-rw-r--r--ffmpeg/tests/fate/seek.mak235
-rw-r--r--ffmpeg/tests/fate/subtitles.mak62
-rw-r--r--ffmpeg/tests/fate/utvideo.mak72
-rw-r--r--ffmpeg/tests/fate/vcodec.mak293
-rw-r--r--ffmpeg/tests/fate/video.mak287
-rw-r--r--ffmpeg/tests/fate/voice.mak78
-rw-r--r--ffmpeg/tests/fate/vorbis.mak85
-rw-r--r--ffmpeg/tests/fate/vpx.mak56
-rw-r--r--ffmpeg/tests/fate/vqf.mak12
-rw-r--r--ffmpeg/tests/fate/wavpack.mak92
-rw-r--r--ffmpeg/tests/fate/wma.mak54
54 files changed, 3610 insertions, 0 deletions
diff --git a/ffmpeg/tests/fate/aac.mak b/ffmpeg/tests/fate/aac.mak
new file mode 100644
index 0000000..0b3999d
--- /dev/null
+++ b/ffmpeg/tests/fate/aac.mak
@@ -0,0 +1,106 @@
+FATE_AAC += fate-aac-al04_44
+fate-aac-al04_44: CMD = pcm -i $(SAMPLES)/aac/al04_44.mp4
+fate-aac-al04_44: REF = $(SAMPLES)/aac/al04_44.s16
+
+FATE_AAC += fate-aac-al05_44
+fate-aac-al05_44: CMD = pcm -i $(SAMPLES)/aac/al05_44.mp4
+fate-aac-al05_44: REF = $(SAMPLES)/aac/al05_44.s16
+
+FATE_AAC += fate-aac-al06_44
+fate-aac-al06_44: CMD = pcm -i $(SAMPLES)/aac/al06_44.mp4
+fate-aac-al06_44: REF = $(SAMPLES)/aac/al06_44_reorder.s16
+
+FATE_AAC += fate-aac-al07_96
+fate-aac-al07_96: CMD = pcm -i $(SAMPLES)/aac/al07_96.mp4
+fate-aac-al07_96: REF = $(SAMPLES)/aac/al07_96_reorder.s16
+
+FATE_AAC += fate-aac-al15_44
+fate-aac-al15_44: CMD = pcm -i $(SAMPLES)/aac/al15_44.mp4
+fate-aac-al15_44: REF = $(SAMPLES)/aac/al15_44_reorder.s16
+
+FATE_AAC += fate-aac-al17_44
+fate-aac-al17_44: CMD = pcm -i $(SAMPLES)/aac/al17_44.mp4
+fate-aac-al17_44: REF = $(SAMPLES)/aac/al17_44.s16
+
+FATE_AAC += fate-aac-al18_44
+fate-aac-al18_44: CMD = pcm -i $(SAMPLES)/aac/al18_44.mp4
+fate-aac-al18_44: REF = $(SAMPLES)/aac/al18_44.s16
+
+FATE_AAC += fate-aac-am00_88
+fate-aac-am00_88: CMD = pcm -i $(SAMPLES)/aac/am00_88.mp4
+fate-aac-am00_88: REF = $(SAMPLES)/aac/am00_88.s16
+
+FATE_AAC += fate-aac-am05_44
+fate-aac-am05_44: CMD = pcm -i $(SAMPLES)/aac/am05_44.mp4
+fate-aac-am05_44: REF = $(SAMPLES)/aac/am05_44_reorder.s16
+
+FATE_AAC += fate-aac-al_sbr_hq_cm_48_2
+fate-aac-al_sbr_hq_cm_48_2: CMD = pcm -i $(SAMPLES)/aac/al_sbr_cm_48_2.mp4
+fate-aac-al_sbr_hq_cm_48_2: REF = $(SAMPLES)/aac/al_sbr_hq_cm_48_2.s16
+
+FATE_AAC += fate-aac-al_sbr_hq_cm_48_5.1
+fate-aac-al_sbr_hq_cm_48_5.1: CMD = pcm -i $(SAMPLES)/aac/al_sbr_cm_48_5.1.mp4
+fate-aac-al_sbr_hq_cm_48_5.1: REF = $(SAMPLES)/aac/al_sbr_hq_cm_48_5.1_reorder.s16
+
+FATE_AAC += fate-aac-al_sbr_ps_06_ur
+fate-aac-al_sbr_ps_06_ur: CMD = pcm -i $(SAMPLES)/aac/al_sbr_ps_06_new.mp4
+fate-aac-al_sbr_ps_06_ur: REF = $(SAMPLES)/aac/al_sbr_ps_06_ur.s16
+
+FATE_AAC += fate-aac-ap05_48
+fate-aac-ap05_48: CMD = pcm -i $(SAMPLES)/aac/ap05_48.mp4
+fate-aac-ap05_48: REF = $(SAMPLES)/aac/ap05_48.s16
+
+fate-aac-ct%: CMD = pcm -i $(SAMPLES)/aac/CT_DecoderCheck/$(@:fate-aac-ct-%=%)
+fate-aac-ct%: REF = $(SAMPLES)/aac/CT_DecoderCheck/aacPlusv2.wav
+
+FATE_AAC_CT_RAW = fate-aac-ct-sbr_i-ps_i.aac
+
+FATE_AAC_CT = sbr_bc-ps_i.3gp \
+ sbr_bic-ps_i.3gp \
+ sbr_bc-ps_bc.mp4 \
+ sbr_bc-ps_i.mp4 \
+ sbr_i-ps_bic.mp4 \
+ sbr_i-ps_i.mp4
+
+FATE_AAC += $(FATE_AAC_CT:%=fate-aac-ct-%)
+
+FATE_AAC_ENCODE += fate-aac-aref-encode
+fate-aac-aref-encode: ./tests/data/asynth-44100-2.wav
+fate-aac-aref-encode: CMD = enc_dec_pcm adts wav s16le $(REF) -strict -2 -c:a aac -b:a 512k
+fate-aac-aref-encode: CMP = stddev
+fate-aac-aref-encode: REF = ./tests/data/asynth-44100-2.wav
+fate-aac-aref-encode: CMP_SHIFT = -4096
+fate-aac-aref-encode: CMP_TARGET = 1862
+fate-aac-aref-encode: SIZE_TOLERANCE = 2464
+
+FATE_AAC_ENCODE += fate-aac-ln-encode
+fate-aac-ln-encode: CMD = enc_dec_pcm adts wav s16le $(REF) -strict -2 -c:a aac -b:a 512k
+fate-aac-ln-encode: CMP = stddev
+fate-aac-ln-encode: REF = $(SAMPLES)/audio-reference/luckynight_2ch_44kHz_s16.wav
+fate-aac-ln-encode: CMP_SHIFT = -4096
+fate-aac-ln-encode: CMP_TARGET = 65
+fate-aac-ln-encode: SIZE_TOLERANCE = 3560
+
+FATE_AAC_LATM += fate-aac-latm_000000001180bc60
+fate-aac-latm_000000001180bc60: CMD = pcm -i $(SAMPLES)/aac/latm_000000001180bc60.mpg
+fate-aac-latm_000000001180bc60: REF = $(SAMPLES)/aac/latm_000000001180bc60.s16
+
+FATE_AAC_LATM += fate-aac-latm_stereo_to_51
+fate-aac-latm_stereo_to_51: CMD = pcm -i $(SAMPLES)/aac/latm_stereo_to_51.ts -channel_layout 5.1
+fate-aac-latm_stereo_to_51: REF = $(SAMPLES)/aac/latm_stereo_to_51_ref.s16
+
+FATE_AAC-$(call DEMDEC, AAC, AAC) += $(FATE_AAC_CT_RAW)
+FATE_AAC-$(call DEMDEC, MOV, AAC) += $(FATE_AAC)
+FATE_AAC_LATM-$(call DEMDEC, MPEGTS, AAC_LATM) += $(FATE_AAC_LATM)
+
+FATE_AAC_ALL = $(FATE_AAC-yes) $(FATE_AAC_LATM-yes)
+
+$(FATE_AAC_ALL): CMP = oneoff
+$(FATE_AAC_ALL): FUZZ = 2
+
+FATE_AAC_ENCODE-$(call ENCMUX, AAC, ADTS) += $(FATE_AAC_ENCODE)
+
+FATE_SAMPLES_FFMPEG += $(FATE_AAC_ALL) $(FATE_AAC_ENCODE-yes)
+
+fate-aac: $(FATE_AAC_ALL) $(FATE_AAC_ENCODE)
+fate-aac-latm: $(FATE_AAC_LATM-yes)
diff --git a/ffmpeg/tests/fate/ac3.mak b/ffmpeg/tests/fate/ac3.mak
new file mode 100644
index 0000000..90dfc41
--- /dev/null
+++ b/ffmpeg/tests/fate/ac3.mak
@@ -0,0 +1,76 @@
+FATE_AC3 += fate-ac3-2.0
+fate-ac3-2.0: CMD = pcm -i $(SAMPLES)/ac3/monsters_inc_2.0_192_small.ac3
+fate-ac3-2.0: REF = $(SAMPLES)/ac3/monsters_inc_2.0_192_small_v2.pcm
+
+FATE_AC3 += fate-ac3-4.0
+fate-ac3-4.0: CMD = pcm -i $(SAMPLES)/ac3/millers_crossing_4.0.ac3
+fate-ac3-4.0: REF = $(SAMPLES)/ac3/millers_crossing_4.0_v2.pcm
+
+FATE_AC3 += fate-ac3-4.0-downmix-mono
+fate-ac3-4.0-downmix-mono: CMD = pcm -request_channels 1 -i $(SAMPLES)/ac3/millers_crossing_4.0.ac3
+fate-ac3-4.0-downmix-mono: REF = $(SAMPLES)/ac3/millers_crossing_4.0_mono_v2.pcm
+
+FATE_AC3 += fate-ac3-4.0-downmix-stereo
+fate-ac3-4.0-downmix-stereo: CMD = pcm -request_channels 2 -i $(SAMPLES)/ac3/millers_crossing_4.0.ac3
+fate-ac3-4.0-downmix-stereo: REF = $(SAMPLES)/ac3/millers_crossing_4.0_stereo_v2.pcm
+
+FATE_AC3 += fate-ac3-5.1
+fate-ac3-5.1: CMD = pcm -i $(SAMPLES)/ac3/monsters_inc_5.1_448_small.ac3
+fate-ac3-5.1: REF = $(SAMPLES)/ac3/monsters_inc_5.1_448_small_v2.pcm
+
+FATE_AC3 += fate-ac3-5.1-downmix-mono
+fate-ac3-5.1-downmix-mono: CMD = pcm -request_channels 1 -i $(SAMPLES)/ac3/monsters_inc_5.1_448_small.ac3
+fate-ac3-5.1-downmix-mono: REF = $(SAMPLES)/ac3/monsters_inc_5.1_448_small_mono_v2.pcm
+
+FATE_AC3 += fate-ac3-5.1-downmix-stereo
+fate-ac3-5.1-downmix-stereo: CMD = pcm -request_channels 2 -i $(SAMPLES)/ac3/monsters_inc_5.1_448_small.ac3
+fate-ac3-5.1-downmix-stereo: REF = $(SAMPLES)/ac3/monsters_inc_5.1_448_small_stereo_v2.pcm
+
+FATE_EAC3 += fate-eac3-1
+fate-eac3-1: CMD = pcm -i $(SAMPLES)/eac3/csi_miami_5.1_256_spx_small.eac3
+fate-eac3-1: REF = $(SAMPLES)/eac3/csi_miami_5.1_256_spx_small_v2.pcm
+
+FATE_EAC3 += fate-eac3-2
+fate-eac3-2: CMD = pcm -i $(SAMPLES)/eac3/csi_miami_stereo_128_spx_small.eac3
+fate-eac3-2: REF = $(SAMPLES)/eac3/csi_miami_stereo_128_spx_small_v2.pcm
+
+FATE_EAC3 += fate-eac3-3
+fate-eac3-3: CMD = pcm -i $(SAMPLES)/eac3/matrix2_commentary1_stereo_192_small.eac3
+fate-eac3-3: REF = $(SAMPLES)/eac3/matrix2_commentary1_stereo_192_small_v2.pcm
+
+FATE_EAC3 += fate-eac3-4
+fate-eac3-4: CMD = pcm -i $(SAMPLES)/eac3/serenity_english_5.1_1536_small.eac3
+fate-eac3-4: REF = $(SAMPLES)/eac3/serenity_english_5.1_1536_small_v2.pcm
+
+$(FATE_AC3) $(FATE_EAC3): CMP = oneoff
+
+FATE_AC3-$(call DEMDEC, AC3, AC3) += $(FATE_AC3)
+FATE_EAC3-$(call DEMDEC, EAC3, EAC3) += $(FATE_EAC3)
+
+FATE_AC3-$(call ENCDEC, AC3, AC3) += fate-ac3-encode
+fate-ac3-encode: CMD = enc_dec_pcm ac3 wav s16le $(REF) -c:a ac3 -b:a 128k
+fate-ac3-encode: CMP_SHIFT = -1024
+fate-ac3-encode: CMP_TARGET = 404.53
+fate-ac3-encode: SIZE_TOLERANCE = 488
+fate-ac3-encode: FUZZ = 4
+
+FATE_EAC3-$(call ENCDEC, EAC3, EAC3) += fate-eac3-encode
+fate-eac3-encode: CMD = enc_dec_pcm eac3 wav s16le $(REF) -c:a eac3 -b:a 128k
+fate-eac3-encode: CMP_SHIFT = -1024
+fate-eac3-encode: CMP_TARGET = 516.94
+fate-eac3-encode: SIZE_TOLERANCE = 488
+fate-eac3-encode: FUZZ = 3
+
+fate-ac3-encode fate-eac3-encode: CMP = stddev
+fate-ac3-encode fate-eac3-encode: REF = $(SAMPLES)/audio-reference/luckynight_2ch_44kHz_s16.wav
+
+FATE_AC3-$(call ENCMUX, AC3_FIXED, AC3) += fate-ac3-fixed-encode
+fate-ac3-fixed-encode: tests/data/asynth-44100-2.wav
+fate-ac3-fixed-encode: SRC = $(TARGET_PATH)/tests/data/asynth-44100-2.wav
+fate-ac3-fixed-encode: CMD = md5 -i $(SRC) -c ac3_fixed -ab 128k -f ac3 -flags +bitexact
+fate-ac3-fixed-encode: CMP = oneline
+fate-ac3-fixed-encode: REF = a1d1fc116463b771abf5aef7ed37d7b1
+
+FATE_SAMPLES_AVCONV += $(FATE_AC3-yes) $(FATE_EAC3-yes)
+
+fate-ac3: $(FATE_AC3-yes) $(FATE_EAC3-yes)
diff --git a/ffmpeg/tests/fate/acodec.mak b/ffmpeg/tests/fate/acodec.mak
new file mode 100644
index 0000000..0206486
--- /dev/null
+++ b/ffmpeg/tests/fate/acodec.mak
@@ -0,0 +1,122 @@
+fate-acodec-%: CODEC = $(@:fate-acodec-%=%)
+fate-acodec-%: SRC = tests/data/asynth-44100-2.wav
+fate-acodec-%: CMD = enc_dec wav $(SRC) $(FMT) "-b 128k -c $(CODEC) $(ENCOPTS)" wav "-c pcm_s16le $(DECOPTS)" -keep
+fate-acodec-%: CMP_UNIT = 2
+fate-acodec-%: REF = $(SRC_PATH)/tests/ref/acodec/$(@:fate-acodec-%=%)
+
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_ALAW, WAV) += alaw
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_MULAW, WAV) += mulaw
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_S8, MOV) += s8
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_U8, WAV) += u8
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_S16BE, MOV) += s16be
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_S16LE, WAV) += s16le
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_U16BE, NUT) += u16be
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_U16LE, NUT) += u16le
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_S24BE, MOV) += s24be
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_S24LE, WAV) += s24le
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_U24BE, NUT) += u24be
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_U24LE, NUT) += u24le
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_S32BE, MOV) += s32be
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_S32LE, WAV) += s32le
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_U32BE, NUT) += u32be
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_U32LE, NUT) += u32le
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_F32BE, AU) += f32be
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_F32LE, WAV) += f32le
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_F64BE, AU) += f64be
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_F64LE, WAV) += f64le
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_S8_PLANAR, NUT) += s8_planar
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_S16BE_PLANAR, NUT) += s16be_planar
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_S16LE_PLANAR, NUT) += s16le_planar
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_S24LE_PLANAR, NUT) += s24le_planar
+FATE_ACODEC_PCM-$(call ENCDEC, PCM_S32LE_PLANAR, NUT) += s32le_planar
+
+FATE_ACODEC_PCM := $(FATE_ACODEC_PCM-yes:%=fate-acodec-pcm-%)
+FATE_ACODEC += $(FATE_ACODEC_PCM)
+fate-acodec-pcm: $(FATE_ACODEC_PCM)
+
+fate-acodec-pcm-%: FMT = wav
+fate-acodec-pcm-%_planar: FMT = nut
+fate-acodec-pcm-%: CODEC = pcm_$(@:fate-acodec-pcm-%=%)
+
+fate-acodec-pcm-s8: FMT = mov
+fate-acodec-pcm-s%be: FMT = mov
+fate-acodec-pcm-u%be: FMT = nut
+fate-acodec-pcm-u%le: FMT = nut
+fate-acodec-pcm-f%be: FMT = au
+
+FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_ADX, ADX) += adx
+FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_IMA_QT, AIFF) += ima_qt
+FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_IMA_WAV, WAV) += ima_wav
+FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_MS, WAV) += ms
+FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_SWF, FLV) += swf
+FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_YAMAHA, WAV) += yamaha
+
+FATE_ACODEC_ADPCM := $(FATE_ACODEC_ADPCM-yes:%=fate-acodec-adpcm-%)
+FATE_ACODEC += $(FATE_ACODEC_ADPCM)
+fate-acodec-adpcm: $(FATE_ACODEC_ADPCM)
+
+fate-acodec-adpcm-%: CODEC = adpcm_$(@:fate-acodec-adpcm-%=%)
+
+fate-acodec-adpcm-adx: FMT = adx
+fate-acodec-adpcm-ima_qt: FMT = aiff
+fate-acodec-adpcm-ima_wav: FMT = wav
+fate-acodec-adpcm-ms: FMT = wav
+fate-acodec-adpcm-swf: FMT = flv
+fate-acodec-adpcm-yamaha: FMT = wav
+
+FATE_ACODEC-$(call ENCDEC, MP2, MP2 MP3) += fate-acodec-mp2
+fate-acodec-mp2: FMT = mp2
+fate-acodec-mp2: CMP_SHIFT = -1924
+
+FATE_ACODEC-$(call ENCDEC, ALAC, MOV) += fate-acodec-alac
+fate-acodec-alac: FMT = mov
+fate-acodec-alac: CODEC = alac -compression_level 1
+
+FATE_ACODEC-$(call ENCDEC, DCA, DTS) += fate-acodec-dca
+fate-acodec-dca: tests/data/asynth-44100-2.wav
+fate-acodec-dca: SRC = tests/data/asynth-44100-2.wav
+fate-acodec-dca: CMD = md5 -i $(TARGET_PATH)/$(SRC) -c:a dca -strict -2 -f dts -flags +bitexact
+fate-acodec-dca: CMP = oneline
+fate-acodec-dca: REF = 66bd0e602be7fb97dc19151554c0ee29
+
+FATE_ACODEC-$(call ENCDEC, DCA, WAV) += fate-acodec-dca2
+fate-acodec-dca2: CMD = enc_dec_pcm dts wav s16le $(SRC) -c:a dca -strict -2 -flags +bitexact
+fate-acodec-dca2: REF = $(SRC)
+fate-acodec-dca2: CMP = stddev
+fate-acodec-dca2: CMP_SHIFT = -1920
+fate-acodec-dca2: CMP_TARGET = 2424
+fate-acodec-dca2: SIZE_TOLERANCE = 544
+
+FATE_ACODEC-$(call ENCDEC, FLAC, FLAC) += fate-acodec-flac
+fate-acodec-flac: FMT = flac
+fate-acodec-flac: CODEC = flac -compression_level 2
+
+FATE_ACODEC-$(call ENCDEC, G723_1, G723_1) += fate-acodec-g723_1
+fate-acodec-g723_1: tests/data/asynth-8000-1.wav
+fate-acodec-g723_1: SRC = tests/data/asynth-8000-1.wav
+fate-acodec-g723_1: FMT = g723_1
+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-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
+fate-acodec-ra144: REF = $(SRC)
+fate-acodec-ra144: CMP = stddev
+fate-acodec-ra144: CMP_TARGET = 4777
+fate-acodec-ra144: CMP_SHIFT = -320
+
+FATE_ACODEC-$(call ENCDEC, ROQ_DPCM, ROQ) += fate-acodec-roqaudio
+fate-acodec-roqaudio: FMT = roq
+fate-acodec-roqaudio: CODEC = roq_dpcm
+fate-acodec-roqaudio: ENCOPTS = -ar 22050
+fate-acodec-roqaudio: DECOPTS = -ar 44100
+
+FATE_ACODEC += $(FATE_ACODEC-yes)
+
+$(FATE_ACODEC): tests/data/asynth-44100-2.wav
+
+FATE_AVCONV += $(FATE_ACODEC)
+fate-acodec: $(FATE_ACODEC)
diff --git a/ffmpeg/tests/fate/adpcm.mak b/ffmpeg/tests/fate/adpcm.mak
new file mode 100644
index 0000000..71764cc
--- /dev/null
+++ b/ffmpeg/tests/fate/adpcm.mak
@@ -0,0 +1,83 @@
+FATE_ADPCM-$(call DEMDEC, FOURXM, ADPCM_4XM) += fate-adpcm-4xm
+fate-adpcm-4xm: CMD = framecrc -i $(SAMPLES)/4xm/dracula.4xm -vn -map 0:6
+
+FATE_ADPCM-$(call DEMDEC, AST, ADPCM_AFC) += fate-adpcm-afc
+fate-adpcm-afc: CMD = framecrc -i $(SAMPLES)/ast/demo11_02_partial.ast
+
+FATE_ADPCM-$(call DEMDEC, WAV, ADPCM_CT) += fate-adpcm-creative
+fate-adpcm-creative: CMD = md5 -i $(SAMPLES)/creative/intro-partial.wav -f s16le
+
+FATE_ADPCM-$(call DEMDEC, VOC, ADPCM_SBPRO_2) += fate-adpcm-creative-8-2bit
+fate-adpcm-creative-8-2bit: CMD = md5 -i $(SAMPLES)/creative/BBC_2BIT.VOC -f s16le
+
+FATE_ADPCM-$(call DEMDEC, VOC, ADPCM_SBPRO_3) += fate-adpcm-creative-8-2.6bit
+fate-adpcm-creative-8-2.6bit: CMD = md5 -i $(SAMPLES)/creative/BBC_3BIT.VOC -f s16le
+
+FATE_ADPCM-$(call DEMDEC, VOC, ADPCM_SBPRO_4) += fate-adpcm-creative-8-4bit
+fate-adpcm-creative-8-4bit: CMD = md5 -i $(SAMPLES)/creative/BBC_4BIT.VOC -f s16le
+
+FATE_ADPCM-$(call DEMDEC, EA, ADPCM_EA) += fate-adpcm-ea-1
+fate-adpcm-ea-1: CMD = framecrc -i $(SAMPLES)/ea-wve/networkBackbone-partial.wve -frames:a 26 -vn
+
+FATE_ADPCM-$(call DEMDEC, EA, ADPCM_EA) += fate-adpcm-ea-2
+fate-adpcm-ea-2: CMD = framecrc -i $(SAMPLES)/ea-dct/NFS2Esprit-partial.dct -vn
+
+FATE_ADPCM-$(call DEMDEC, XA, ADPCM_EA_MAXIS_XA) += fate-adpcm-ea-maxis-xa
+fate-adpcm-ea-maxis-xa: CMD = framecrc -i $(SAMPLES)/maxis-xa/SC2KBUG.XA -frames:a 30
+
+FATE_ADPCM-$(call DEMDEC, EA, ADPCM_EA_R1) += fate-adpcm-ea-r1
+fate-adpcm-ea-r1: CMD = framecrc -i $(SAMPLES)/ea-mad/NFS6LogoE.mad -vn
+
+FATE_ADPCM-$(call DEMDEC, EA, ADPCM_EA_R2) += fate-adpcm-ea-r2
+fate-adpcm-ea-r2: CMD = crc -i $(SAMPLES)/ea-mpc/THX_logo.mpc -vn
+
+FATE_ADPCM-$(call DEMDEC, EA, ADPCM_EA_R3) += fate-adpcm-ea-r3
+fate-adpcm-ea-r3: CMD = crc -i $(SAMPLES)/ea-vp6/THX_logo.vp6 -vn
+
+FATE_ADPCM-$(call DEMDEC, AVI, ADPCM_IMA_AMV) += fate-adpcm-ima-amv
+fate-adpcm-ima-amv: CMD = framecrc -i $(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
+fate-adpcm-ima-apc: CMD = md5 -i $(SAMPLES)/cryo-apc/cine007.APC -f s16le
+
+FATE_ADPCM-$(call DEMDEC, AVI, ADPCM_IMA_DK3) += fate-adpcm-ima-dk3
+fate-adpcm-ima-dk3: CMD = md5 -i $(SAMPLES)/duck/sop-audio-only.avi -f s16le
+
+FATE_ADPCM-$(call DEMDEC, AVI, ADPCM_IMA_DK4) += fate-adpcm-ima-dk4
+fate-adpcm-ima-dk4: CMD = md5 -i $(SAMPLES)/duck/salsa-audio-only.avi -f s16le
+
+FATE_ADPCM-$(call DEMDEC, EA, ADPCM_IMA_EA_EACS) += fate-adpcm-ima-ea-eacs
+fate-adpcm-ima-ea-eacs: CMD = framecrc -i $(SAMPLES)/ea-tgv/INTRO8K-partial.TGV -vn
+
+FATE_ADPCM-$(call DEMDEC, EA, ADPCM_IMA_EA_SEAD) += fate-adpcm-ima-ea-sead
+fate-adpcm-ima-ea-sead: CMD = framecrc -i $(SAMPLES)/ea-tgv/INTEL_S.TGV -vn
+
+FATE_ADPCM-$(call DEMDEC, ISS, ADPCM_IMA_ISS) += fate-adpcm-ima-iss
+fate-adpcm-ima-iss: CMD = md5 -i $(SAMPLES)/funcom-iss/0004010100.iss -f s16le
+
+FATE_ADPCM-$(call DEMDEC, WAV, ADPCM_IMA_OKI) += fate-adpcm-ima-oki
+fate-adpcm-ima-oki: CMD = md5 -i $(SAMPLES)/oki/test.wav -f s16le
+
+FATE_ADPCM-$(call DEMDEC, SMJPEG, ADPCM_IMA_SMJPEG) += fate-adpcm-ima-smjpeg
+fate-adpcm-ima-smjpeg: CMD = framecrc -i $(SAMPLES)/smjpeg/scenwin.mjpg -vn
+
+FATE_ADPCM-$(call DEMDEC, MOV, ADPCM_IMA_WAV) += fate-adpcm-ima_wav-stereo
+fate-adpcm-ima_wav-stereo: CMD = md5 -i $(SAMPLES)/qt-surge-suite/surge-2-16-L-ms11.mov -f s16le
+
+FATE_ADPCM-$(call DEMDEC, WSVQA, ADPCM_IMA_WS) += fate-adpcm-ima-ws
+fate-adpcm-ima-ws: CMD = framecrc -i $(SAMPLES)/vqa/cc-demo1-partial.vqa -vn
+
+FATE_ADPCM-$(call DEMDEC, DXA, ADPCM_MS) += fate-adpcm-ms-mono
+fate-adpcm-ms-mono: CMD = framecrc -i $(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 $(SAMPLES)/qt-surge-suite/surge-2-16-L-ms02.mov -f s16le
+
+FATE_ADPCM-$(call DEMDEC, THP, ADPCM_THP) += fate-adpcm-thp
+fate-adpcm-thp: CMD = framecrc -i $(SAMPLES)/thp/pikmin2-opening1-partial.thp -vn
+
+FATE_ADPCM-$(call DEMDEC, STR, ADPCM_XA) += fate-adpcm-xa
+fate-adpcm-xa: CMD = framecrc -i $(SAMPLES)/psx-str/abc000_cut.str -vn
+
+FATE_SAMPLES_AVCONV += $(FATE_ADPCM-yes)
+fate-adpcm: $(FATE_ADPCM-yes)
diff --git a/ffmpeg/tests/fate/alac.mak b/ffmpeg/tests/fate/alac.mak
new file mode 100644
index 0000000..d724837
--- /dev/null
+++ b/ffmpeg/tests/fate/alac.mak
@@ -0,0 +1,24 @@
+FATE_ALAC += fate-alac-16-level-0 \
+ fate-alac-16-level-1 \
+ fate-alac-16-level-2 \
+ fate-alac-16-lpc-orders \
+ fate-alac-24-level-0 \
+ fate-alac-24-level-1 \
+ fate-alac-24-level-2 \
+ fate-alac-24-lpc-orders \
+
+fate-alac-16-level-%: OPTS = -compression_level $(@:fate-alac-16-level-%=%)
+fate-alac-24-level-%: OPTS = -compression_level $(@:fate-alac-24-level-%=%)
+fate-alac-%-lpc-orders: OPTS = -min_prediction_order 1 -max_prediction_order 30
+
+fate-alac-16-%: REF = $(SAMPLES)/audio-reference/luckynight_2ch_44kHz_s16.wav
+fate-alac-16-%: CMD = enc_dec_pcm mov wav s16le $(REF) -c alac $(OPTS)
+
+fate-alac-24-%: REF = $(SAMPLES)/audio-reference/divertimenti_2ch_96kHz_s24.wav
+fate-alac-24-%: CMD = enc_dec_pcm mov wav s24le $(REF) -c alac $(OPTS)
+
+fate-alac-%: CMP = oneoff
+fate-alac-%: FUZZ = 0
+
+FATE_SAMPLES_AVCONV-$(call ENCDEC, ALAC, MOV) += $(FATE_ALAC)
+fate-alac: $(FATE_ALAC)
diff --git a/ffmpeg/tests/fate/als.mak b/ffmpeg/tests/fate/als.mak
new file mode 100644
index 0000000..5ec1189
--- /dev/null
+++ b/ffmpeg/tests/fate/als.mak
@@ -0,0 +1,11 @@
+ALS_SUITE = 00 01 02 03 04 05
+
+define FATE_ALS_SUITE
+FATE_ALS += fate-mpeg4-als-conformance-$(1)
+fate-mpeg4-als-conformance-$(1): CMD = crc -i $(SAMPLES)/lossless-audio/als_$(1)_2ch48k16b.mp4
+endef
+
+$(foreach N,$(ALS_SUITE),$(eval $(call FATE_ALS_SUITE,$(N))))
+
+FATE_SAMPLES_AVCONV-$(call DEMDEC, MOV, ALS) += $(FATE_ALS)
+fate-als: $(FATE_ALS)
diff --git a/ffmpeg/tests/fate/amrnb.mak b/ffmpeg/tests/fate/amrnb.mak
new file mode 100644
index 0000000..6dbba58
--- /dev/null
+++ b/ffmpeg/tests/fate/amrnb.mak
@@ -0,0 +1,36 @@
+FATE_AMRNB += fate-amrnb-4k75
+fate-amrnb-4k75: CMD = pcm -i $(SAMPLES)/amrnb/4.75k.amr
+fate-amrnb-4k75: REF = $(SAMPLES)/amrnb/4.75k.pcm
+
+FATE_AMRNB += fate-amrnb-5k15
+fate-amrnb-5k15: CMD = pcm -i $(SAMPLES)/amrnb/5.15k.amr
+fate-amrnb-5k15: REF = $(SAMPLES)/amrnb/5.15k.pcm
+
+FATE_AMRNB += fate-amrnb-5k9
+fate-amrnb-5k9: CMD = pcm -i $(SAMPLES)/amrnb/5.9k.amr
+fate-amrnb-5k9: REF = $(SAMPLES)/amrnb/5.9k.pcm
+
+FATE_AMRNB += fate-amrnb-6k7
+fate-amrnb-6k7: CMD = pcm -i $(SAMPLES)/amrnb/6.7k.amr
+fate-amrnb-6k7: REF = $(SAMPLES)/amrnb/6.7k.pcm
+
+FATE_AMRNB += fate-amrnb-7k4
+fate-amrnb-7k4: CMD = pcm -i $(SAMPLES)/amrnb/7.4k.amr
+fate-amrnb-7k4: REF = $(SAMPLES)/amrnb/7.4k.pcm
+
+FATE_AMRNB += fate-amrnb-7k95
+fate-amrnb-7k95: CMD = pcm -i $(SAMPLES)/amrnb/7.95k.amr
+fate-amrnb-7k95: REF = $(SAMPLES)/amrnb/7.95k.pcm
+
+FATE_AMRNB += fate-amrnb-10k2
+fate-amrnb-10k2: CMD = pcm -i $(SAMPLES)/amrnb/10.2k.amr
+fate-amrnb-10k2: REF = $(SAMPLES)/amrnb/10.2k.pcm
+
+FATE_AMRNB += fate-amrnb-12k2
+fate-amrnb-12k2: CMD = pcm -i $(SAMPLES)/amrnb/12.2k.amr
+fate-amrnb-12k2: REF = $(SAMPLES)/amrnb/12.2k.pcm
+
+$(FATE_AMRNB): CMP = stddev
+
+FATE_SAMPLES_AVCONV-$(call DEMDEC, AMR, AMRNB) += $(FATE_AMRNB)
+fate-amrnb: $(FATE_AMRNB)
diff --git a/ffmpeg/tests/fate/amrwb.mak b/ffmpeg/tests/fate/amrwb.mak
new file mode 100644
index 0000000..99c2737
--- /dev/null
+++ b/ffmpeg/tests/fate/amrwb.mak
@@ -0,0 +1,47 @@
+FATE_AMRWB += fate-amrwb-6k60
+fate-amrwb-6k60: CMD = pcm -i $(SAMPLES)/amrwb/seed-6k60.awb
+fate-amrwb-6k60: REF = $(SAMPLES)/amrwb/seed-6k60.pcm
+
+FATE_AMRWB += fate-amrwb-8k85
+fate-amrwb-8k85: CMD = pcm -i $(SAMPLES)/amrwb/seed-8k85.awb
+fate-amrwb-8k85: REF = $(SAMPLES)/amrwb/seed-8k85.pcm
+
+FATE_AMRWB += fate-amrwb-12k65
+fate-amrwb-12k65: CMD = pcm -i $(SAMPLES)/amrwb/seed-12k65.awb
+fate-amrwb-12k65: REF = $(SAMPLES)/amrwb/seed-12k65.pcm
+
+FATE_AMRWB += fate-amrwb-14k25
+fate-amrwb-14k25: CMD = pcm -i $(SAMPLES)/amrwb/seed-14k25.awb
+fate-amrwb-14k25: REF = $(SAMPLES)/amrwb/seed-14k25.pcm
+fate-amrwb-14k25: FUZZ = 2.6
+
+FATE_AMRWB += fate-amrwb-15k85
+fate-amrwb-15k85: CMD = pcm -i $(SAMPLES)/amrwb/seed-15k85.awb
+fate-amrwb-15k85: REF = $(SAMPLES)/amrwb/seed-15k85.pcm
+
+FATE_AMRWB += fate-amrwb-18k25
+fate-amrwb-18k25: CMD = pcm -i $(SAMPLES)/amrwb/seed-18k25.awb
+fate-amrwb-18k25: REF = $(SAMPLES)/amrwb/seed-18k25.pcm
+
+FATE_AMRWB += fate-amrwb-19k85
+fate-amrwb-19k85: CMD = pcm -i $(SAMPLES)/amrwb/seed-19k85.awb
+fate-amrwb-19k85: REF = $(SAMPLES)/amrwb/seed-19k85.pcm
+
+FATE_AMRWB += fate-amrwb-23k05
+fate-amrwb-23k05: CMD = pcm -i $(SAMPLES)/amrwb/seed-23k05.awb
+fate-amrwb-23k05: REF = $(SAMPLES)/amrwb/seed-23k05.pcm
+fate-amrwb-23k05: FUZZ = 2
+
+FATE_AMRWB += fate-amrwb-23k85
+fate-amrwb-23k85: CMD = pcm -i $(SAMPLES)/amrwb/seed-23k85.awb
+fate-amrwb-23k85: REF = $(SAMPLES)/amrwb/seed-23k85.pcm
+fate-amrwb-23k85: FUZZ = 2
+
+FATE_AMRWB += fate-amrwb-23k85-2
+fate-amrwb-23k85-2: CMD = pcm -i $(SAMPLES)/amrwb/deus-23k85.awb
+fate-amrwb-23k85-2: REF = $(SAMPLES)/amrwb/deus-23k85.pcm
+
+$(FATE_AMRWB): CMP = stddev
+
+FATE_SAMPLES_AVCONV-$(call DEMDEC, AMR, AMRWB) += $(FATE_AMRWB)
+fate-amrwb: $(FATE_AMRWB)
diff --git a/ffmpeg/tests/fate/atrac.mak b/ffmpeg/tests/fate/atrac.mak
new file mode 100644
index 0000000..3ac5553
--- /dev/null
+++ b/ffmpeg/tests/fate/atrac.mak
@@ -0,0 +1,26 @@
+FATE_ATRAC1-$(call DEMDEC, AEA, ATRAC1) += fate-atrac1
+fate-atrac1: CMD = pcm -i $(SAMPLES)/atrac1/test_tones_small.aea
+fate-atrac1: REF = $(SAMPLES)/atrac1/test_tones_small.pcm
+
+FATE_ATRAC3 += fate-atrac3-1
+fate-atrac3-1: CMD = pcm -i $(SAMPLES)/atrac3/mc_sich_at3_066_small.wav
+fate-atrac3-1: REF = $(SAMPLES)/atrac3/mc_sich_at3_066_small.pcm
+
+FATE_ATRAC3 += fate-atrac3-2
+fate-atrac3-2: CMD = pcm -i $(SAMPLES)/atrac3/mc_sich_at3_105_small.wav
+fate-atrac3-2: REF = $(SAMPLES)/atrac3/mc_sich_at3_105_small.pcm
+
+FATE_ATRAC3 += fate-atrac3-3
+fate-atrac3-3: CMD = pcm -i $(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) += $(FATE_ATRAC3)
+
+FATE_ATRAC_ALL = $(FATE_ATRAC1-yes) $(FATE_ATRAC3-yes)
+
+$(FATE_ATRAC_ALL): CMP = oneoff
+
+FATE_SAMPLES_AVCONV += $(FATE_ATRAC_ALL)
+
+fate-atrac: $(FATE_ATRAC_ALL)
+fate-atrac3: $(FATE_ATRAC3-yes)
diff --git a/ffmpeg/tests/fate/audio.mak b/ffmpeg/tests/fate/audio.mak
new file mode 100644
index 0000000..65bb146
--- /dev/null
+++ b/ffmpeg/tests/fate/audio.mak
@@ -0,0 +1,64 @@
+FATE_BINKAUDIO-$(call DEMDEC, BINK, BINKAUDIO_DCT) += fate-binkaudio-dct
+fate-binkaudio-dct: CMD = pcm -i $(SAMPLES)/bink/binkaudio_dct.bik
+fate-binkaudio-dct: REF = $(SAMPLES)/bink/binkaudio_dct.pcm
+fate-binkaudio-dct: FUZZ = 2
+
+FATE_BINKAUDIO-$(call DEMDEC, BINK, BINKAUDIO_RDFT) += fate-binkaudio-rdft
+fate-binkaudio-rdft: CMD = pcm -i $(SAMPLES)/bink/binkaudio_rdft.bik
+fate-binkaudio-rdft: REF = $(SAMPLES)/bink/binkaudio_rdft.pcm
+fate-binkaudio-rdft: FUZZ = 2
+
+$(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-bmv-audio: CMD = framecrc -i $(SAMPLES)/bmv/SURFING-partial.BMV -vn
+
+FATE_SAMPLES_AUDIO-$(call DEMDEC, DSICIN, DSICINAUDIO) += fate-delphine-cin-audio
+fate-delphine-cin-audio: CMD = framecrc -i $(SAMPLES)/delphine-cin/LOGO-partial.CIN -vn
+
+FATE_SAMPLES_AUDIO-$(call DEMDEC, MPEGTS, DCA) += fate-dts
+fate-dts: CMD = pcm -i $(SAMPLES)/dts/dts.ts
+fate-dts: CMP = oneoff
+fate-dts: REF = $(SAMPLES)/dts/dts.pcm
+
+FATE_SAMPLES_AUDIO-$(call DEMDEC, AVI, IMC) += fate-imc
+fate-imc: CMD = pcm -i $(SAMPLES)/imc/imc.avi
+fate-imc: CMP = oneoff
+fate-imc: REF = $(SAMPLES)/imc/imc.pcm
+
+FATE_SAMPLES_AUDIO-$(call DEMDEC, FLV, NELLYMOSER) += fate-nellymoser
+fate-nellymoser: CMD = pcm -i $(SAMPLES)/nellymoser/nellymoser.flv
+fate-nellymoser: CMP = oneoff
+fate-nellymoser: REF = $(SAMPLES)/nellymoser/nellymoser.pcm
+
+FATE_SAMPLES_AUDIO-$(call ENCMUX, NELLYMOSER, FLV) += 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
+fate-nellymoser-aref-encode: REF = ./tests/data/asynth-16000-1.wav
+fate-nellymoser-aref-encode: CMP_SHIFT = -244
+fate-nellymoser-aref-encode: CMP_TARGET = 9612
+fate-nellymoser-aref-encode: SIZE_TOLERANCE = 268
+
+FATE_SAMPLES_AUDIO-$(call DEMDEC, PAF, PAF_AUDIO) += fate-paf-audio
+fate-paf-audio: CMD = framecrc -i $(SAMPLES)/paf/hod1-partial.paf -vn
+
+FATE_SAMPLES_AUDIO-$(call DEMDEC, VMD, VMDAUDIO) += fate-sierra-vmd-audio
+fate-sierra-vmd-audio: CMD = framecrc -i $(SAMPLES)/vmd/12.vmd -vn
+
+FATE_SAMPLES_AUDIO-$(call DEMDEC, SMACKER, SMACKAUD) += fate-smacker-audio
+fate-smacker-audio: CMD = framecrc -i $(SAMPLES)/smacker/wetlogo.smk -vn
+
+FATE_SAMPLES_AUDIO-$(call DEMDEC, SMUSH, VIMA) += fate-vima
+fate-vima: CMD = framecrc -i $(SAMPLES)/smush/ronin_part.znm -vn
+
+FATE_SAMPLES_AUDIO-$(call DEMDEC, WSVQA, WS_SND1) += fate-ws_snd
+fate-ws_snd: CMD = md5 -i $(SAMPLES)/vqa/ws_snd.vqa -f s16le
+
+FATE_SAMPLES_AUDIO += $(FATE_SAMPLES_AUDIO-yes)
+
+FATE_SAMPLES_FFMPEG += $(FATE_SAMPLES_AUDIO)
+fate-audio: $(FATE_SAMPLES_AUDIO)
diff --git a/ffmpeg/tests/fate/avfilter.mak b/ffmpeg/tests/fate/avfilter.mak
new file mode 100644
index 0000000..d68757d
--- /dev/null
+++ b/ffmpeg/tests/fate/avfilter.mak
@@ -0,0 +1,66 @@
+FATE_LAVFI = fate-lavfi-alphaextract_rgb \
+ fate-lavfi-alphaextract_yuv \
+ fate-lavfi-alphamerge_rgb \
+ fate-lavfi-alphamerge_yuv \
+ fate-lavfi-crop \
+ fate-lavfi-crop_scale \
+ fate-lavfi-crop_scale_vflip \
+ fate-lavfi-crop_vflip \
+ fate-lavfi-drawbox \
+ fate-lavfi-edgedetect \
+ fate-lavfi-fade \
+ fate-lavfi-field \
+ fate-lavfi-idet \
+ fate-lavfi-il \
+ fate-lavfi-null \
+ fate-lavfi-overlay_rgb \
+ fate-lavfi-overlay_yuv420 \
+ fate-lavfi-overlay_yuv444 \
+ fate-lavfi-pad \
+ fate-lavfi-pixfmts_copy \
+ fate-lavfi-pixfmts_crop \
+ fate-lavfi-pixfmts_hflip \
+ fate-lavfi-pixfmts_null \
+ fate-lavfi-pixfmts_pad \
+ fate-lavfi-pixfmts_pixdesctest \
+ fate-lavfi-pixfmts_scale \
+ fate-lavfi-pixfmts_vflip \
+ fate-lavfi-scale200 \
+ fate-lavfi-scale500 \
+ fate-lavfi-select \
+ fate-lavfi-setdar \
+ fate-lavfi-setsar \
+ fate-lavfi-thumbnail \
+ fate-lavfi-tile \
+ fate-lavfi-transpose \
+ fate-lavfi-unsharp \
+ fate-lavfi-vflip \
+ fate-lavfi-vflip_crop \
+ fate-lavfi-vflip_vflip \
+
+FATE_LAVFI-$(CONFIG_AVDEVICE) += fate-lavfi-life \
+ fate-lavfi-scalenorm \
+ fate-lavfi-testsrc \
+
+FATE_LAVFI-$(CONFIG_GPL) += fate-lavfi-colormatrix1 \
+ fate-lavfi-colormatrix2 \
+ fate-lavfi-hue \
+ fate-lavfi-kerndeint \
+ fate-lavfi-pixfmts_super2xsai \
+ fate-lavfi-pp \
+ fate-lavfi-pp2 \
+ fate-lavfi-pp3 \
+ fate-lavfi-pp4 \
+ fate-lavfi-pp5 \
+ fate-lavfi-pp6 \
+ fate-lavfi-tinterlace_merge \
+ fate-lavfi-tinterlace_pad \
+
+FATE_LAVFI += $(FATE_LAVFI-yes)
+
+$(FATE_LAVFI): $(VREF) libavfilter/filtfmts-test$(EXESUF)
+$(FATE_LAVFI): CMD = lavfitest
+
+FATE_AVCONV += $(FATE_LAVFI)
+fate-lavfi: $(FATE_LAVFI)
+
diff --git a/ffmpeg/tests/fate/avformat.mak b/ffmpeg/tests/fate/avformat.mak
new file mode 100644
index 0000000..5f9c8c1
--- /dev/null
+++ b/ffmpeg/tests/fate/avformat.mak
@@ -0,0 +1,72 @@
+FATE_LAVF-$(call ENCDEC, PCM_S16BE, AIFF) += aiff
+FATE_LAVF-$(call ENCDEC, PCM_ALAW, PCM_ALAW) += alaw
+FATE_LAVF-$(call ENCDEC2, MSMPEG4V3, MP2, ASF) += asf
+FATE_LAVF-$(call ENCDEC, PCM_S16BE_PLANAR, AST) += ast
+FATE_LAVF-$(call ENCDEC, PCM_S16BE, AU) += au
+FATE_LAVF-$(call ENCDEC2, MPEG4, MP2, AVI) += avi
+FATE_LAVF-$(call ENCDEC, BMP, IMAGE2) += bmp
+FATE_LAVF-$(call ENCDEC, PCM_S16BE, CAF) += caf
+FATE_LAVF-$(call ENCDEC, DPX, IMAGE2) += dpx
+FATE_LAVF-$(call ENCDEC2, DVVIDEO, PCM_S16LE, AVI) += dv_fmt
+FATE_LAVF-$(call ENCDEC2, MPEG1VIDEO, MP2, FFM) += ffm
+FATE_LAVF-$(call ENCDEC, RAWVIDEO, FILMSTRIP) += flm
+FATE_LAVF-$(call ENCDEC, FLV, FLV) += flv_fmt
+FATE_LAVF-$(call ENCDEC, GIF, IMAGE2) += gif
+FATE_LAVF-$(call ENCDEC2, MPEG2VIDEO, PCM_S16LE, GXF) += gxf
+FATE_LAVF-$(call ENCDEC, PCM_S16LE, IRCAM) += ircam
+FATE_LAVF-$(call ENCDEC, MJPEG, IMAGE2) += jpg
+FATE_LAVF-$(call ENCDEC2, MPEG4, MP2, MATROSKA) += mkv
+FATE_LAVF-$(call ENCDEC, ADPCM_YAMAHA, MMF) += mmf
+FATE_LAVF-$(call ENCDEC2, MPEG4, PCM_ALAW, MOV) += mov ismv
+FATE_LAVF-$(call ENCDEC2, MPEG1VIDEO, MP2, MPEG1SYSTEM MPEGPS) += mpg
+FATE_LAVF-$(call ENCDEC, PCM_MULAW, PCM_MULAW) += mulaw
+FATE_LAVF-$(call ENCDEC2, MPEG2VIDEO, PCM_S16LE, MXF) += mxf
+FATE_LAVF-$(call ENCDEC2, MPEG2VIDEO, PCM_S16LE, MXF_D10 MXF) += mxf_d10
+FATE_LAVF-$(call ENCDEC2, MPEG4, MP2, NUT) += nut
+FATE_LAVF-$(call ENCDEC, FLAC, OGG) += ogg
+FATE_LAVF-$(call ENCDEC, PAM, IMAGE2) += pam
+FATE_LAVF-$(call ENCDEC, PBM, IMAGE2PIPE) += pbmpipe
+FATE_LAVF-$(call ENCDEC, PCX, IMAGE2) += pcx
+FATE_LAVF-$(call ENCDEC, PGM, IMAGE2) += pgm
+FATE_LAVF-$(call ENCDEC, PGM, IMAGE2PIPE) += pgmpipe
+FATE_LAVF-$(call ENCDEC, PNG, IMAGE2) += png
+FATE_LAVF-$(call ENCDEC, PPM, IMAGE2) += ppm
+FATE_LAVF-$(call ENCDEC, PPM, IMAGE2PIPE) += ppmpipe
+FATE_LAVF-$(call ENCMUX, RV10 AC3_FIXED, RM) += rm
+FATE_LAVF-$(call ENCDEC, PCM_U8, RSO) += rso
+FATE_LAVF-$(call ENCDEC, SGI, IMAGE2) += sgi
+FATE_LAVF-$(call ENCMUX, MJPEG PCM_S16LE, SMJPEG) += smjpeg
+FATE_LAVF-$(call ENCDEC, PCM_S16LE, SOX) += sox
+FATE_LAVF-$(call ENCDEC, SUNRAST, IMAGE2) += sunrast
+FATE_LAVF-$(call ENCDEC, FLV, SWF) += swf
+FATE_LAVF-$(call ENCDEC, TARGA, IMAGE2) += tga
+FATE_LAVF-$(call ENCDEC, TIFF, IMAGE2) += tiff
+FATE_LAVF-$(call ENCDEC2, MPEG2VIDEO, MP2, MPEGTS) += ts
+FATE_LAVF-$(call ENCDEC, PCM_U8, VOC) += voc
+FATE_LAVF-$(call ENCDEC, PCM_S16LE, VOC) += voc_s16
+FATE_LAVF-$(call ENCDEC, PCM_S16LE, WAV) += wav
+FATE_LAVF-$(call ENCMUX, PCM_S16LE, W64) += w64
+FATE_LAVF-$(call ENCDEC, MP2, WTV) += wtv
+FATE_LAVF-$(call ENCDEC, XBM, IMAGE2) += xbm
+FATE_LAVF-$(call ENCDEC, XWD, IMAGE2) += xwd
+FATE_LAVF-$(CONFIG_YUV4MPEGPIPE_MUXER) += yuv4mpeg
+
+FATE_LAVF += $(FATE_LAVF-yes:%=fate-lavf-%)
+FATE_LAVF_PIXFMT-$(CONFIG_SCALE_FILTER) += fate-lavf-pixfmt
+FATE_LAVF += $(FATE_LAVF_PIXFMT-yes)
+
+$(FATE_LAVF): $(AREF) $(VREF)
+$(FATE_LAVF): CMD = lavftest
+
+FATE_AVCONV += $(FATE_LAVF)
+fate-lavf: $(FATE_LAVF)
+
+FATE_LAVF_FATE-$(call ALLYES, MATROSKA_DEMUXER OGG_MUXER) += ogg_vp3
+FATE_LAVF_FATE-$(call ALLYES, MOV_DEMUXER LATM_MUXER) += latm
+FATE_LAVF_FATE-$(call ALLYES, MP3_DEMUXER MP3_MUXER) += mp3
+
+FATE_LAVF_FATE += $(FATE_LAVF_FATE-yes:%=fate-lavf-fate-%)
+$(FATE_LAVF_FATE): CMD = lavffatetest
+
+FATE_SAMPLES_FFMPEG += $(FATE_LAVF_FATE)
+fate-lavf-fate: $(FATE_LAVF_FATE)
diff --git a/ffmpeg/tests/fate/bmp.mak b/ffmpeg/tests/fate/bmp.mak
new file mode 100644
index 0000000..9e52ac0
--- /dev/null
+++ b/ffmpeg/tests/fate/bmp.mak
@@ -0,0 +1,43 @@
+FATE_BMP += fate-bmp-1bit
+fate-bmp-1bit: CMD = framecrc -i $(SAMPLES)/bmp/test1.bmp -pix_fmt rgb24
+
+FATE_BMP += fate-bmp-4bit
+fate-bmp-4bit: CMD = framecrc -i $(SAMPLES)/bmp/test4.bmp -pix_fmt rgb24
+
+FATE_BMP += fate-bmp-4bit-os2
+fate-bmp-4bit-os2: CMD = framecrc -i $(SAMPLES)/bmp/test4os2v2.bmp -pix_fmt rgb24
+
+FATE_BMP += fate-bmp-8bit
+fate-bmp-8bit: CMD = framecrc -i $(SAMPLES)/bmp/test8.bmp -pix_fmt rgb24
+
+FATE_BMP += fate-bmp-8bit-os2
+fate-bmp-8bit-os2: CMD = framecrc -i $(SAMPLES)/bmp/test8os2.bmp -pix_fmt rgb24
+
+FATE_BMP += fate-bmp-15bit
+fate-bmp-15bit: CMD = framecrc -i $(SAMPLES)/bmp/test16.bmp -pix_fmt rgb555le
+
+FATE_BMP += fate-bmp-15bit-mask
+fate-bmp-15bit-mask: CMD = framecrc -i $(SAMPLES)/bmp/test16bf555.bmp -pix_fmt rgb555le
+
+FATE_BMP += fate-bmp-16bit-mask
+fate-bmp-16bit-mask: CMD = framecrc -i $(SAMPLES)/bmp/test16bf565.bmp -pix_fmt rgb565le
+
+FATE_BMP += fate-bmp-24bit
+fate-bmp-24bit: CMD = framecrc -i $(SAMPLES)/bmp/test24.bmp
+
+FATE_BMP += fate-bmp-32bit
+fate-bmp-32bit: CMD = framecrc -i $(SAMPLES)/bmp/test32.bmp -pix_fmt bgr24
+
+FATE_BMP += fate-bmp-32bit-mask
+fate-bmp-32bit-mask: CMD = framecrc -i $(SAMPLES)/bmp/test32bf.bmp -pix_fmt bgr24
+
+FATE_BMP += fate-bmp-rle4
+fate-bmp-rle4: CMD = framecrc -i $(SAMPLES)/bmp/testcompress4.bmp -pix_fmt rgb24
+
+FATE_BMP += fate-bmp-rle8
+fate-bmp-rle8: CMD = framecrc -i $(SAMPLES)/bmp/testcompress8.bmp -pix_fmt rgb24
+
+FATE_BMP-$(call DEMDEC, IMAGE2, BMP) += $(FATE_BMP)
+
+FATE_SAMPLES_AVCONV += $(FATE_BMP-yes)
+fate-bmp: $(FATE_BMP-yes)
diff --git a/ffmpeg/tests/fate/cdxl.mak b/ffmpeg/tests/fate/cdxl.mak
new file mode 100644
index 0000000..11ff902
--- /dev/null
+++ b/ffmpeg/tests/fate/cdxl.mak
@@ -0,0 +1,19 @@
+FATE_CDXL += fate-cdxl-bitline-ham6
+fate-cdxl-bitline-ham6: CMD = framecrc -i $(SAMPLES)/cdxl/bitline.cdxl -frames:v 10
+
+FATE_CDXL += fate-cdxl-ham6
+fate-cdxl-ham6: CMD = framecrc -i $(SAMPLES)/cdxl/cat.cdxl -an -frames:v 16
+
+FATE_CDXL += fate-cdxl-ham8
+fate-cdxl-ham8: CMD = framecrc -i $(SAMPLES)/cdxl/mirage.cdxl -an -frames:v 1
+
+FATE_CDXL += fate-cdxl-pal8
+fate-cdxl-pal8: CMD = framecrc -i $(SAMPLES)/cdxl/maku.cdxl -pix_fmt rgb24 -frames:v 11
+
+FATE_CDXL += fate-cdxl-pal8-small
+fate-cdxl-pal8-small: CMD = framecrc -i $(SAMPLES)/cdxl/fruit.cdxl -an -pix_fmt rgb24 -frames:v 46
+
+FATE_CDXL-$(call DEMDEC, CDXL, CDXL) += $(FATE_CDXL)
+
+FATE_SAMPLES_AVCONV += $(FATE_CDXL-yes)
+fate-cdxl: $(FATE_CDXL-yes)
diff --git a/ffmpeg/tests/fate/cover-art.mak b/ffmpeg/tests/fate/cover-art.mak
new file mode 100644
index 0000000..b175c3e
--- /dev/null
+++ b/ffmpeg/tests/fate/cover-art.mak
@@ -0,0 +1,33 @@
+FATE_COVER_ART-$(CONFIG_APE_DEMUXER) += fate-cover-art-ape
+fate-cover-art-ape: CMD = md5 -i $(SAMPLES)/cover_art/luckynight_cover.ape -an -c:v copy -f rawvideo
+fate-cover-art-ape: REF = 45333c983c45af54449dff10af144317
+
+FATE_COVER_ART-$(CONFIG_FLAC_DEMUXER) += fate-cover-art-flac
+fate-cover-art-flac: CMD = md5 -i $(SAMPLES)/cover_art/cover_art.flac -an -c:v copy -f rawvideo
+fate-cover-art-flac: REF = 0de1fc6200596fa32b8f7300a14c0261
+
+FATE_COVER_ART-$(CONFIG_MOV_DEMUXER) += fate-cover-art-m4a
+fate-cover-art-m4a: CMD = md5 -i $(SAMPLES)/cover_art/Owner-iTunes_9.0.3.15.m4a -an -c:v copy -f rawvideo
+fate-cover-art-m4a: REF = 08ba70a3b594ff6345a93965e96a9d3e
+
+FATE_COVER_ART-$(CONFIG_ASF_DEMUXER) += fate-cover-art-wma
+fate-cover-art-wma: CMD = md5 -i $(SAMPLES)/cover_art/Californication_cover.wma -an -c:v copy -f rawvideo
+fate-cover-art-wma: REF = 0808bd0e1b61542a16e1906812dd924b
+
+FATE_COVER_ART-$(CONFIG_ASF_DEMUXER) += fate-cover-art-wma-id3
+fate-cover-art-wma-id3: CMD = md5 -i $(SAMPLES)/cover_art/wma_with_ID3_APIC_trimmed.wma -an -c:v copy -f rawvideo
+fate-cover-art-wma-id3: REF = e6a8dd03687d5178bc13fc7d3316696e
+
+FATE_COVER_ART-$(CONFIG_ASF_DEMUXER) += fate-cover-art-wma-metadatalib
+fate-cover-art-wma-metadatalib: CMD = md5 -i $(SAMPLES)/cover_art/wma_with_metadata_library_object_tag_trimmed.wma -map 0:v -c:v copy -f rawvideo
+fate-cover-art-wma-metadatalib: REF = 32e8bd4fad546f63d881a0256f083aea
+
+FATE_COVER_ART-$(CONFIG_WV_DEMUXER) += fate-cover-art-wv
+fate-cover-art-wv: CMD = md5 -i $(SAMPLES)/cover_art/luckynight_cover.wv -an -c:v copy -f rawvideo
+fate-cover-art-wv: REF = 45333c983c45af54449dff10af144317
+
+FATE_COVER_ART = $(FATE_COVER_ART-yes)
+
+$(FATE_COVER_ART): CMP = oneline
+FATE_SAMPLES_AVCONV += $(FATE_COVER_ART)
+fate-cover-art: $(FATE_COVER_ART)
diff --git a/ffmpeg/tests/fate/demux.mak b/ffmpeg/tests/fate/demux.mak
new file mode 100644
index 0000000..3b5f954
--- /dev/null
+++ b/ffmpeg/tests/fate/demux.mak
@@ -0,0 +1,99 @@
+FATE_SAMPLES_DEMUX-$(call DEMDEC, AVI, FRAPS) += fate-avio-direct
+fate-avio-direct: CMD = framecrc -avioflags direct -i $(SAMPLES)/fraps/fraps-v5-bouncing-balls-partial.avi -avioflags direct
+
+FATE_SAMPLES_DEMUX-$(CONFIG_AAC_DEMUXER) += fate-adts-demux
+fate-adts-demux: CMD = crc -i $(SAMPLES)/aac/ct_faac-adts.aac -acodec copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_AEA_DEMUXER) += fate-aea-demux
+fate-aea-demux: CMD = crc -i $(SAMPLES)/aea/chirp.aea -acodec copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_AST_DEMUXER) += fate-ast
+fate-ast: CMD = crc -i $(SAMPLES)/ast/demo11_02_partial.ast -c copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_BINK_DEMUXER) += fate-bink-demux
+fate-bink-demux: CMD = crc -i $(SAMPLES)/bink/Snd0a7d9b58.dee -vn -acodec copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_BRSTM_DEMUXER) += fate-brstm
+fate-brstm: CMD = crc -i $(SAMPLES)/brstm/lozswd_partial.brstm -acodec copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_CAF_DEMUXER) += fate-caf
+fate-caf: CMD = crc -i $(SAMPLES)/caf/caf-pcm16.caf -c copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_CDXL_DEMUXER) += fate-cdxl-demux
+fate-cdxl-demux: CMD = framecrc -i $(SAMPLES)/cdxl/mirage.cdxl -vcodec copy -acodec copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_DAUD_DEMUXER) += fate-d-cinema-demux
+fate-d-cinema-demux: CMD = framecrc -i $(SAMPLES)/d-cinema/THX_Science_FLT_1920-partial.302 -acodec copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_GIF_DEMUXER) += fate-gif-demux
+fate-gif-demux: CMD = framecrc -i $(SAMPLES)/gif/Newtons_cradle_animation_book_2.gif -vcodec copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_IV8_DEMUXER) += fate-iv8-demux
+fate-iv8-demux: CMD = framecrc -i $(SAMPLES)/iv8/zzz-partial.mpg -vcodec copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_JV_DEMUXER) += fate-jv-demux
+fate-jv-demux: CMD = framecrc -i $(SAMPLES)/jv/intro.jv -vcodec copy -acodec copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_LMLM4_DEMUXER) += fate-lmlm4-demux
+fate-lmlm4-demux: CMD = framecrc -i $(SAMPLES)/lmlm4/LMLM4_CIFat30fps.divx -t 3 -acodec copy -vcodec copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_XA_DEMUXER) += fate-maxis-xa
+fate-maxis-xa: CMD = framecrc -i $(SAMPLES)/maxis-xa/SC2KBUG.XA -frames:a 30 -c:a copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_MTV_DEMUXER) += fate-mtv
+fate-mtv: CMD = framecrc -i $(SAMPLES)/mtv/comedian_auto-partial.mtv -c copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_MXF_DEMUXER) += fate-mxf-demux
+fate-mxf-demux: CMD = framecrc -i $(SAMPLES)/mxf/C0023S01.mxf -acodec copy -vcodec copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_NC_DEMUXER) += fate-nc-demux
+fate-nc-demux: CMD = framecrc -i $(SAMPLES)/nc-camera/nc-sample-partial -vcodec copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_NISTSPHERE_DEMUXER) += fate-nistsphere-demux
+fate-nistsphere-demux: CMD = crc -i $(SAMPLES)/nistsphere/nist-ulaw.nist -acodec copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_NSV_DEMUXER) += fate-nsv-demux
+fate-nsv-demux: CMD = framecrc -i $(SAMPLES)/nsv/witchblade-51kbps.nsv -t 6 -vcodec copy -acodec copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_OMA_DEMUXER) += fate-oma-demux
+fate-oma-demux: CMD = crc -i $(SAMPLES)/oma/01-Untitled-partial.oma -acodec copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_PAF_DEMUXER) += fate-paf-demux
+fate-paf-demux: CMD = framecrc -i $(SAMPLES)/paf/hod1-partial.paf -vcodec copy -acodec copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_PMP_DEMUXER) += fate-pmp-demux
+fate-pmp-demux: CMD = framecrc -i $(SAMPLES)/pmp/demo.pmp -vn -c:a copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_STR_DEMUXER) += fate-psx-str-demux
+fate-psx-str-demux: CMD = framecrc -i $(SAMPLES)/psx-str/descent-partial.str -c copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_PVA_DEMUXER) += fate-pva-demux
+fate-pva-demux: CMD = framecrc -idct simple -i $(SAMPLES)/pva/PVA_test-partial.pva -t 0.6 -acodec copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_QCP_DEMUXER) += fate-qcp-demux
+fate-qcp-demux: CMD = crc -i $(SAMPLES)/qcp/0036580847.QCP -acodec copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_R3D_DEMUXER) += fate-redcode-demux
+fate-redcode-demux: CMD = framecrc -i $(SAMPLES)/r3d/4MB-sample.r3d -vcodec copy -acodec copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_SIFF_DEMUXER) += fate-siff-demux
+fate-siff-demux: CMD = framecrc -i $(SAMPLES)/SIFF/INTRO_B.VB -c copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_SMJPEG_DEMUXER) += fate-smjpeg-demux
+fate-smjpeg-demux: CMD = framecrc -i $(SAMPLES)/smjpeg/scenwin.mjpg -c copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_WSAUD_DEMUXER) += fate-westwood-aud
+fate-westwood-aud: CMD = framecrc -i $(SAMPLES)/westwood-aud/excellent.aud -c copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_WTV_DEMUXER) += fate-wtv-demux
+fate-wtv-demux: CMD = framecrc -i $(SAMPLES)/wtv/law-and-order-partial.wtv -vcodec copy -acodec copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_XMV_DEMUXER) += fate-xmv-demux
+fate-xmv-demux: CMD = framecrc -i $(SAMPLES)/xmv/logos1p.fmv -vcodec copy -acodec copy
+
+FATE_SAMPLES_DEMUX-$(CONFIG_XWMA_DEMUXER) += fate-xwma-demux
+fate-xwma-demux: CMD = crc -i $(SAMPLES)/xwma/ergon.xwma -acodec copy
+
+FATE_SAMPLES_DEMUX += $(FATE_SAMPLES_DEMUX-yes)
+FATE_SAMPLES_FFMPEG += $(FATE_SAMPLES_DEMUX)
+fate-demux: $(FATE_SAMPLES_DEMUX)
diff --git a/ffmpeg/tests/fate/dfa.mak b/ffmpeg/tests/fate/dfa.mak
new file mode 100644
index 0000000..4800d8a
--- /dev/null
+++ b/ffmpeg/tests/fate/dfa.mak
@@ -0,0 +1,37 @@
+FATE_DFA += fate-dfa1
+fate-dfa1: CMD = framecrc -i $(SAMPLES)/chronomaster-dfa/0000.dfa -pix_fmt rgb24
+
+FATE_DFA += fate-dfa2
+fate-dfa2: CMD = framecrc -i $(SAMPLES)/chronomaster-dfa/0001.dfa -pix_fmt rgb24
+
+FATE_DFA += fate-dfa3
+fate-dfa3: CMD = framecrc -i $(SAMPLES)/chronomaster-dfa/0002.dfa -pix_fmt rgb24
+
+FATE_DFA += fate-dfa4
+fate-dfa4: CMD = framecrc -i $(SAMPLES)/chronomaster-dfa/0003.dfa -pix_fmt rgb24
+
+FATE_DFA += fate-dfa5
+fate-dfa5: CMD = framecrc -i $(SAMPLES)/chronomaster-dfa/0004.dfa -pix_fmt rgb24
+
+FATE_DFA += fate-dfa6
+fate-dfa6: CMD = framecrc -i $(SAMPLES)/chronomaster-dfa/0005.dfa -pix_fmt rgb24
+
+FATE_DFA += fate-dfa7
+fate-dfa7: CMD = framecrc -i $(SAMPLES)/chronomaster-dfa/0006.dfa -pix_fmt rgb24
+
+FATE_DFA += fate-dfa8
+fate-dfa8: CMD = framecrc -i $(SAMPLES)/chronomaster-dfa/0007.dfa -pix_fmt rgb24
+
+FATE_DFA += fate-dfa9
+fate-dfa9: CMD = framecrc -i $(SAMPLES)/chronomaster-dfa/0008.dfa -pix_fmt rgb24
+
+FATE_DFA += fate-dfa10
+fate-dfa10: CMD = framecrc -i $(SAMPLES)/chronomaster-dfa/0009.dfa -pix_fmt rgb24
+
+FATE_DFA += fate-dfa11
+fate-dfa11: CMD = framecrc -i $(SAMPLES)/chronomaster-dfa/0010.dfa -pix_fmt rgb24
+
+FATE_DFA-$(call DEMDEC, DFA, DFA) += $(FATE_DFA)
+
+FATE_SAMPLES_AVCONV += $(FATE_DFA-yes)
+fate-dfa: $(FATE_DFA-yes)
diff --git a/ffmpeg/tests/fate/dpcm.mak b/ffmpeg/tests/fate/dpcm.mak
new file mode 100644
index 0000000..abc25ed
--- /dev/null
+++ b/ffmpeg/tests/fate/dpcm.mak
@@ -0,0 +1,14 @@
+FATE_DPCM-$(call DEMDEC, ROQ, ROQ_DPCM) += fate-dpcm-idroq
+fate-dpcm-idroq: CMD = framecrc -i $(SAMPLES)/idroq/idlogo.roq -vn
+
+FATE_DPCM-$(call DEMDEC, IPMOVIE, INTERPLAY_DPCM) += fate-dpcm-interplay
+fate-dpcm-interplay: CMD = framecrc -i $(SAMPLES)/interplay-mve/interplay-logo-2MB.mve -vn
+
+FATE_DPCM-$(call DEMDEC, SOL, SOL_DPCM) += fate-dpcm-sierra
+fate-dpcm-sierra: CMD = md5 -i $(SAMPLES)/sol/lsl7sample.sol -f s16le
+
+FATE_DPCM-$(call DEMDEC, AVI, XAN_DPCM) += fate-dpcm-xan
+fate-dpcm-xan: CMD = md5 -i $(SAMPLES)/wc4-xan/wc4_2.avi -vn -f s16le
+
+FATE_SAMPLES_AVCONV += $(FATE_DPCM-yes)
+fate-dpcm: $(FATE_DPCM-yes)
diff --git a/ffmpeg/tests/fate/ea.mak b/ffmpeg/tests/fate/ea.mak
new file mode 100644
index 0000000..81e14b8
--- /dev/null
+++ b/ffmpeg/tests/fate/ea.mak
@@ -0,0 +1,26 @@
+FATE_SAMPLES_EA-$(call DEMDEC, EA_CDATA, ADPCM_EA_XAS) += fate-ea-cdata
+fate-ea-cdata: CMD = md5 -i $(SAMPLES)/ea-cdata/166b084d.46410f77.0009b440.24be960c.cdata -f s16le
+
+FATE_SAMPLES_EA-$(call DEMDEC, EA, EACMV) += fate-ea-cmv
+fate-ea-cmv: CMD = framecrc -i $(SAMPLES)/ea-cmv/TITLE.CMV -pix_fmt rgb24
+
+FATE_SAMPLES_EA-$(call DEMDEC, EA, EAMAD) += fate-ea-mad
+fate-ea-mad: CMD = framecrc -i $(SAMPLES)/ea-mad/NFS6LogoE.mad -an
+
+FATE_SAMPLES_EA-$(call DEMDEC, EA, EATGQ) += fate-ea-tgq
+fate-ea-tgq: CMD = framecrc -i $(SAMPLES)/ea-tgq/v27.tgq -an
+
+FATE_EA_TGV += fate-ea-tgv-1
+fate-ea-tgv-1: CMD = framecrc -i $(SAMPLES)/ea-tgv/INTRO8K-partial.TGV -pix_fmt rgb24 -an
+
+FATE_EA_TGV += fate-ea-tgv-2
+fate-ea-tgv-2: CMD = framecrc -i $(SAMPLES)/ea-tgv/INTEL_S.TGV -pix_fmt rgb24 -an
+
+FATE_SAMPLES_EA-$(call DEMDEC, EA, EATGV) += $(FATE_EA_TGV)
+fate-ea-tgv: $(FATE_EA_TGV)
+
+FATE_SAMPLES_EA-$(call DEMDEC, EA, EATQI) += fate-ea-tqi
+fate-ea-tqi: CMD = framecrc -i $(SAMPLES)/ea-wve/networkBackbone-partial.wve -frames:v 26 -an
+
+FATE_SAMPLES_FFMPEG += $(FATE_SAMPLES_EA-yes)
+fate-ea: $(FATE_SAMPLES_EA-yes)
diff --git a/ffmpeg/tests/fate/ffmpeg.mak b/ffmpeg/tests/fate/ffmpeg.mak
new file mode 100644
index 0000000..b96bfb3
--- /dev/null
+++ b/ffmpeg/tests/fate/ffmpeg.mak
@@ -0,0 +1,37 @@
+FATE_MAPCHAN-$(CONFIG_CHANNELMAP_FILTER) += fate-mapchan-6ch-extract-2
+fate-mapchan-6ch-extract-2: tests/data/asynth-22050-6.wav
+fate-mapchan-6ch-extract-2: CMD = ffmpeg -i $(TARGET_PATH)/tests/data/asynth-22050-6.wav -map_channel 0.0.0 -flags +bitexact -f wav md5: -map_channel 0.0.1 -flags +bitexact -f wav md5:
+
+FATE_MAPCHAN-$(CONFIG_CHANNELMAP_FILTER) += fate-mapchan-6ch-extract-2-downmix-mono
+fate-mapchan-6ch-extract-2-downmix-mono: tests/data/asynth-22050-6.wav
+fate-mapchan-6ch-extract-2-downmix-mono: CMD = md5 -i $(TARGET_PATH)/tests/data/asynth-22050-6.wav -map_channel 0.0.1 -map_channel 0.0.0 -ac 1 -flags +bitexact -f wav
+
+FATE_MAPCHAN-$(CONFIG_CHANNELMAP_FILTER) += fate-mapchan-silent-mono
+fate-mapchan-silent-mono: tests/data/asynth-22050-1.wav
+fate-mapchan-silent-mono: CMD = md5 -i $(TARGET_PATH)/tests/data/asynth-22050-1.wav -map_channel -1 -map_channel 0.0.0 -flags +bitexact -f wav
+
+FATE_MAPCHAN = $(FATE_MAPCHAN-yes)
+
+FATE_FFMPEG += $(FATE_MAPCHAN)
+fate-mapchan: $(FATE_MAPCHAN)
+
+FATE_FFMPEG-$(CONFIG_COLOR_FILTER) += fate-ffmpeg-filter_complex
+fate-ffmpeg-filter_complex: CMD = framecrc -filter_complex color=d=1:r=5
+
+FATE_FFMPEG-$(CONFIG_COLOR_FILTER) += fate-ffmpeg-lavfi
+fate-ffmpeg-lavfi: CMD = framecrc -lavfi color=d=1:r=5
+
+FATE_FFMPEG-$(CONFIG_RAWVIDEO_DEMUXER) += fate-force_key_frames
+fate-force_key_frames: tests/data/vsynth2.yuv
+fate-force_key_frames: CMD = enc_dec \
+ "rawvideo -s 352x288 -pix_fmt yuv420p" tests/data/vsynth2.yuv \
+ avi "-c mpeg4 -g 240 -qscale 10 -force_key_frames 0.5,0:00:01.5" \
+ framecrc "" "" "-skip_frame nokey"
+
+FATE_SAMPLES_FFMPEG-$(call ALLYES, VOBSUB_DEMUXER DVDSUB_DECODER AVFILTER OVERLAY_FILTER DVDSUB_ENCODER) += fate-sub2video
+fate-sub2video: tests/data/vsynth2.yuv
+fate-sub2video: CMD = framecrc \
+ -f rawvideo -r 5 -s 352x288 -pix_fmt yuv420p -i tests/data/vsynth2.yuv \
+ -ss 132 -i $(SAMPLES)/sub/vobsub.idx \
+ -filter_complex "sws_flags=+accurate_rnd+bitexact;[0:0]scale=720:480[v];[v][1:0]overlay[v2]" \
+ -map "[v2]" -c:v rawvideo -map 1:s -c:s dvdsub
diff --git a/ffmpeg/tests/fate/ffprobe.mak b/ffmpeg/tests/fate/ffprobe.mak
new file mode 100644
index 0000000..cf20185
--- /dev/null
+++ b/ffmpeg/tests/fate/ffprobe.mak
@@ -0,0 +1,33 @@
+FFPROBE_TEST_FILE=tests/data/ffprobe-test.nut
+FFPROBE_COMMAND=ffprobe$(EXESUF) -show_streams -show_packets -show_format -show_frames -bitexact $(FFPROBE_TEST_FILE)
+
+FATE_FFPROBE += fate-ffprobe_compact
+fate-ffprobe_compact: $(FFPROBE_TEST_FILE)
+fate-ffprobe_compact: CMD = run $(FFPROBE_COMMAND) -of compact
+
+FATE_FFPROBE += fate-ffprobe_csv
+fate-ffprobe_csv: $(FFPROBE_TEST_FILE)
+fate-ffprobe_csv: CMD = run $(FFPROBE_COMMAND) -of csv
+
+FATE_FFPROBE += fate-ffprobe_default
+fate-ffprobe_default: $(FFPROBE_TEST_FILE)
+fate-ffprobe_default: CMD = run $(FFPROBE_COMMAND) -of default
+
+FATE_FFPROBE += fate-ffprobe_flat
+fate-ffprobe_flat: $(FFPROBE_TEST_FILE)
+fate-ffprobe_flat: CMD = run $(FFPROBE_COMMAND) -of flat
+
+FATE_FFPROBE += fate-ffprobe_ini
+fate-ffprobe_ini: $(FFPROBE_TEST_FILE)
+fate-ffprobe_ini: CMD = run $(FFPROBE_COMMAND) -of ini
+
+FATE_FFPROBE += fate-ffprobe_json
+fate-ffprobe_json: $(FFPROBE_TEST_FILE)
+fate-ffprobe_json: CMD = run $(FFPROBE_COMMAND) -of json
+
+FATE_FFPROBE += fate-ffprobe_xml
+fate-ffprobe_xml: $(FFPROBE_TEST_FILE)
+fate-ffprobe_xml: CMD = run $(FFPROBE_COMMAND) -of xml
+
+fate-ffprobe: $(FATE_FFPROBE)
+
diff --git a/ffmpeg/tests/fate/fft.mak b/ffmpeg/tests/fate/fft.mak
new file mode 100644
index 0000000..20d5638
--- /dev/null
+++ b/ffmpeg/tests/fate/fft.mak
@@ -0,0 +1,42 @@
+define DEF_FFT
+FATE_FFT += fate-fft-$(1) fate-ifft-$(1) \
+ fate-mdct-$(1) fate-imdct-$(1) \
+ fate-rdft-$(1) fate-irdft-$(1) \
+ fate-dct1d-$(1) fate-idct1d-$(1)
+
+fate-fft-$(N): ARGS = -n$(1)
+fate-ifft-$(N): ARGS = -n$(1) -i
+fate-mdct-$(N): ARGS = -n$(1) -m
+fate-imdct-$(N): ARGS = -n$(1) -m -i
+fate-rdft-$(N): ARGS = -n$(1) -r
+fate-irdft-$(N): ARGS = -n$(1) -r -i
+fate-dct1d-$(N): ARGS = -n$(1) -d
+fate-idct1d-$(N): ARGS = -n$(1) -d -i
+endef
+
+$(foreach N, 4 5 6 7 8 9 10 11 12, $(eval $(call DEF_FFT,$(N))))
+
+fate-fft-test: $(FATE_FFT)
+$(FATE_FFT): libavcodec/fft-test$(EXESUF)
+$(FATE_FFT): CMD = run libavcodec/fft-test $(CPUFLAGS:%=-c%) $(ARGS)
+$(FATE_FFT): REF = /dev/null
+
+define DEF_FFT_FIXED
+FATE_FFT_FIXED += fate-fft-fixed-$(1) fate-ifft-fixed-$(1) \
+ fate-mdct-fixed-$(1) fate-imdct-fixed-$(1)
+
+fate-fft-fixed-$(1): ARGS = -n$(1)
+fate-ifft-fixed-$(1): ARGS = -n$(1) -i
+fate-mdct-fixed-$(1): ARGS = -n$(1) -m
+fate-imdct-fixed-$(1): ARGS = -n$(1) -m -i
+endef
+
+$(foreach N, 4 5 6 7 8 9 10 11 12, $(eval $(call DEF_FFT_FIXED,$(N))))
+
+fate-fft-fixed-test: $(FATE_FFT_FIXED)
+$(FATE_FFT_FIXED): libavcodec/fft-fixed-test$(EXESUF)
+$(FATE_FFT_FIXED): CMD = run libavcodec/fft-fixed-test $(CPUFLAGS:%=-c%) $(ARGS)
+$(FATE_FFT_FIXED): REF = /dev/null
+
+FATE-$(call ALLYES, AVCODEC FFT) += $(FATE_FFT) $(FATE_FFT_FIXED)
+fate-fft: $(FATE_FFT) $(FATE_FFT_FIXED)
diff --git a/ffmpeg/tests/fate/filter.mak b/ffmpeg/tests/fate/filter.mak
new file mode 100644
index 0000000..bf41503
--- /dev/null
+++ b/ffmpeg/tests/fate/filter.mak
@@ -0,0 +1,83 @@
+FATE_AMIX += fate-filter-amix-simple
+fate-filter-amix-simple: CMD = ffmpeg -filter_complex amix -i $(SRC) -ss 3 -i $(SRC1) -f f32le -
+fate-filter-amix-simple: REF = $(SAMPLES)/filter/amix_simple.pcm
+
+FATE_AMIX += fate-filter-amix-first
+fate-filter-amix-first: CMD = ffmpeg -filter_complex amix=duration=first -ss 4 -i $(SRC) -i $(SRC1) -f f32le -
+fate-filter-amix-first: REF = $(SAMPLES)/filter/amix_first.pcm
+
+FATE_AMIX += fate-filter-amix-transition
+fate-filter-amix-transition: tests/data/asynth-44100-2-3.wav
+fate-filter-amix-transition: SRC2 = $(TARGET_PATH)/tests/data/asynth-44100-2-3.wav
+fate-filter-amix-transition: CMD = ffmpeg -filter_complex amix=inputs=3:dropout_transition=0.5 -i $(SRC) -ss 2 -i $(SRC1) -ss 4 -i $(SRC2) -f f32le -
+fate-filter-amix-transition: REF = $(SAMPLES)/filter/amix_transition.pcm
+
+$(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_FILTER-$(CONFIG_AMIX_FILTER) += $(FATE_AMIX)
+
+FATE_FILTER-$(CONFIG_ASYNCTS_FILTER) += fate-filter-asyncts
+fate-filter-asyncts: SRC = $(SAMPLES)/nellymoser/nellymoser-discont.flv
+fate-filter-asyncts: CMD = pcm -analyzeduration 10000000 -i $(SRC) -af asyncts
+fate-filter-asyncts: CMP = oneoff
+fate-filter-asyncts: REF = $(SAMPLES)/nellymoser/nellymoser-discont-async-v2.pcm
+
+FATE_FILTER-$(CONFIG_ARESAMPLE_FILTER) += fate-filter-aresample
+fate-filter-aresample: SRC = $(SAMPLES)/nellymoser/nellymoser-discont.flv
+fate-filter-aresample: CMD = pcm -i $(SRC) -af aresample=min_comp=0.001:min_hard_comp=0.1:first_pts=0
+fate-filter-aresample: CMP = oneoff
+fate-filter-aresample: REF = $(SAMPLES)/nellymoser/nellymoser-discont.pcm
+
+fate-filter-delogo: CMD = framecrc -i $(SAMPLES)/real/rv30.rm -vf perms=random,delogo=show=0:x=290:y=25:w=26:h=16 -an
+
+FATE_FILTER-$(call ALLYES, PERMS_FILTER DELOGO_FILTER) += fate-filter-delogo
+
+FATE_YADIF += fate-filter-yadif-mode0
+fate-filter-yadif-mode0: CMD = framecrc -flags bitexact -idct simple -i $(SAMPLES)/mpeg2/mpeg2_field_encoding.ts -vf yadif=0
+
+FATE_YADIF += fate-filter-yadif-mode1
+fate-filter-yadif-mode1: CMD = framecrc -flags bitexact -idct simple -i $(SAMPLES)/mpeg2/mpeg2_field_encoding.ts -vf yadif=1
+
+FATE_FILTER-$(CONFIG_YADIF_FILTER) += $(FATE_YADIF)
+
+FATE_HQDN3D += fate-filter-hqdn3d
+fate-filter-hqdn3d: CMD = framecrc -idct simple -i $(SAMPLES)/smjpeg/scenwin.mjpg -vf perms=random,hqdn3d -an
+FATE_FILTER-$(call ALLYES, SMJPEG_DEMUXER MJPEG_DECODER PERMS_FILTER HQDN3D_FILTER) += $(FATE_HQDN3D)
+
+fate-filter-curves: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_rgb_median.avi -vf "perms=random,curves=r=0/0.11@.42/.51@1/0.95:g=0.50/0.48:b=0/0.22@.49/.44@1/0.8"
+FATE_FILTER-$(call ALLYES, UTVIDEO_DECODER AVI_DEMUXER PERMS_FILTER CURVES_FILTER) += fate-filter-curves
+
+FATE_GRADFUN += fate-filter-gradfun
+fate-filter-gradfun: CMD = framecrc -i $(SAMPLES)/vmd/12.vmd -vf "sws_flags=+accurate_rnd+bitexact;format=gray,perms=random,gradfun=10:8" -an -frames:v 20
+FATE_FILTER-$(call ALLYES, VMD_DEMUXER VMDVIDEO_DECODER FORMAT_FILTER PERMS_FILTER GRADFUN_FILTER) += $(FATE_GRADFUN)
+
+FATE_SAMPLES_AVCONV += $(FATE_FILTER-yes)
+
+#
+# Metadata tests
+#
+FILTER_METADATA_COMMAND = ffprobe$(EXESUF) -of compact=p=0 -show_entries frame=pkt_pts:frame_tags -bitexact -f lavfi
+
+SCENEDETECT_DEPS = FFPROBE LAVFI_INDEV MOVIE_FILTER SELECT_FILTER SCALE_FILTER \
+ AVCODEC AVDEVICE MOV_DEMUXER SVQ3_DECODER ZLIB
+FATE_METADATA_FILTER-$(call ALLYES, $(SCENEDETECT_DEPS)) += fate-filter-metadata-scenedetect
+fate-filter-metadata-scenedetect: SRC = $(SAMPLES)/svq3/Vertical400kbit.sorenson3.mov
+fate-filter-metadata-scenedetect: CMD = run $(FILTER_METADATA_COMMAND) "sws_flags=+accurate_rnd+bitexact;movie='$(SRC)',select=gt(scene\,.4)"
+
+SILENCEDETECT_DEPS = FFPROBE AVDEVICE LAVFI_INDEV AMOVIE_FILTER AMR_DEMUXER AMRWB_DECODER SILENCEDETECT_FILTER
+FATE_METADATA_FILTER-$(call ALLYES, $(SILENCEDETECT_DEPS)) += fate-filter-metadata-silencedetect
+fate-filter-metadata-silencedetect: SRC = $(SAMPLES)/amrwb/seed-12k65.awb
+fate-filter-metadata-silencedetect: CMD = run $(FILTER_METADATA_COMMAND) "amovie='$(SRC)',silencedetect=d=-20dB"
+
+EBUR128_METADATA_DEPS = FFPROBE AVDEVICE LAVFI_INDEV AMOVIE_FILTER FLAC_DEMUXER FLAC_DECODER EBUR128_FILTER
+FATE_METADATA_FILTER-$(call ALLYES, $(EBUR128_METADATA_DEPS)) += fate-filter-metadata-ebur128
+fate-filter-metadata-ebur128: SRC = $(SAMPLES)/filter/seq-3341-7_seq-3342-5-24bit.flac
+fate-filter-metadata-ebur128: CMD = run $(FILTER_METADATA_COMMAND) "amovie='$(SRC)',ebur128=metadata=1"
+
+FATE_SAMPLES_FFPROBE += $(FATE_METADATA_FILTER-yes)
+
+fate-filter: $(FATE_FILTER-yes) $(FATE_METADATA_FILTER-yes)
diff --git a/ffmpeg/tests/fate/flac.mak b/ffmpeg/tests/fate/flac.mak
new file mode 100644
index 0000000..172f661
--- /dev/null
+++ b/ffmpeg/tests/fate/flac.mak
@@ -0,0 +1,28 @@
+FATE_FLAC += fate-flac-16-chmode-indep \
+ fate-flac-16-chmode-left_side \
+ fate-flac-16-chmode-mid_side \
+ fate-flac-16-chmode-right_side \
+ fate-flac-16-fixed \
+ fate-flac-16-lpc-cholesky \
+ fate-flac-16-lpc-levinson \
+ fate-flac-24-comp-8 \
+
+fate-flac-16-chmode-%: OPTS = -ch_mode $(@:fate-flac-16-chmode-%=%)
+fate-flac-16-fixed: OPTS = -lpc_type fixed
+fate-flac-16-lpc-%: OPTS = -lpc_type $(@:fate-flac-16-lpc-%=%)
+
+fate-flac-16-%: REF = $(SAMPLES)/audio-reference/luckynight_2ch_44kHz_s16.wav
+fate-flac-16-%: CMD = enc_dec_pcm flac wav s16le $(REF) -c flac $(OPTS)
+
+fate-flac-24-comp-%: OPTS = -compression_level $(@:fate-flac-24-comp-%=%)
+
+fate-flac-24-%: REF = $(SAMPLES)/audio-reference/divertimenti_2ch_96kHz_s24.wav
+fate-flac-24-%: CMD = enc_dec_pcm flac wav s24le $(REF) -c flac $(OPTS)
+
+fate-flac-%: CMP = oneoff
+fate-flac-%: FUZZ = 0
+
+FATE_FLAC-$(call ENCMUX, FLAC, FLAC) += $(FATE_FLAC)
+
+FATE_SAMPLES_AVCONV += $(FATE_FLAC-yes)
+fate-flac: $(FATE_FLAC)
diff --git a/ffmpeg/tests/fate/gif.mak b/ffmpeg/tests/fate/gif.mak
new file mode 100644
index 0000000..97b0545
--- /dev/null
+++ b/ffmpeg/tests/fate/gif.mak
@@ -0,0 +1,13 @@
+FATE_GIF += fate-gif-color
+fate-gif-color: CMD = framecrc -i $(SAMPLES)/gif/tc217.gif -pix_fmt bgra
+
+FATE_GIF += fate-gif-disposal-restore
+fate-gif-disposal-restore: CMD = framecrc -i $(SAMPLES)/gif/banner2.gif -pix_fmt bgra
+
+FATE_GIF += fate-gif-gray
+fate-gif-gray: CMD = framecrc -i $(SAMPLES)/gif/Newtons_cradle_animation_book_2.gif -pix_fmt bgra
+
+FATE_GIF-$(call DEMDEC, GIF, GIF) += $(FATE_GIF)
+
+FATE_SAMPLES_AVCONV += $(FATE_GIF-yes)
+fate-gif: $(FATE_GIF-yes)
diff --git a/ffmpeg/tests/fate/h264.mak b/ffmpeg/tests/fate/h264.mak
new file mode 100644
index 0000000..31ee5bf
--- /dev/null
+++ b/ffmpeg/tests/fate/h264.mak
@@ -0,0 +1,391 @@
+FATE_H264 = aud_mw_e \
+ ba1_ft_c \
+ ba1_sony_d \
+ ba2_sony_f \
+ ba3_sva_c \
+ ba_mw_d \
+ bamq1_jvc_c \
+ bamq2_jvc_c \
+ banm_mw_d \
+ basqp1_sony_c \
+ caba1_sony_d \
+ caba1_sva_b \
+ caba2_sony_e \
+ caba2_sva_b \
+ caba3_sony_c \
+ caba3_sva_b \
+ caba3_toshiba_e \
+ cabac_mot_fld0_full \
+ cabac_mot_frm0_full \
+ cabac_mot_mbaff0_full \
+ cabac_mot_picaff0_full \
+ cabaci3_sony_b \
+ cabast3_sony_e \
+ cabastbr3_sony_b \
+ cabref3_sand_d \
+ cacqp3_sony_d \
+ cafi1_sva_c \
+ cama1_sony_c \
+ cama1_toshiba_b \
+ cama1_vtc_c \
+ cama2_vtc_b \
+ cama3_sand_e \
+ cama3_vtc_b \
+ camaci3_sony_c \
+ camanl1_toshiba_b \
+ camanl2_toshiba_b \
+ camanl3_sand_e \
+ camasl3_sony_b \
+ camp_mot_mbaff_l30 \
+ camp_mot_mbaff_l31 \
+ canl1_sony_e \
+ canl1_sva_b \
+ canl1_toshiba_g \
+ canl2_sony_e \
+ canl2_sva_b \
+ canl3_sony_c \
+ canl3_sva_b \
+ canl4_sva_b \
+ canlma2_sony_c \
+ canlma3_sony_c \
+ capa1_toshiba_b \
+ capama3_sand_f \
+ capcm1_sand_e \
+ capcmnl1_sand_e \
+ capm3_sony_d \
+ caqp1_sony_b \
+ cavlc_mot_fld0_full_b \
+ cavlc_mot_frm0_full_b \
+ cavlc_mot_mbaff0_full_b \
+ cavlc_mot_picaff0_full_b \
+ cawp1_toshiba_e \
+ cawp5_toshiba_e \
+ ci1_ft_b \
+ ci_mw_d \
+ cvbs3_sony_c \
+ cvcanlma2_sony_c \
+ cvfi1_sony_d \
+ cvfi1_sva_c \
+ cvfi2_sony_h \
+ cvfi2_sva_c \
+ cvma1_sony_d \
+ cvma1_toshiba_b \
+ cvmanl1_toshiba_b \
+ cvmanl2_toshiba_b \
+ cvmapaqp3_sony_e \
+ cvmaqp2_sony_g \
+ cvmaqp3_sony_d \
+ cvmp_mot_fld_l30_b \
+ cvmp_mot_frm_l31_b \
+ cvnlfi1_sony_c \
+ cvnlfi2_sony_h \
+ cvpa1_toshiba_b \
+ cvpcmnl1_sva_c \
+ cvpcmnl2_sva_c \
+ cvwp1_toshiba_e \
+ cvwp2_toshiba_e \
+ cvwp3_toshiba_e \
+ cvwp5_toshiba_e \
+ fi1_sony_e \
+ frext-alphaconformanceg \
+ frext-bcrm_freh10 \
+ frext-brcm_freh11 \
+ frext-brcm_freh3 \
+ frext-brcm_freh4 \
+ frext-brcm_freh5 \
+ frext-brcm_freh8 \
+ frext-brcm_freh9 \
+ frext-freh12_b \
+ frext-freh1_b \
+ frext-freh2_b \
+ frext-freh6 \
+ frext-freh7_b \
+ frext-frext01_jvc_d \
+ frext-frext02_jvc_c \
+ frext-frext1_panasonic_c \
+ frext-frext2_panasonic_b \
+ frext-frext3_panasonic_d \
+ frext-frext4_panasonic_a \
+ frext-frext_mmco4_sony_b \
+ frext-hcaff1_hhi_b \
+ frext-hcafr1_hhi_c \
+ frext-hcafr2_hhi_a \
+ frext-hcafr3_hhi_a \
+ frext-hcafr4_hhi_a \
+ frext-hcamff1_hhi_b \
+ frext-hi422fr10_sony_b \
+ frext-hi422fr13_sony_b \
+ frext-hi422fr1_sony_a \
+ frext-hi422fr6_sony_a \
+ frext-hpca_brcm_c \
+ frext-hpcadq_brcm_b \
+ frext-hpcafl_bcrm_c \
+ frext-hpcaflnl_bcrm_c \
+ frext-hpcalq_brcm_b \
+ frext-hpcamapalq_bcrm_b \
+ frext-hpcamolq_brcm_b \
+ frext-hpcanl_brcm_c \
+ frext-hpcaq2lq_brcm_b \
+ frext-hpcv_brcm_a \
+ frext-hpcvfl_bcrm_a \
+ frext-hpcvflnl_bcrm_a \
+ frext-hpcvmolq_brcm_b \
+ frext-hpcvnl_brcm_a \
+ frext-pph10i1_panasonic_a \
+ frext-pph10i2_panasonic_a \
+ frext-pph10i3_panasonic_a \
+ frext-pph10i4_panasonic_a \
+ frext-pph10i5_panasonic_a \
+ frext-pph10i6_panasonic_a \
+ frext-pph10i7_panasonic_a \
+ frext-pph422i1_panasonic_a \
+ frext-pph422i2_panasonic_a \
+ frext-pph422i3_panasonic_a \
+ frext-pph422i4_panasonic_a \
+ frext-pph422i5_panasonic_a \
+ frext-pph422i6_panasonic_a \
+ frext-pph422i7_panasonic_a \
+ hcbp2_hhi_a \
+ hcmp1_hhi_a \
+ ls_sva_d \
+ midr_mw_d \
+ mps_mw_a \
+ mr1_bt_a \
+ mr1_mw_a \
+ mr2_mw_a \
+ mr2_tandberg_e \
+ mr3_tandberg_b \
+ mr4_tandberg_c \
+ mr5_tandberg_c \
+ mr6_bt_b \
+ mr7_bt_b \
+ mr8_bt_b \
+ mr9_bt_b \
+ mv1_brcm_d \
+ nl1_sony_d \
+ nl2_sony_h \
+ nl3_sva_e \
+ nlmq1_jvc_c \
+ nlmq2_jvc_c \
+ nrf_mw_e \
+ sharp_mp_field_1_b \
+ sharp_mp_field_2_b \
+ sharp_mp_field_3_b \
+ sharp_mp_paff_1r2 \
+ sharp_mp_paff_2r \
+ sl1_sva_b \
+ sva_ba1_b \
+ sva_ba2_d \
+ sva_base_b \
+ sva_cl1_e \
+ sva_fm1_e \
+ sva_nl1_b \
+ sva_nl2_e \
+
+FATE_H264_REINIT_TESTS := large_420_8-to-small_420_8 \
+ small_420_8-to-large_444_10 \
+ small_420_9-to-small_420_8 \
+ small_422_9-to-small_420_9 \
+
+FATE_H264 := $(FATE_H264:%=fate-h264-conformance-%) \
+ $(FATE_H264_REINIT_TESTS:%=fate-h264-reinit-%) \
+ fate-h264-extreme-plane-pred \
+ fate-h264-lossless \
+
+FATE_H264-$(call DEMDEC, H264, H264) += $(FATE_H264)
+FATE_H264-$(call DEMDEC, MOV, H264) += fate-h264-interlace-crop
+FATE_H264-$(call ALLYES, MOV_DEMUXER H264_MP4TOANNEXB_BSF) += fate-h264-bsf-mp4toannexb
+
+FATE_SAMPLES_AVCONV += $(FATE_H264-yes)
+fate-h264: $(FATE_H264-yes)
+
+fate-h264-conformance-aud_mw_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/AUD_MW_E.264
+fate-h264-conformance-ba1_ft_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/BA1_FT_C.264
+fate-h264-conformance-ba1_sony_d: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/BA1_Sony_D.jsv
+fate-h264-conformance-ba2_sony_f: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/BA2_Sony_F.jsv
+fate-h264-conformance-ba3_sva_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/BA3_SVA_C.264
+fate-h264-conformance-ba_mw_d: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/BA_MW_D.264
+fate-h264-conformance-bamq1_jvc_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/BAMQ1_JVC_C.264
+fate-h264-conformance-bamq2_jvc_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/BAMQ2_JVC_C.264
+fate-h264-conformance-banm_mw_d: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/BANM_MW_D.264
+fate-h264-conformance-basqp1_sony_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/BASQP1_Sony_C.jsv
+fate-h264-conformance-caba1_sony_d: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CABA1_Sony_D.jsv
+fate-h264-conformance-caba1_sva_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CABA1_SVA_B.264
+fate-h264-conformance-caba2_sony_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CABA2_Sony_E.jsv
+fate-h264-conformance-caba2_sva_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CABA2_SVA_B.264
+fate-h264-conformance-caba3_sony_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CABA3_Sony_C.jsv
+fate-h264-conformance-caba3_sva_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CABA3_SVA_B.264
+fate-h264-conformance-caba3_toshiba_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CABA3_TOSHIBA_E.264
+fate-h264-conformance-cabac_mot_fld0_full: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/camp_mot_fld0_full.26l
+fate-h264-conformance-cabac_mot_frm0_full: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/camp_mot_frm0_full.26l
+fate-h264-conformance-cabac_mot_mbaff0_full: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/camp_mot_mbaff0_full.26l
+fate-h264-conformance-cabac_mot_picaff0_full: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/camp_mot_picaff0_full.26l
+fate-h264-conformance-cabaci3_sony_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CABACI3_Sony_B.jsv
+fate-h264-conformance-cabast3_sony_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CABAST3_Sony_E.jsv
+fate-h264-conformance-cabastbr3_sony_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CABASTBR3_Sony_B.jsv
+fate-h264-conformance-cabref3_sand_d: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CABREF3_Sand_D.264
+fate-h264-conformance-cacqp3_sony_d: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CACQP3_Sony_D.jsv
+fate-h264-conformance-cafi1_sva_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CAFI1_SVA_C.264
+fate-h264-conformance-cama1_sony_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CAMA1_Sony_C.jsv
+fate-h264-conformance-cama1_toshiba_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CAMA1_TOSHIBA_B.264
+fate-h264-conformance-cama1_vtc_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/cama1_vtc_c.avc
+fate-h264-conformance-cama2_vtc_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/cama2_vtc_b.avc
+fate-h264-conformance-cama3_sand_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CAMA3_Sand_E.264
+fate-h264-conformance-cama3_vtc_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/cama3_vtc_b.avc
+fate-h264-conformance-camaci3_sony_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CAMACI3_Sony_C.jsv
+fate-h264-conformance-camanl1_toshiba_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CAMANL1_TOSHIBA_B.264
+fate-h264-conformance-camanl2_toshiba_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CAMANL2_TOSHIBA_B.264
+fate-h264-conformance-camanl3_sand_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CAMANL3_Sand_E.264
+fate-h264-conformance-camasl3_sony_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CAMASL3_Sony_B.jsv
+fate-h264-conformance-camp_mot_mbaff_l30: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CAMP_MOT_MBAFF_L30.26l
+fate-h264-conformance-camp_mot_mbaff_l31: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CAMP_MOT_MBAFF_L31.26l
+fate-h264-conformance-canl1_sony_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CANL1_Sony_E.jsv
+fate-h264-conformance-canl1_sva_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CANL1_SVA_B.264
+fate-h264-conformance-canl1_toshiba_g: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CANL1_TOSHIBA_G.264
+fate-h264-conformance-canl2_sony_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CANL2_Sony_E.jsv
+fate-h264-conformance-canl2_sva_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CANL2_SVA_B.264
+fate-h264-conformance-canl3_sony_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CANL3_Sony_C.jsv
+fate-h264-conformance-canl3_sva_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CANL3_SVA_B.264
+fate-h264-conformance-canl4_sva_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CANL4_SVA_B.264
+fate-h264-conformance-canlma2_sony_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CANLMA2_Sony_C.jsv
+fate-h264-conformance-canlma3_sony_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CANLMA3_Sony_C.jsv
+fate-h264-conformance-capa1_toshiba_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CAPA1_TOSHIBA_B.264
+fate-h264-conformance-capama3_sand_f: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CAPAMA3_Sand_F.264
+fate-h264-conformance-capcm1_sand_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CAPCM1_Sand_E.264
+fate-h264-conformance-capcmnl1_sand_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CAPCMNL1_Sand_E.264
+fate-h264-conformance-capm3_sony_d: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CAPM3_Sony_D.jsv
+fate-h264-conformance-caqp1_sony_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CAQP1_Sony_B.jsv
+fate-h264-conformance-cavlc_mot_fld0_full_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/cvmp_mot_fld0_full_B.26l
+fate-h264-conformance-cavlc_mot_frm0_full_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/cvmp_mot_frm0_full_B.26l
+fate-h264-conformance-cavlc_mot_mbaff0_full_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/cvmp_mot_mbaff0_full_B.26l
+fate-h264-conformance-cavlc_mot_picaff0_full_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/cvmp_mot_picaff0_full_B.26l
+fate-h264-conformance-cawp1_toshiba_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CAWP1_TOSHIBA_E.264
+fate-h264-conformance-cawp5_toshiba_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CAWP5_TOSHIBA_E.264
+fate-h264-conformance-ci1_ft_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CI1_FT_B.264
+fate-h264-conformance-ci_mw_d: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CI_MW_D.264
+fate-h264-conformance-cvbs3_sony_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVBS3_Sony_C.jsv
+fate-h264-conformance-cvcanlma2_sony_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVCANLMA2_Sony_C.jsv
+fate-h264-conformance-cvfi1_sony_d: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVFI1_Sony_D.jsv
+fate-h264-conformance-cvfi1_sva_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVFI1_SVA_C.264
+fate-h264-conformance-cvfi2_sony_h: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVFI2_Sony_H.jsv
+fate-h264-conformance-cvfi2_sva_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVFI2_SVA_C.264
+fate-h264-conformance-cvma1_sony_d: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVMA1_Sony_D.jsv
+fate-h264-conformance-cvma1_toshiba_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVMA1_TOSHIBA_B.264
+fate-h264-conformance-cvmanl1_toshiba_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVMANL1_TOSHIBA_B.264
+fate-h264-conformance-cvmanl2_toshiba_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVMANL2_TOSHIBA_B.264
+fate-h264-conformance-cvmapaqp3_sony_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVMAPAQP3_Sony_E.jsv
+fate-h264-conformance-cvmaqp2_sony_g: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVMAQP2_Sony_G.jsv
+fate-h264-conformance-cvmaqp3_sony_d: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVMAQP3_Sony_D.jsv
+fate-h264-conformance-cvmp_mot_fld_l30_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVMP_MOT_FLD_L30_B.26l
+fate-h264-conformance-cvmp_mot_frm_l31_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVMP_MOT_FRM_L31_B.26l
+fate-h264-conformance-cvnlfi1_sony_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVNLFI1_Sony_C.jsv
+fate-h264-conformance-cvnlfi2_sony_h: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVNLFI2_Sony_H.jsv
+fate-h264-conformance-cvpa1_toshiba_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVPA1_TOSHIBA_B.264
+fate-h264-conformance-cvpcmnl1_sva_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVPCMNL1_SVA_C.264
+fate-h264-conformance-cvpcmnl2_sva_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVPCMNL2_SVA_C.264
+fate-h264-conformance-cvwp1_toshiba_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVWP1_TOSHIBA_E.264
+fate-h264-conformance-cvwp2_toshiba_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVWP2_TOSHIBA_E.264
+fate-h264-conformance-cvwp3_toshiba_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVWP3_TOSHIBA_E.264
+fate-h264-conformance-cvwp5_toshiba_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/CVWP5_TOSHIBA_E.264
+fate-h264-conformance-fi1_sony_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FI1_Sony_E.jsv
+fate-h264-conformance-frext-alphaconformanceg: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/test8b43.264
+fate-h264-conformance-frext-bcrm_freh10: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/freh10.264 -vsync drop
+fate-h264-conformance-frext-brcm_freh11: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/freh11.264 -vsync drop
+fate-h264-conformance-frext-brcm_freh3: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/freh3.264
+fate-h264-conformance-frext-brcm_freh4: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/freh4.264 -vsync drop
+fate-h264-conformance-frext-brcm_freh5: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/freh5.264
+fate-h264-conformance-frext-brcm_freh8: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/freh8.264
+fate-h264-conformance-frext-brcm_freh9: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/freh9.264
+fate-h264-conformance-frext-freh12_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/Freh12_B.264
+fate-h264-conformance-frext-freh1_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/Freh1_B.264
+fate-h264-conformance-frext-freh2_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/Freh2_B.264
+fate-h264-conformance-frext-freh6: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/freh6.264 -vsync drop
+fate-h264-conformance-frext-freh7_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/Freh7_B.264 -vsync drop
+fate-h264-conformance-frext-frext01_jvc_d: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/FREXT01_JVC_D.264
+fate-h264-conformance-frext-frext02_jvc_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/FREXT02_JVC_C.264
+fate-h264-conformance-frext-frext1_panasonic_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/FRExt1_Panasonic.avc
+fate-h264-conformance-frext-frext2_panasonic_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/FRExt2_Panasonic.avc -vsync 0
+fate-h264-conformance-frext-frext3_panasonic_d: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/FRExt3_Panasonic.avc
+fate-h264-conformance-frext-frext4_panasonic_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/FRExt4_Panasonic.avc
+fate-h264-conformance-frext-frext_mmco4_sony_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/FRExt_MMCO4_Sony_B.264
+fate-h264-conformance-frext-hcaff1_hhi_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/HCAFF1_HHI.264
+fate-h264-conformance-frext-hcafr1_hhi_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/HCAFR1_HHI.264
+fate-h264-conformance-frext-hcafr2_hhi_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/HCAFR2_HHI.264
+fate-h264-conformance-frext-hcafr3_hhi_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/HCAFR3_HHI.264
+fate-h264-conformance-frext-hcafr4_hhi_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/HCAFR4_HHI.264
+fate-h264-conformance-frext-hcamff1_hhi_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/HCAMFF1_HHI.264
+fate-h264-conformance-frext-hi422fr10_sony_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/Hi422FR10_SONY_B.264
+fate-h264-conformance-frext-hi422fr13_sony_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/Hi422FR13_SONY_B.264 -pix_fmt yuv422p10le
+fate-h264-conformance-frext-hi422fr1_sony_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/Hi422FR1_SONY_A.jsv
+fate-h264-conformance-frext-hi422fr6_sony_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/Hi422FR6_SONY_A.jsv -pix_fmt yuv422p10le
+fate-h264-conformance-frext-hpca_brcm_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/HPCA_BRCM_C.264
+fate-h264-conformance-frext-hpcadq_brcm_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/HPCADQ_BRCM_B.264
+fate-h264-conformance-frext-hpcafl_bcrm_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/HPCAFL_BRCM_C.264 -vsync drop
+fate-h264-conformance-frext-hpcaflnl_bcrm_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/HPCAFLNL_BRCM_C.264 -vsync drop
+fate-h264-conformance-frext-hpcalq_brcm_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/HPCALQ_BRCM_B.264
+fate-h264-conformance-frext-hpcamapalq_bcrm_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/HPCAMAPALQ_BRCM_B.264 -vsync 0
+fate-h264-conformance-frext-hpcamolq_brcm_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/HPCAMOLQ_BRCM_B.264
+fate-h264-conformance-frext-hpcanl_brcm_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/HPCANL_BRCM_C.264
+fate-h264-conformance-frext-hpcaq2lq_brcm_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/HPCAQ2LQ_BRCM_B.264
+fate-h264-conformance-frext-hpcv_brcm_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/HPCV_BRCM_A.264
+fate-h264-conformance-frext-hpcvfl_bcrm_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/HPCVFL_BRCM_A.264 -vsync drop
+fate-h264-conformance-frext-hpcvflnl_bcrm_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/HPCVFLNL_BRCM_A.264 -vsync drop
+fate-h264-conformance-frext-hpcvmolq_brcm_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/HPCVMOLQ_BRCM_B.264
+fate-h264-conformance-frext-hpcvnl_brcm_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/HPCVNL_BRCM_A.264
+fate-h264-conformance-frext-pph10i1_panasonic_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/PPH10I1_Panasonic_A.264 -pix_fmt yuv420p10le
+fate-h264-conformance-frext-pph10i2_panasonic_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/PPH10I2_Panasonic_A.264 -pix_fmt yuv420p10le
+fate-h264-conformance-frext-pph10i3_panasonic_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/PPH10I3_Panasonic_A.264 -pix_fmt yuv420p10le
+fate-h264-conformance-frext-pph10i4_panasonic_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/PPH10I4_Panasonic_A.264 -pix_fmt yuv420p10le
+fate-h264-conformance-frext-pph10i5_panasonic_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/PPH10I5_Panasonic_A.264 -pix_fmt yuv420p10le
+fate-h264-conformance-frext-pph10i6_panasonic_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/PPH10I6_Panasonic_A.264 -pix_fmt yuv420p10le
+fate-h264-conformance-frext-pph10i7_panasonic_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/PPH10I7_Panasonic_A.264 -pix_fmt yuv420p10le
+fate-h264-conformance-frext-pph422i1_panasonic_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/PPH422I1_Panasonic_A.264 -pix_fmt yuv422p10le
+fate-h264-conformance-frext-pph422i2_panasonic_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/PPH422I2_Panasonic_A.264 -pix_fmt yuv422p10le
+fate-h264-conformance-frext-pph422i3_panasonic_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/PPH422I3_Panasonic_A.264 -pix_fmt yuv422p10le
+fate-h264-conformance-frext-pph422i4_panasonic_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/PPH422I4_Panasonic_A.264 -pix_fmt yuv422p10le
+fate-h264-conformance-frext-pph422i5_panasonic_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/PPH422I5_Panasonic_A.264 -pix_fmt yuv422p10le
+fate-h264-conformance-frext-pph422i6_panasonic_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/PPH422I6_Panasonic_A.264 -pix_fmt yuv422p10le
+fate-h264-conformance-frext-pph422i7_panasonic_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/FRext/PPH422I7_Panasonic_A.264 -pix_fmt yuv422p10le
+fate-h264-conformance-hcbp2_hhi_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/HCBP2_HHI_A.264
+fate-h264-conformance-hcmp1_hhi_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/HCMP1_HHI_A.264
+fate-h264-conformance-ls_sva_d: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/LS_SVA_D.264
+fate-h264-conformance-midr_mw_d: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/MIDR_MW_D.264
+fate-h264-conformance-mps_mw_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/MPS_MW_A.264
+fate-h264-conformance-mr1_bt_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/MR1_BT_A.h264
+fate-h264-conformance-mr1_mw_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/MR1_MW_A.264
+fate-h264-conformance-mr2_mw_a: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/MR2_MW_A.264
+fate-h264-conformance-mr2_tandberg_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/MR2_TANDBERG_E.264
+fate-h264-conformance-mr3_tandberg_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/MR3_TANDBERG_B.264
+fate-h264-conformance-mr4_tandberg_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/MR4_TANDBERG_C.264
+fate-h264-conformance-mr5_tandberg_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/MR5_TANDBERG_C.264
+fate-h264-conformance-mr6_bt_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/MR6_BT_B.h264
+fate-h264-conformance-mr7_bt_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/MR7_BT_B.h264
+fate-h264-conformance-mr8_bt_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/MR8_BT_B.h264
+fate-h264-conformance-mr9_bt_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/MR9_BT_B.h264
+fate-h264-conformance-mv1_brcm_d: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/src19td.IBP.264
+fate-h264-conformance-nl1_sony_d: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/NL1_Sony_D.jsv
+fate-h264-conformance-nl2_sony_h: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/NL2_Sony_H.jsv
+fate-h264-conformance-nl3_sva_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/NL3_SVA_E.264
+fate-h264-conformance-nlmq1_jvc_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/NLMQ1_JVC_C.264
+fate-h264-conformance-nlmq2_jvc_c: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/NLMQ2_JVC_C.264
+fate-h264-conformance-nrf_mw_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/NRF_MW_E.264
+fate-h264-conformance-sharp_mp_field_1_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/Sharp_MP_Field_1_B.jvt
+fate-h264-conformance-sharp_mp_field_2_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/Sharp_MP_Field_2_B.jvt
+fate-h264-conformance-sharp_mp_field_3_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/Sharp_MP_Field_3_B.jvt
+fate-h264-conformance-sharp_mp_paff_1r2: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/Sharp_MP_PAFF_1r2.jvt
+fate-h264-conformance-sharp_mp_paff_2r: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/Sharp_MP_PAFF_2.jvt
+fate-h264-conformance-sl1_sva_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/SL1_SVA_B.264
+fate-h264-conformance-sva_ba1_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/SVA_BA1_B.264
+fate-h264-conformance-sva_ba2_d: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/SVA_BA2_D.264
+fate-h264-conformance-sva_base_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/SVA_Base_B.264
+fate-h264-conformance-sva_cl1_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/SVA_CL1_E.264
+fate-h264-conformance-sva_fm1_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/SVA_FM1_E.264
+fate-h264-conformance-sva_nl1_b: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/SVA_NL1_B.264
+fate-h264-conformance-sva_nl2_e: CMD = framecrc -vsync drop -i $(SAMPLES)/h264-conformance/SVA_NL2_E.264
+
+fate-h264-bsf-mp4toannexb: CMD = md5 -i $(SAMPLES)/h264/interlaced_crop.mp4 -vcodec copy -bsf h264_mp4toannexb -f h264
+fate-h264-extreme-plane-pred: CMD = framemd5 -i $(SAMPLES)/h264/extreme-plane-pred.h264
+fate-h264-interlace-crop: CMD = framecrc -i $(SAMPLES)/h264/interlaced_crop.mp4 -vframes 3
+fate-h264-lossless: CMD = framecrc -i $(SAMPLES)/h264/lossless.h264
+
+fate-h264-reinit-%: CMD = framecrc -i $(SAMPLES)/h264/$(@:fate-h264-%=%).h264 -vf format=yuv444p10,scale=352:288
diff --git a/ffmpeg/tests/fate/image.mak b/ffmpeg/tests/fate/image.mak
new file mode 100644
index 0000000..2a6a4b2
--- /dev/null
+++ b/ffmpeg/tests/fate/image.mak
@@ -0,0 +1,85 @@
+FATE_IMAGE-$(call DEMDEC, IMAGE2, DPX) += fate-dpx
+fate-dpx: CMD = framecrc -i $(SAMPLES)/dpx/lighthouse_rgb48.dpx
+
+FATE_IMAGE-$(call DEMDEC, IMAGE2, PICTOR) += fate-pictor
+fate-pictor: CMD = framecrc -i $(SAMPLES)/pictor/MFISH.PIC -pix_fmt rgb24
+
+FATE_IMAGE-$(call DEMDEC, IMAGE2, PTX) += fate-ptx
+fate-ptx: CMD = framecrc -i $(SAMPLES)/ptx/_113kw_pic.ptx -pix_fmt rgb24
+
+FATE_SUNRASTER += fate-sunraster-1bit-raw
+fate-sunraster-1bit-raw: CMD = framecrc -i $(SAMPLES)/sunraster/lena-1bit-raw.sun
+
+FATE_SUNRASTER += fate-sunraster-1bit-rle
+fate-sunraster-1bit-rle: CMD = framecrc -i $(SAMPLES)/sunraster/lena-1bit-rle.sun
+
+FATE_SUNRASTER += fate-sunraster-8bit-raw
+fate-sunraster-8bit-raw: CMD = framecrc -i $(SAMPLES)/sunraster/lena-8bit-raw.sun -pix_fmt rgb24
+
+FATE_SUNRASTER += fate-sunraster-8bit_gray-raw
+fate-sunraster-8bit_gray-raw: CMD = framecrc -i $(SAMPLES)/sunraster/gray.ras
+
+FATE_SUNRASTER += fate-sunraster-8bit-rle
+fate-sunraster-8bit-rle: CMD = framecrc -i $(SAMPLES)/sunraster/lena-8bit-rle.sun -pix_fmt rgb24
+
+FATE_SUNRASTER += fate-sunraster-24bit-raw
+fate-sunraster-24bit-raw: CMD = framecrc -i $(SAMPLES)/sunraster/lena-24bit-raw.sun
+
+FATE_SUNRASTER += fate-sunraster-24bit-rle
+fate-sunraster-24bit-rle: CMD = framecrc -i $(SAMPLES)/sunraster/lena-24bit-rle.sun
+
+FATE_SUNRASTER-$(call DEMDEC, IMAGE2, SUNRAST) += $(FATE_SUNRASTER)
+
+FATE_IMAGE += $(FATE_SUNRASTER-yes)
+fate-sunraster: $(FATE_SUNRASTER-yes)
+
+FATE_TARGA = CBW8 \
+ CCM8 \
+ CTC16 \
+ CTC24 \
+ CTC32 \
+ UBW8 \
+ UCM8 \
+ UTC16 \
+ UTC24 \
+ UTC32
+
+FATE_TARGA := $(FATE_TARGA:%=fate-targa-conformance-%) \
+ fate-targa-top-to-bottom
+
+FATE_TARGA-$(call DEMDEC, IMAGE2, TARGA) += $(FATE_TARGA)
+
+FATE_IMAGE += $(FATE_TARGA-yes)
+fate-targa: $(FATE_TARGA-yes)
+
+fate-targa-conformance-CBW8: CMD = framecrc -i $(SAMPLES)/targa-conformance/CBW8.TGA
+fate-targa-conformance-CCM8: CMD = framecrc -i $(SAMPLES)/targa-conformance/CCM8.TGA -pix_fmt rgba
+fate-targa-conformance-CTC16: CMD = framecrc -i $(SAMPLES)/targa-conformance/CTC16.TGA -pix_fmt rgb555le
+fate-targa-conformance-CTC24: CMD = framecrc -i $(SAMPLES)/targa-conformance/CTC24.TGA
+fate-targa-conformance-CTC32: CMD = framecrc -i $(SAMPLES)/targa-conformance/CTC32.TGA -pix_fmt bgra
+fate-targa-conformance-UBW8: CMD = framecrc -i $(SAMPLES)/targa-conformance/UBW8.TGA
+fate-targa-conformance-UCM8: CMD = framecrc -i $(SAMPLES)/targa-conformance/UCM8.TGA -pix_fmt rgba
+fate-targa-conformance-UTC16: CMD = framecrc -i $(SAMPLES)/targa-conformance/UTC16.TGA -pix_fmt rgb555le
+fate-targa-conformance-UTC24: CMD = framecrc -i $(SAMPLES)/targa-conformance/UTC24.TGA
+fate-targa-conformance-UTC32: CMD = framecrc -i $(SAMPLES)/targa-conformance/UTC32.TGA -pix_fmt bgra
+
+fate-targa-top-to-bottom: CMD = framecrc -i $(SAMPLES)/targa/lena-top-to-bottom.tga
+
+FATE_TIFF += fate-tiff-fax-g3
+fate-tiff-fax-g3: CMD = framecrc -i $(SAMPLES)/CCITT_fax/G31D.TIF
+
+FATE_TIFF += fate-tiff-fax-g3s
+fate-tiff-fax-g3s: CMD = framecrc -i $(SAMPLES)/CCITT_fax/G31DS.TIF
+
+FATE_TIFF-$(call DEMDEC, IMAGE2, TIFF) += $(FATE_TIFF)
+
+FATE_IMAGE += $(FATE_TIFF-yes)
+fate-tiff: $(FATE_TIFF-yes)
+
+FATE_IMAGE-$(call DEMDEC, IMAGE2, XFACE) += fate-xface
+fate-xface: CMD = framecrc -i $(SAMPLES)/xface/lena.xface
+
+FATE_IMAGE += $(FATE_IMAGE-yes)
+
+FATE_SAMPLES_FFMPEG += $(FATE_IMAGE)
+fate-image: $(FATE_IMAGE)
diff --git a/ffmpeg/tests/fate/indeo.mak b/ffmpeg/tests/fate/indeo.mak
new file mode 100644
index 0000000..5a99b46
--- /dev/null
+++ b/ffmpeg/tests/fate/indeo.mak
@@ -0,0 +1,14 @@
+FATE_INDEO-$(call DEMDEC, AVI, INDEO2) += fate-indeo2
+fate-indeo2: CMD = framecrc -i $(SAMPLES)/rt21/VPAR0026.AVI
+
+FATE_INDEO-$(call DEMDEC, MOV, INDEO3) += fate-indeo3
+fate-indeo3: CMD = framecrc -i $(SAMPLES)/iv32/cubes.mov
+
+FATE_INDEO-$(call DEMDEC, AVI, INDEO4) += fate-indeo4
+fate-indeo4: CMD = framecrc -i $(SAMPLES)/iv41/indeo41-partial.avi -an
+
+FATE_INDEO-$(call DEMDEC, AVI, INDEO5) += fate-indeo5
+fate-indeo5: CMD = framecrc -i $(SAMPLES)/iv50/Educ_Movie_DeadlyForce.avi -an
+
+FATE_SAMPLES_AVCONV += $(FATE_INDEO-yes)
+fate-indeo: $(FATE_INDEO-yes)
diff --git a/ffmpeg/tests/fate/libavcodec.mak b/ffmpeg/tests/fate/libavcodec.mak
new file mode 100644
index 0000000..6e81f57
--- /dev/null
+++ b/ffmpeg/tests/fate/libavcodec.mak
@@ -0,0 +1,23 @@
+FATE_LIBAVCODEC-$(CONFIG_GOLOMB) += fate-golomb
+fate-golomb: libavcodec/golomb-test$(EXESUF)
+fate-golomb: CMD = run libavcodec/golomb-test
+fate-golomb: REF = /dev/null
+
+FATE_LIBAVCODEC-yes += fate-idct8x8
+fate-idct8x8: libavcodec/dct-test$(EXESUF)
+fate-idct8x8: CMD = run libavcodec/dct-test -i
+fate-idct8x8: CMP = null
+fate-idct8x8: REF = /dev/null
+
+FATE_LIBAVCODEC-yes += fate-iirfilter
+fate-iirfilter: libavcodec/iirfilter-test$(EXESUF)
+fate-iirfilter: CMD = run libavcodec/iirfilter-test
+
+FATE_LIBAVCODEC-$(CONFIG_RANGECODER) += fate-rangecoder
+fate-rangecoder: libavcodec/rangecoder-test$(EXESUF)
+fate-rangecoder: CMD = run libavcodec/rangecoder-test
+fate-rangecoder: CMP = null
+fate-rangecoder: REF = /dev/null
+
+FATE-$(CONFIG_AVCODEC) += $(FATE_LIBAVCODEC-yes)
+fate-libavcodec: $(FATE_LIBAVCODEC-yes)
diff --git a/ffmpeg/tests/fate/libavformat.mak b/ffmpeg/tests/fate/libavformat.mak
new file mode 100644
index 0000000..8332246
--- /dev/null
+++ b/ffmpeg/tests/fate/libavformat.mak
@@ -0,0 +1,14 @@
+FATE_LIBAVFORMAT += fate-noproxy
+fate-noproxy: libavformat/noproxy-test$(EXESUF)
+fate-noproxy: CMD = run libavformat/noproxy-test
+
+FATE_LIBAVFORMAT += fate-srtp
+fate-srtp: libavformat/srtp-test$(EXESUF)
+fate-srtp: CMD = run libavformat/srtp-test
+
+FATE_LIBAVFORMAT += fate-url
+fate-url: libavformat/url-test$(EXESUF)
+fate-url: CMD = run libavformat/url-test
+
+FATE-$(CONFIG_AVFORMAT) += $(FATE_LIBAVFORMAT)
+fate-libavformat: $(FATE_LIBAVFORMAT)
diff --git a/ffmpeg/tests/fate/libavutil.mak b/ffmpeg/tests/fate/libavutil.mak
new file mode 100644
index 0000000..2508ba0
--- /dev/null
+++ b/ffmpeg/tests/fate/libavutil.mak
@@ -0,0 +1,74 @@
+FATE_LIBAVUTIL += fate-adler32
+fate-adler32: libavutil/adler32-test$(EXESUF)
+fate-adler32: CMD = run libavutil/adler32-test
+fate-adler32: REF = /dev/null
+
+FATE_LIBAVUTIL += fate-aes
+fate-aes: libavutil/aes-test$(EXESUF)
+fate-aes: CMD = run libavutil/aes-test
+fate-aes: REF = /dev/null
+
+FATE_LIBAVUTIL += fate-atomic
+fate-atomic: libavutil/atomic-test$(EXESUF)
+fate-atomic: CMD = run libavutil/atomic-test
+fate-atomic: REF = /dev/null
+
+FATE_LIBAVUTIL += fate-avstring
+fate-avstring: libavutil/avstring-test$(EXESUF)
+fate-avstring: CMD = run libavutil/avstring-test
+
+FATE_LIBAVUTIL += fate-base64
+fate-base64: libavutil/base64-test$(EXESUF)
+fate-base64: CMD = run libavutil/base64-test
+
+FATE_LIBAVUTIL += fate-blowfish
+fate-blowfish: libavutil/blowfish-test$(EXESUF)
+fate-blowfish: CMD = run libavutil/blowfish-test
+
+FATE_LIBAVUTIL += fate-bprint
+fate-bprint: libavutil/bprint-test$(EXESUF)
+fate-bprint: CMD = run libavutil/bprint-test
+
+FATE_LIBAVUTIL += fate-crc
+fate-crc: libavutil/crc-test$(EXESUF)
+fate-crc: CMD = run libavutil/crc-test
+
+FATE_LIBAVUTIL += fate-des
+fate-des: libavutil/des-test$(EXESUF)
+fate-des: CMD = run libavutil/des-test
+fate-des: REF = /dev/null
+
+FATE_LIBAVUTIL += fate-eval
+fate-eval: libavutil/eval-test$(EXESUF)
+fate-eval: CMD = run libavutil/eval-test
+
+FATE_LIBAVUTIL += fate-fifo
+fate-fifo: libavutil/fifo-test$(EXESUF)
+fate-fifo: CMD = run libavutil/fifo-test
+
+FATE_LIBAVUTIL += fate-hmac
+fate-hmac: libavutil/hmac-test$(EXESUF)
+fate-hmac: CMD = run libavutil/hmac-test
+
+FATE_LIBAVUTIL += fate-md5
+fate-md5: libavutil/md5-test$(EXESUF)
+fate-md5: CMD = run libavutil/md5-test
+
+FATE_LIBAVUTIL += fate-parseutils
+fate-parseutils: libavutil/parseutils-test$(EXESUF)
+fate-parseutils: CMD = run libavutil/parseutils-test
+
+FATE_LIBAVUTIL += fate-random_seed
+fate-random_seed: libavutil/random_seed-test$(EXESUF)
+fate-random_seed: CMD = run libavutil/random_seed-test
+
+FATE_LIBAVUTIL += fate-sha
+fate-sha: libavutil/sha-test$(EXESUF)
+fate-sha: CMD = run libavutil/sha-test
+
+FATE_LIBAVUTIL += fate-xtea
+fate-xtea: libavutil/xtea-test$(EXESUF)
+fate-xtea: CMD = run libavutil/xtea-test
+
+FATE-$(CONFIG_AVUTIL) += $(FATE_LIBAVUTIL)
+fate-libavutil: $(FATE_LIBAVUTIL)
diff --git a/ffmpeg/tests/fate/lossless-audio.mak b/ffmpeg/tests/fate/lossless-audio.mak
new file mode 100644
index 0000000..8dc0f06
--- /dev/null
+++ b/ffmpeg/tests/fate/lossless-audio.mak
@@ -0,0 +1,32 @@
+FATE_SAMPLES_LOSSLESS_AUDIO-$(call DEMDEC, MOV, ALAC) += fate-lossless-alac
+fate-lossless-alac: CMD = md5 -i $(SAMPLES)/lossless-audio/inside.m4a -f s16le
+
+FATE_SAMPLES_LOSSLESS_AUDIO-$(call DEMDEC, MLP, MLP) += fate-lossless-meridianaudio
+fate-lossless-meridianaudio: CMD = md5 -i $(SAMPLES)/lossless-audio/luckynight-partial.mlp -f s16le
+
+FATE_SAMPLES_LOSSLESS_AUDIO-$(call DEMDEC, APE, APE) += fate-lossless-monkeysaudio
+fate-lossless-monkeysaudio: CMD = md5 -i $(SAMPLES)/lossless-audio/luckynight-partial.ape -f s16le
+
+FATE_SAMPLES_LOSSLESS_AUDIO-$(call DEMDEC, RM, RALF) += fate-ralf
+fate-ralf: CMD = md5 -i $(SAMPLES)/lossless-audio/luckynight-partial.rmvb -vn -f s16le
+
+FATE_SAMPLES_LOSSLESS_AUDIO-$(call DEMDEC, SHORTEN, SHORTEN) += fate-lossless-shorten
+fate-lossless-shorten: CMD = md5 -i $(SAMPLES)/lossless-audio/luckynight-partial.shn -f s16le
+
+FATE_SAMPLES_LOSSLESS_AUDIO-$(call DEMDEC, TAK, TAK) += fate-lossless-tak
+fate-lossless-tak: CMD = crc -i $(SAMPLES)/lossless-audio/luckynight-partial.tak
+
+FATE_SAMPLES_LOSSLESS_AUDIO-$(call DEMDEC, TTA, TTA) += fate-lossless-tta
+fate-lossless-tta: CMD = crc -i $(SAMPLES)/lossless-audio/inside.tta
+
+FATE_SAMPLES_LOSSLESS_AUDIO-$(call DEMDEC, TTA, TTA) += fate-lossless-tta-encrypted
+fate-lossless-tta-encrypted: CMD = crc -password ffmpeg -i $(SAMPLES)/lossless-audio/encrypted.tta
+
+FATE_SAMPLES_LOSSLESS_AUDIO-$(call DEMDEC, ASF, WMALOSSLESS) += fate-lossless-wma
+fate-lossless-wma: CMD = md5 -i $(SAMPLES)/lossless-audio/luckynight-partial.wma -f s16le
+
+FATE_SAMPLES_LOSSLESS_AUDIO += $(FATE_SAMPLES_LOSSLESS_AUDIO-yes)
+
+FATE_SAMPLES_FFMPEG += $(FATE_SAMPLES_LOSSLESS_AUDIO)
+fate-lossless-audio: $(FATE_SAMPLES_LOSSLESS_AUDIO)
+
diff --git a/ffmpeg/tests/fate/lossless-video.mak b/ffmpeg/tests/fate/lossless-video.mak
new file mode 100644
index 0000000..f918ac4
--- /dev/null
+++ b/ffmpeg/tests/fate/lossless-video.mak
@@ -0,0 +1,52 @@
+FATE_CLLC += fate-cllc-argb
+fate-cllc-argb: CMD = framecrc -i $(SAMPLES)/cllc/sample-cllc-argb.avi
+
+FATE_CLLC += fate-cllc-rgb
+fate-cllc-rgb: CMD = framecrc -i $(SAMPLES)/cllc/sample-cllc-rgb.avi
+
+FATE_LOSSLESS_VIDEO-$(call DEMDEC, AVI, CLLC) += $(FATE_CLLC)
+fate-cllc: $(FATE_CLLC)
+
+FATE_LAGARITH += fate-lagarith-rgb24
+fate-lagarith-rgb24: CMD = framecrc -i $(SAMPLES)/lagarith/lag-rgb24.avi
+
+FATE_LAGARITH += fate-lagarith-rgb32
+fate-lagarith-rgb32: CMD = framecrc -i $(SAMPLES)/lagarith/lag-rgb32.avi -pix_fmt bgra
+
+FATE_LAGARITH += fate-lagarith-yuy2
+fate-lagarith-yuy2: CMD = framecrc -i $(SAMPLES)/lagarith/lag-yuy2.avi
+
+FATE_LAGARITH += fate-lagarith-yv12
+fate-lagarith-yv12: CMD = framecrc -i $(SAMPLES)/lagarith/lag-yv12.avi
+
+FATE_LOSSLESS_VIDEO-$(call DEMDEC, AVI, LAGARITH) += $(FATE_LAGARITH)
+fate-lagarith: $(FATE_LAGARITH)
+
+FATE_LOCO += fate-loco-rgb
+fate-loco-rgb: CMD = framecrc -i $(SAMPLES)/loco/pig-loco-rgb.avi
+
+FATE_LOCO += fate-loco-yuy2
+fate-loco-yuy2: CMD = framecrc -i $(SAMPLES)/loco/pig-loco-0.avi
+
+FATE_LOSSLESS_VIDEO-$(call DEMDEC, AVI, LOCO) += $(FATE_LOCO)
+fate-loco: $(FATE_LOCO)
+
+FATE_LOSSLESS_VIDEO-$(call DEMDEC, AVI, MSRLE) += fate-msrle-8bit
+fate-msrle-8bit: CMD = framecrc -i $(SAMPLES)/msrle/Search-RLE.avi -pix_fmt rgb24
+
+FATE_LOSSLESS_VIDEO-$(call DEMDEC, AVI, MSZH) += fate-mszh
+fate-mszh: CMD = framecrc -i $(SAMPLES)/lcl/mszh-1frame.avi
+
+FATE_LOSSLESS_VIDEO-$(call DEMDEC, AVI, VBLE) += fate-vble
+fate-vble: CMD = framecrc -i $(SAMPLES)/vble/flowers-partial-2MB.avi
+
+FATE_LOSSLESS_VIDEO-$(call DEMDEC, AVI, ZEROCODEC) += fate-zerocodec
+fate-zerocodec: CMD = framecrc -i $(SAMPLES)/zerocodec/sample-zeco.avi
+
+FATE_LOSSLESS_VIDEO-$(call DEMDEC, AVI, ZLIB) += fate-zlib
+fate-zlib: CMD = framecrc -i $(SAMPLES)/lcl/zlib-1frame.avi
+
+FATE_LOSSLESS_VIDEO += $(FATE_LOSSLESS_VIDEO-yes)
+
+FATE_SAMPLES_FFMPEG += $(FATE_LOSSLESS_VIDEO)
+fate-lossless-video: $(FATE_LOSSLESS_VIDEO)
diff --git a/ffmpeg/tests/fate/microsoft.mak b/ffmpeg/tests/fate/microsoft.mak
new file mode 100644
index 0000000..6347f20
--- /dev/null
+++ b/ffmpeg/tests/fate/microsoft.mak
@@ -0,0 +1,51 @@
+FATE_MICROSOFT-$(call DEMDEC, AVI, MSMPEG4V1) += fate-msmpeg4v1
+fate-msmpeg4v1: CMD = framecrc -flags +bitexact -idct simple -i $(SAMPLES)/msmpeg4v1/mpg4.avi -an
+
+FATE_MSVIDEO1 += fate-msvideo1-8bit
+fate-msvideo1-8bit: CMD = framecrc -i $(SAMPLES)/cram/skating.avi -t 1 -pix_fmt rgb24
+
+FATE_MSVIDEO1 += fate-msvideo1-16bit
+fate-msvideo1-16bit: CMD = framecrc -i $(SAMPLES)/cram/clock-cram16.avi -pix_fmt rgb24
+
+FATE_MICROSOFT-$(call DEMDEC, AVI, MSVIDEO1) += $(FATE_MSVIDEO1)
+fate-msvideo1: $(FATE_MSVIDEO1)
+
+FATE_WMV8_DRM += fate-wmv8-drm
+# discard last packet to avoid fails due to overread of VC-1 decoder
+fate-wmv8-drm: CMD = framecrc -cryptokey 137381538c84c068111902a59c5cf6c340247c39 -i $(SAMPLES)/wmv8/wmv_drm.wmv -an -vframes 162
+
+FATE_WMV8_DRM += fate-wmv8-drm-nodec
+fate-wmv8-drm-nodec: CMD = framecrc -cryptokey 137381538c84c068111902a59c5cf6c340247c39 -i $(SAMPLES)/wmv8/wmv_drm.wmv -acodec copy -vcodec copy
+
+#FATE_MICROSOFT += fate-wmv8-x8intra
+FATE_TESTS-no += fate-wmv8-x8intra
+fate-wmv8-x8intra: CMD = framecrc -flags +bitexact -idct 19 -i $(SAMPLES)/wmv8/wmv8_x8intra.wmv -an
+
+FATE_MICROSOFT-$(call DEMDEC, ASF, WMV3) += $(FATE_WMV8_DRM)
+fate-wmv8_drm: $(FATE_WMV8_DRM)
+
+FATE_VC1-$(CONFIG_VC1_DEMUXER) += fate-vc1_sa00040
+fate-vc1_sa00040: CMD = framecrc -i $(SAMPLES)/vc1/SA00040.vc1
+
+FATE_VC1-$(CONFIG_VC1_DEMUXER) += fate-vc1_sa00050
+fate-vc1_sa00050: CMD = framecrc -i $(SAMPLES)/vc1/SA00050.vc1
+
+FATE_VC1-$(CONFIG_VC1_DEMUXER) += fate-vc1_sa10091
+fate-vc1_sa10091: CMD = framecrc -i $(SAMPLES)/vc1/SA10091.vc1
+
+FATE_VC1-$(CONFIG_VC1_DEMUXER) += fate-vc1_sa10143
+fate-vc1_sa10143: CMD = framecrc -i $(SAMPLES)/vc1/SA10143.vc1
+
+FATE_VC1-$(CONFIG_VC1_DEMUXER) += fate-vc1_sa20021
+fate-vc1_sa20021: CMD = framecrc -i $(SAMPLES)/vc1/SA20021.vc1
+
+FATE_VC1-$(CONFIG_MOV_DEMUXER) += fate-vc1-ism
+fate-vc1-ism: CMD = framecrc -i $(SAMPLES)/isom/vc1-wmapro.ism -an
+
+FATE_MICROSOFT-$(CONFIG_VC1_DECODER) += $(FATE_VC1-yes)
+fate-vc1: $(FATE_VC1-yes)
+
+FATE_MICROSOFT += $(FATE_MICROSOFT-yes)
+
+FATE_SAMPLES_FFMPEG += $(FATE_MICROSOFT)
+fate-microsoft: $(FATE_MICROSOFT)
diff --git a/ffmpeg/tests/fate/mp3.mak b/ffmpeg/tests/fate/mp3.mak
new file mode 100644
index 0000000..1986061
--- /dev/null
+++ b/ffmpeg/tests/fate/mp3.mak
@@ -0,0 +1,43 @@
+FATE_MP3 += fate-mp3-float-conf-compl
+fate-mp3-float-conf-compl: CMD = pcm -acodec mp3float -i $(SAMPLES)/mp3-conformance/compl.bit
+fate-mp3-float-conf-compl: REF = $(SAMPLES)/mp3-conformance/compl.pcm
+
+FATE_MP3 += fate-mp3-float-conf-he_32khz
+fate-mp3-float-conf-he_32khz: CMD = pcm -acodec mp3float -i $(SAMPLES)/mp3-conformance/he_32khz.bit -fs 343296
+fate-mp3-float-conf-he_32khz: REF = $(SAMPLES)/mp3-conformance/he_32khz.pcm
+
+FATE_MP3 += fate-mp3-float-conf-he_44khz
+fate-mp3-float-conf-he_44khz: CMD = pcm -acodec mp3float -i $(SAMPLES)/mp3-conformance/he_44khz.bit -fs 942336
+fate-mp3-float-conf-he_44khz: REF = $(SAMPLES)/mp3-conformance/he_44khz.pcm
+
+FATE_MP3 += fate-mp3-float-conf-he_48khz
+fate-mp3-float-conf-he_48khz: CMD = pcm -acodec mp3float -i $(SAMPLES)/mp3-conformance/he_48khz.bit -fs 343296
+fate-mp3-float-conf-he_48khz: REF = $(SAMPLES)/mp3-conformance/he_48khz.pcm
+
+FATE_MP3 += fate-mp3-float-conf-hecommon
+fate-mp3-float-conf-hecommon: CMD = pcm -acodec mp3float -i $(SAMPLES)/mp3-conformance/hecommon.bit -fs 133632
+fate-mp3-float-conf-hecommon: REF = $(SAMPLES)/mp3-conformance/hecommon.pcm
+
+FATE_MP3 += fate-mp3-float-conf-si
+fate-mp3-float-conf-si: CMD = pcm -acodec mp3float -i $(SAMPLES)/mp3-conformance/si.bit -fs 269568
+fate-mp3-float-conf-si: REF = $(SAMPLES)/mp3-conformance/si.pcm
+
+FATE_MP3 += fate-mp3-float-conf-si_block
+fate-mp3-float-conf-si_block: CMD = pcm -acodec mp3float -i $(SAMPLES)/mp3-conformance/si_block.bit -fs 145152
+fate-mp3-float-conf-si_block: REF = $(SAMPLES)/mp3-conformance/si_block.pcm
+
+FATE_MP3 += fate-mp3-float-extra_overread
+fate-mp3-float-extra_overread: CMD = pcm -c:a mp3float -i $(SAMPLES)/mpegaudio/extra_overread.mp3
+fate-mp3-float-extra_overread: REF = $(SAMPLES)/mpegaudio/extra_overread.pcm
+
+$(FATE_MP3): CMP = stddev
+$(FATE_MP3): FUZZ = 0.07
+
+ifdef HAVE_NEON
+fate-mp3-float-conf-hecommon: FUZZ = 0.70
+endif
+
+FATE_MP3-$(call DEMDEC, MP3, MP3FLOAT) += $(FATE_MP3)
+
+FATE_SAMPLES_AVCONV += $(FATE_MP3-yes)
+fate-mp3: $(FATE_MP3-yes)
diff --git a/ffmpeg/tests/fate/mpc.mak b/ffmpeg/tests/fate/mpc.mak
new file mode 100644
index 0000000..53d236e
--- /dev/null
+++ b/ffmpeg/tests/fate/mpc.mak
@@ -0,0 +1,13 @@
+FATE_MPC-$(CONFIG_MPC_DEMUXER) += fate-mpc7-demux
+fate-mpc7-demux: CMD = crc -i $(SAMPLES)/musepack/inside-mp7.mpc -acodec copy
+
+FATE_MPC-$(CONFIG_MPC8_DEMUXER) += fate-mpc8-demux
+fate-mpc8-demux: CMD = crc -i $(SAMPLES)/musepack/inside-mp8.mpc -acodec copy
+
+FATE_MPC-$(call DEMDEC, MPC, MPC7) += fate-musepack7
+fate-musepack7: CMD = pcm -i $(SAMPLES)/musepack/inside-mp7.mpc
+fate-musepack7: CMP = oneoff
+fate-musepack7: REF = $(SAMPLES)/musepack/inside-mp7.pcm
+
+FATE_SAMPLES_AVCONV += $(FATE_MPC-yes)
+fate-mpc: $(FATE_MPC-yes)
diff --git a/ffmpeg/tests/fate/pcm.mak b/ffmpeg/tests/fate/pcm.mak
new file mode 100644
index 0000000..4a3822f
--- /dev/null
+++ b/ffmpeg/tests/fate/pcm.mak
@@ -0,0 +1,32 @@
+FATE_SAMPLES_PCM-$(call DEMDEC, WAV, PCM_U8) += fate-iff-pcm
+fate-iff-pcm: CMD = md5 -i $(SAMPLES)/iff/Bells -f s16le
+
+FATE_SAMPLES_PCM-$(call DEMDEC, MPEGPS, PCM_DVD) += fate-pcm_dvd
+fate-pcm_dvd: CMD = framecrc -i $(SAMPLES)/pcm-dvd/coolitnow-partial.vob -vn
+
+FATE_SAMPLES_PCM-$(call DEMDEC, EA, PCM_S16LE_PLANAR) += fate-pcm-planar
+fate-pcm-planar: CMD = framecrc -i $(SAMPLES)/ea-mad/xeasport.mad -vn
+
+FATE_SAMPLES_PCM-$(call DEMDEC, MOV, PCM_S16BE) += fate-pcm_s16be-stereo
+fate-pcm_s16be-stereo: CMD = md5 -i $(SAMPLES)/qt-surge-suite/surge-2-16-B-twos.mov -f s16le
+
+FATE_SAMPLES_PCM-$(call DEMDEC, MOV, PCM_S16LE) += fate-pcm_s16le-stereo
+fate-pcm_s16le-stereo: CMD = md5 -i $(SAMPLES)/qt-surge-suite/surge-2-16-L-sowt.mov -f s16le
+
+FATE_SAMPLES_PCM-$(call DEMDEC, MOV, PCM_U8) += fate-pcm_u8-mono
+fate-pcm_u8-mono: CMD = md5 -i $(SAMPLES)/qt-surge-suite/surge-1-8-raw.mov -f s16le
+
+FATE_SAMPLES_PCM-$(call DEMDEC, MOV, PCM_U8) += fate-pcm_u8-stereo
+fate-pcm_u8-stereo: CMD = md5 -i $(SAMPLES)/qt-surge-suite/surge-2-8-raw.mov -f s16le
+
+FATE_SAMPLES_PCM-$(call DEMDEC, W64, PCM_S16LE) += fate-w64
+fate-w64: CMD = crc -i $(SAMPLES)/w64/w64-pcm16.w64
+
+FATE_PCM-$(call ENCMUX, PCM_S24DAUD, DAUD) += fate-dcinema-encode
+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 md5 s16le $(SRC) -c:a pcm_s24daud
+
+FATE_FFMPEG += $(FATE_PCM-yes)
+FATE_SAMPLES_AVCONV += $(FATE_SAMPLES_PCM-yes)
+fate-pcm: $(FATE_PCM-yes) $(FATE_SAMPLES_PCM-yes)
diff --git a/ffmpeg/tests/fate/probe.mak b/ffmpeg/tests/fate/probe.mak
new file mode 100644
index 0000000..1166de4
--- /dev/null
+++ b/ffmpeg/tests/fate/probe.mak
@@ -0,0 +1,20 @@
+FATE_PROBE_FORMAT-$(CONFIG_MPEGPS_DEMUXER) += fate-probe-format-roundup997
+fate-probe-format-roundup997: REF = mpeg
+
+FATE_PROBE_FORMAT-$(CONFIG_MP3_DEMUXER) += fate-probe-format-roundup1383
+fate-probe-format-roundup1383: REF = mp3
+
+FATE_PROBE_FORMAT-$(CONFIG_MPEGPS_DEMUXER) += fate-probe-format-roundup1414
+fate-probe-format-roundup1414: REF = mpeg
+
+FATE_PROBE_FORMAT-$(CONFIG_DV_DEMUXER) += fate-probe-format-roundup2015
+fate-probe-format-roundup2015: REF = dv
+
+FATE_PROBE_FORMAT = $(FATE_PROBE_FORMAT-yes)
+
+FATE_EXTERN-$(CONFIG_FFPROBE) += $(FATE_PROBE_FORMAT)
+fate-probe-format: $(FATE_PROBE_FORMAT)
+
+$(FATE_PROBE_FORMAT): ffprobe$(EXESUF)
+$(FATE_PROBE_FORMAT): CMP = oneline
+fate-probe-format-%: CMD = probefmt $(SAMPLES)/probe-format/$(@:fate-probe-format-%=%)
diff --git a/ffmpeg/tests/fate/prores.mak b/ffmpeg/tests/fate/prores.mak
new file mode 100644
index 0000000..00e2159
--- /dev/null
+++ b/ffmpeg/tests/fate/prores.mak
@@ -0,0 +1,14 @@
+FATE_PRORES = fate-prores-422 \
+ fate-prores-422_hq \
+ fate-prores-422_lt \
+ fate-prores-422_proxy \
+ fate-prores-alpha \
+
+FATE_SAMPLES_AVCONV-$(call DEMDEC, MOV, PRORES) += $(FATE_PRORES)
+fate-prores: $(FATE_PRORES)
+
+fate-prores-422: CMD = framecrc -flags +bitexact -i $(SAMPLES)/prores/Sequence_1-Apple_ProRes_422.mov -pix_fmt yuv422p10le
+fate-prores-422_hq: CMD = framecrc -flags +bitexact -i $(SAMPLES)/prores/Sequence_1-Apple_ProRes_422_HQ.mov -pix_fmt yuv422p10le
+fate-prores-422_lt: CMD = framecrc -flags +bitexact -i $(SAMPLES)/prores/Sequence_1-Apple_ProRes_422_LT.mov -pix_fmt yuv422p10le
+fate-prores-422_proxy: CMD = framecrc -flags +bitexact -i $(SAMPLES)/prores/Sequence_1-Apple_ProRes_422_Proxy.mov -pix_fmt yuv422p10le
+fate-prores-alpha: CMD = framecrc -flags +bitexact -i $(SAMPLES)/prores/Sequence_1-Apple_ProRes_with_Alpha.mov -pix_fmt yuv444p10le
diff --git a/ffmpeg/tests/fate/qt.mak b/ffmpeg/tests/fate/qt.mak
new file mode 100644
index 0000000..03b2fce
--- /dev/null
+++ b/ffmpeg/tests/fate/qt.mak
@@ -0,0 +1,55 @@
+FATE_QT-$(call DEMDEC, MOV, EIGHTBPS) += fate-8bps
+fate-8bps: CMD = framecrc -i $(SAMPLES)/8bps/full9iron-partial.mov -pix_fmt rgb24
+
+FATE_QT-$(call DEMDEC, MOV, QDM2) += fate-qdm2
+fate-qdm2: CMD = pcm -i $(SAMPLES)/qt-surge-suite/surge-2-16-B-QDM2.mov
+fate-qdm2: CMP = oneoff
+fate-qdm2: REF = $(SAMPLES)/qt-surge-suite/surge-2-16-B-QDM2.pcm
+fate-qdm2: FUZZ = 2
+
+FATE_QT-$(call DEMDEC, MOV, PCM_ALAW) += fate-qt-alaw-mono
+fate-qt-alaw-mono: CMD = md5 -i $(SAMPLES)/qt-surge-suite/surge-1-16-B-alaw.mov -f s16le
+
+FATE_QT-$(call DEMDEC, MOV, PCM_ALAW) += fate-qt-alaw-stereo
+fate-qt-alaw-stereo: CMD = md5 -i $(SAMPLES)/qt-surge-suite/surge-2-16-B-alaw.mov -f s16le
+
+FATE_QT-$(call DEMDEC, MOV, ADPCM_IMA_QT) += fate-qt-ima4-mono
+fate-qt-ima4-mono: CMD = md5 -i $(SAMPLES)/qt-surge-suite/surge-1-16-B-ima4.mov -f s16le
+
+FATE_QT-$(call DEMDEC, MOV, ADPCM_IMA_QT) += fate-qt-ima4-stereo
+fate-qt-ima4-stereo: CMD = md5 -i $(SAMPLES)/qt-surge-suite/surge-2-16-B-ima4.mov -f s16le
+
+FATE_QT-$(call DEMDEC, MOV, MACE3) += fate-qt-mac3-mono
+fate-qt-mac3-mono: CMD = md5 -i $(SAMPLES)/qt-surge-suite/surge-1-8-MAC3.mov -f s16le
+
+FATE_QT-$(call DEMDEC, MOV, MACE3) += fate-qt-mac3-stereo
+fate-qt-mac3-stereo: CMD = md5 -i $(SAMPLES)/qt-surge-suite/surge-2-8-MAC3.mov -f s16le
+
+FATE_QT-$(call DEMDEC, MOV, MACE6) += fate-qt-mac6-mono
+fate-qt-mac6-mono: CMD = md5 -i $(SAMPLES)/qt-surge-suite/surge-1-8-MAC6.mov -f s16le
+
+FATE_QT-$(call DEMDEC, MOV, MACE6) += fate-qt-mac6-stereo
+fate-qt-mac6-stereo: CMD = md5 -i $(SAMPLES)/qt-surge-suite/surge-2-8-MAC6.mov -f s16le
+
+FATE_QT-$(call DEMDEC, MOV, PCM_MULAW) += fate-qt-ulaw-mono
+fate-qt-ulaw-mono: CMD = md5 -i $(SAMPLES)/qt-surge-suite/surge-1-16-B-ulaw.mov -f s16le
+
+FATE_QT-$(call DEMDEC, MOV, PCM_MULAW) += fate-qt-ulaw-stereo
+fate-qt-ulaw-stereo: CMD = md5 -i $(SAMPLES)/qt-surge-suite/surge-2-16-B-ulaw.mov -f s16le
+
+FATE_QT-$(call DEMDEC, MOV, QDRAW) += fate-quickdraw
+fate-quickdraw: CMD = framecrc -i $(SAMPLES)/quickdraw/Airplane.mov -pix_fmt rgb24
+
+FATE_QT-$(call DEMDEC, MOV, RPZA) += fate-rpza
+fate-rpza: CMD = framecrc -i $(SAMPLES)/rpza/rpza2.mov -t 2 -pix_fmt rgb24
+
+FATE_QT-$(call DEMDEC, MOV, SVQ1) += fate-svq1
+fate-svq1: CMD = framecrc -i $(SAMPLES)/svq1/marymary-shackles.mov -an -t 10
+
+FATE_QT-$(call ALLYES, MOV_DEMUXER SVQ3_DECODER ZLIB) += fate-svq3
+fate-svq3: CMD = framecrc -i $(SAMPLES)/svq3/Vertical400kbit.sorenson3.mov -t 6 -an
+
+FATE_QT += $(FATE_QT-yes)
+
+FATE_SAMPLES_FFMPEG += $(FATE_QT)
+fate-qt: $(FATE_QT)
diff --git a/ffmpeg/tests/fate/qtrle.mak b/ffmpeg/tests/fate/qtrle.mak
new file mode 100644
index 0000000..d8a6ecf
--- /dev/null
+++ b/ffmpeg/tests/fate/qtrle.mak
@@ -0,0 +1,23 @@
+FATE_QTRLE += fate-qtrle-1bit
+fate-qtrle-1bit: CMD = framecrc -i $(SAMPLES)/qtrle/Animation-Monochrome.mov -an
+
+FATE_QTRLE += fate-qtrle-2bit
+fate-qtrle-2bit: CMD = framecrc -i $(SAMPLES)/qtrle/Animation-4Greys.mov -pix_fmt rgb24 -an
+
+FATE_QTRLE += fate-qtrle-4bit
+fate-qtrle-4bit: CMD = framecrc -i $(SAMPLES)/qtrle/Animation-16Greys.mov -pix_fmt rgb24 -an
+
+FATE_QTRLE += fate-qtrle-8bit
+fate-qtrle-8bit: CMD = framecrc -i $(SAMPLES)/qtrle/criticalpath-credits.mov -pix_fmt rgb24 -an
+
+FATE_QTRLE += fate-qtrle-16bit
+fate-qtrle-16bit: CMD = framecrc -i $(SAMPLES)/qtrle/mr-cork-rle.mov -pix_fmt rgb24
+
+FATE_QTRLE += fate-qtrle-24bit
+fate-qtrle-24bit: CMD = framecrc -i $(SAMPLES)/qtrle/aletrek-rle.mov
+
+FATE_QTRLE += fate-qtrle-32bit
+fate-qtrle-32bit: CMD = framecrc -i $(SAMPLES)/qtrle/ultra_demo_720_480_32bpp_rle.mov -pix_fmt rgb24
+
+FATE_SAMPLES_AVCONV-$(call DEMDEC, MOV, QTRLE) += $(FATE_QTRLE)
+fate-qtrle: $(FATE_QTRLE)
diff --git a/ffmpeg/tests/fate/real.mak b/ffmpeg/tests/fate/real.mak
new file mode 100644
index 0000000..6c640ad
--- /dev/null
+++ b/ffmpeg/tests/fate/real.mak
@@ -0,0 +1,43 @@
+FATE_REAL-$(call DEMDEC, RM, RA_144) += fate-ra-144
+fate-ra-144: CMD = md5 -i $(SAMPLES)/real/ra3_in_rm_file.rm -f s16le
+
+FATE_REAL-$(call DEMDEC, RM, RA_288) += fate-ra-288
+fate-ra-288: CMD = pcm -i $(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_REAL-$(call DEMDEC, RM, COOK) += fate-ra-cook
+fate-ra-cook: CMD = pcm -i $(SAMPLES)/real/ra_cook.rm
+fate-ra-cook: CMP = oneoff
+fate-ra-cook: REF = $(SAMPLES)/real/ra_cook.pcm
+
+FATE_REAL-$(call DEMDEC, RM, RV30) += fate-rv30
+fate-rv30: CMD = framecrc -flags +bitexact -idct simple -i $(SAMPLES)/real/rv30.rm -an
+
+FATE_REAL-$(call DEMDEC, RM, RV40) += fate-rv40
+fate-rv40: CMD = framecrc -i $(SAMPLES)/real/spygames-2MB.rmvb -t 10 -an
+
+FATE_SIPR += fate-sipr-5k0
+fate-sipr-5k0: CMD = pcm -i $(SAMPLES)/sipr/sipr_5k0.rm
+fate-sipr-5k0: REF = $(SAMPLES)/sipr/sipr_5k0.pcm
+
+FATE_SIPR += fate-sipr-6k5
+fate-sipr-6k5: CMD = pcm -i $(SAMPLES)/sipr/sipr_6k5.rm
+fate-sipr-6k5: REF = $(SAMPLES)/sipr/sipr_6k5.pcm
+
+FATE_SIPR += fate-sipr-8k5
+fate-sipr-8k5: CMD = pcm -i $(SAMPLES)/sipr/sipr_8k5.rm
+fate-sipr-8k5: REF = $(SAMPLES)/sipr/sipr_8k5.pcm
+
+FATE_SIPR += fate-sipr-16k
+fate-sipr-16k: CMD = pcm -i $(SAMPLES)/sipr/sipr_16k.rm
+fate-sipr-16k: REF = $(SAMPLES)/sipr/sipr_16k.pcm
+
+$(FATE_SIPR): CMP = oneoff
+
+FATE_REAL-$(call DEMDEC, RM, SIPR) += $(FATE_SIPR)
+fate-sipr: $(FATE_SIPR)
+
+FATE_SAMPLES_FFMPEG += $(FATE_REAL-yes)
+fate-real: $(FATE_REAL-yes)
diff --git a/ffmpeg/tests/fate/screen.mak b/ffmpeg/tests/fate/screen.mak
new file mode 100644
index 0000000..b55e02b
--- /dev/null
+++ b/ffmpeg/tests/fate/screen.mak
@@ -0,0 +1,65 @@
+# FIXME dropped frames in this test because of coarse timebase
+FATE_SCREEN-$(call DEMDEC, AVI, CSCD) += fate-cscd
+fate-cscd: CMD = framecrc -i $(SAMPLES)/CSCD/sample_video.avi -an -pix_fmt rgb24
+
+FATE_SCREEN-$(call DEMDEC, AVI, DXTORY) += fate-dxtory
+fate-dxtory: CMD = framecrc -i $(SAMPLES)/dxtory/dxtory_mic.avi
+
+FATE_FRAPS += fate-fraps-v0
+fate-fraps-v0: CMD = framecrc -i $(SAMPLES)/fraps/Griffin_Ragdoll01-partial.avi
+
+FATE_FRAPS += fate-fraps-v1
+fate-fraps-v1: CMD = framecrc -i $(SAMPLES)/fraps/sample-v1.avi -an
+
+FATE_FRAPS += fate-fraps-v2
+fate-fraps-v2: CMD = framecrc -i $(SAMPLES)/fraps/test3-nosound-partial.avi
+
+FATE_FRAPS += fate-fraps-v3
+fate-fraps-v3: CMD = framecrc -i $(SAMPLES)/fraps/psclient-partial.avi -pix_fmt rgb24
+
+FATE_FRAPS += fate-fraps-v4
+fate-fraps-v4: CMD = framecrc -i $(SAMPLES)/fraps/WoW_2006-11-03_14-58-17-19-nosound-partial.avi
+
+FATE_FRAPS += fate-fraps-v5
+fate-fraps-v5: CMD = framecrc -i $(SAMPLES)/fraps/fraps-v5-bouncing-balls-partial.avi
+
+FATE_SCREEN-$(call DEMDEC, AVI, FRAPS) += $(FATE_FRAPS)
+fate-fraps: $(FATE_FRAPS)
+
+FATE_TSCC += fate-tscc-15bit
+fate-tscc-15bit: CMD = framecrc -i $(SAMPLES)/tscc/oneminute.avi -t 15 -pix_fmt rgb24
+
+FATE_TSCC += fate-tscc-32bit
+fate-tscc-32bit: CMD = framecrc -i $(SAMPLES)/tscc/2004-12-17-uebung9-partial.avi -pix_fmt rgb24 -an
+
+FATE_SCREEN-$(call DEMDEC, AVI, TSCC) += $(FATE_TSCC)
+fate-tscc: $(FATE_TSCC)
+
+FATE_VMNC += fate-vmnc-16bit
+fate-vmnc-16bit: CMD = framecrc -i $(SAMPLES)/VMnc/test.avi -pix_fmt rgb24
+
+FATE_VMNC += fate-vmnc-32bit
+fate-vmnc-32bit: CMD = framecrc -i $(SAMPLES)/VMnc/VS2k5DebugDemo-01-partial.avi -pix_fmt rgb24
+
+FATE_SCREEN-$(call DEMDEC, AVI, VMNC) += $(FATE_VMNC)
+fate-vmnc: $(FATE_VMNC)
+
+FATE_ZMBV += fate-zmbv-8bit
+fate-zmbv-8bit: CMD = framecrc -i $(SAMPLES)/zmbv/wc2_001-partial.avi -an -pix_fmt rgb24
+
+FATE_ZMBV += fate-zmbv-15bit
+fate-zmbv-15bit: CMD = framecrc -i $(SAMPLES)/zmbv/zmbv_15bit.avi -pix_fmt rgb24 -t 25
+
+FATE_ZMBV += fate-zmbv-16bit
+fate-zmbv-16bit: CMD = framecrc -i $(SAMPLES)/zmbv/zmbv_16bit.avi -pix_fmt rgb24 -t 25
+
+FATE_ZMBV += fate-zmbv-32bit
+fate-zmbv-32bit: CMD = framecrc -i $(SAMPLES)/zmbv/zmbv_32bit.avi -pix_fmt rgb24 -t 25
+
+FATE_SCREEN-$(call DEMDEC, AVI, ZMBV) += $(FATE_ZMBV)
+fate-zmbv: $(FATE_ZMBV)
+
+FATE_SCREEN += $(FATE_SCREEN-yes)
+
+FATE_SAMPLES_FFMPEG += $(FATE_SCREEN)
+fate-screen: $(FATE_SCREEN)
diff --git a/ffmpeg/tests/fate/seek.mak b/ffmpeg/tests/fate/seek.mak
new file mode 100644
index 0000000..fe8d3ab
--- /dev/null
+++ b/ffmpeg/tests/fate/seek.mak
@@ -0,0 +1,235 @@
+# files from fate-acodec
+
+FATE_SEEK_ACODEC-$(call ENCDEC, ADPCM_IMA_QT, AIFF) += adpcm-ima_qt
+FATE_SEEK_ACODEC-$(call ENCDEC, ADPCM_IMA_WAV, WAV) += adpcm-ima_wav
+FATE_SEEK_ACODEC-$(call ENCDEC, ADPCM_MS, WAV) += adpcm-ms
+FATE_SEEK_ACODEC-$(call ENCDEC, ADPCM_SWF, FLV) += adpcm-swf
+FATE_SEEK_ACODEC-$(call ENCDEC, ADPCM_YAMAHA, WAV) += adpcm-yamaha
+FATE_SEEK_ACODEC-$(call ENCDEC, ALAC, MOV) += alac
+FATE_SEEK_ACODEC-$(call ENCDEC, FLAC, FLAC) += flac
+FATE_SEEK_ACODEC-$(call ENCDEC, MP2, MP2 MP3) += mp2
+FATE_SEEK_ACODEC-$(call ENCDEC, PCM_ALAW, WAV) += pcm-alaw
+FATE_SEEK_ACODEC-$(call ENCDEC, PCM_MULAW, WAV) += pcm-mulaw
+FATE_SEEK_ACODEC-$(call ENCDEC, PCM_S8, MOV) += pcm-s8
+FATE_SEEK_ACODEC-$(call ENCDEC, PCM_U8, WAV) += pcm-u8
+FATE_SEEK_ACODEC-$(call ENCDEC, PCM_S16BE, MOV) += pcm-s16be
+FATE_SEEK_ACODEC-$(call ENCDEC, PCM_S16LE, WAV) += pcm-s16le
+FATE_SEEK_ACODEC-$(call ENCDEC, PCM_S24BE, MOV) += pcm-s24be
+FATE_SEEK_ACODEC-$(call ENCDEC, PCM_S24LE, WAV) += pcm-s24le
+FATE_SEEK_ACODEC-$(call ENCDEC, PCM_S32BE, MOV) += pcm-s32be
+FATE_SEEK_ACODEC-$(call ENCDEC, PCM_S32LE, WAV) += pcm-s32le
+FATE_SEEK_ACODEC-$(call ENCDEC, PCM_F32BE, AU) += pcm-f32be
+FATE_SEEK_ACODEC-$(call ENCDEC, PCM_F32LE, WAV) += pcm-f32le
+FATE_SEEK_ACODEC-$(call ENCDEC, PCM_F64BE, AU) += pcm-f64be
+FATE_SEEK_ACODEC-$(call ENCDEC, PCM_F64LE, WAV) += pcm-f64le
+
+fate-seek-acodec-adpcm-ima_qt: SRC = fate/acodec-adpcm-ima_qt.aiff
+fate-seek-acodec-adpcm-ima_wav: SRC = fate/acodec-adpcm-ima_wav.wav
+fate-seek-acodec-adpcm-ms: SRC = fate/acodec-adpcm-ms.wav
+fate-seek-acodec-adpcm-swf: SRC = fate/acodec-adpcm-swf.flv
+fate-seek-acodec-adpcm-yamaha: SRC = fate/acodec-adpcm-yamaha.wav
+fate-seek-acodec-alac: SRC = fate/acodec-alac.mov
+fate-seek-acodec-flac: SRC = fate/acodec-flac.flac
+fate-seek-acodec-mp2: SRC = fate/acodec-mp2.mp2
+fate-seek-acodec-pcm-alaw: SRC = fate/acodec-pcm-alaw.wav
+fate-seek-acodec-pcm-f32be: SRC = fate/acodec-pcm-f32be.au
+fate-seek-acodec-pcm-f32le: SRC = fate/acodec-pcm-f32le.wav
+fate-seek-acodec-pcm-f64be: SRC = fate/acodec-pcm-f64be.au
+fate-seek-acodec-pcm-f64le: SRC = fate/acodec-pcm-f64le.wav
+fate-seek-acodec-pcm-mulaw: SRC = fate/acodec-pcm-mulaw.wav
+fate-seek-acodec-pcm-s16be: SRC = fate/acodec-pcm-s16be.mov
+fate-seek-acodec-pcm-s16le: SRC = fate/acodec-pcm-s16le.wav
+fate-seek-acodec-pcm-s24be: SRC = fate/acodec-pcm-s24be.mov
+fate-seek-acodec-pcm-s24le: SRC = fate/acodec-pcm-s24le.wav
+fate-seek-acodec-pcm-s32be: SRC = fate/acodec-pcm-s32be.mov
+fate-seek-acodec-pcm-s32le: SRC = fate/acodec-pcm-s32le.wav
+fate-seek-acodec-pcm-s8: SRC = fate/acodec-pcm-s8.mov
+fate-seek-acodec-pcm-u8: SRC = fate/acodec-pcm-u8.wav
+
+FATE_SEEK += $(FATE_SEEK_ACODEC-yes:%=fate-seek-acodec-%)
+
+# files from fate-vsynth2
+
+FATE_SEEK_VSYNTH2-$(call ENCDEC, ASV1, AVI) += asv1
+FATE_SEEK_VSYNTH2-$(call ENCDEC, ASV2, AVI) += asv2
+FATE_SEEK_VSYNTH2-$(call ENCDEC, DNXHD, DNXHD) += dnxhd-720p
+FATE_SEEK_VSYNTH2-$(call ENCDEC, DNXHD, DNXHD) += dnxhd-720p-rd
+FATE_SEEK_VSYNTH2-$(call ENCDEC, DNXHD, MOV) += dnxhd-1080i
+FATE_SEEK_VSYNTH2-$(call ENCDEC, DVVIDEO, DV) += dv
+FATE_SEEK_VSYNTH2-$(call ENCDEC, DVVIDEO, DV) += dv-411
+FATE_SEEK_VSYNTH2-$(call ENCDEC, DVVIDEO, DV) += dv-50
+FATE_SEEK_VSYNTH2-$(call ENCDEC, FFV1, AVI) += ffv1
+FATE_SEEK_VSYNTH2-$(call ENCDEC, FLASHSV, FLV) += flashsv
+FATE_SEEK_VSYNTH2-$(call ENCDEC, FLV, FLV) += flv
+FATE_SEEK_VSYNTH2-$(call ENCDEC, H261, AVI) += h261
+FATE_SEEK_VSYNTH2-$(call ENCDEC, H263, AVI) += h263
+FATE_SEEK_VSYNTH2-$(call ENCDEC, H263, AVI) += h263p
+FATE_SEEK_VSYNTH2-$(call ENCDEC, HUFFYUV, AVI) += huffyuv
+FATE_SEEK_VSYNTH2-$(call ENCDEC, JPEGLS, AVI) += jpegls
+FATE_SEEK_VSYNTH2-$(call ENCDEC, LJPEG MJPEG, AVI) += ljpeg
+FATE_SEEK_VSYNTH2-$(call ENCDEC, MJPEG, AVI) += mjpeg
+
+FATE_SEEK_VSYNTH2-$(call ENCDEC, MPEG1VIDEO, MPEG1VIDEO MPEGVIDEO) += \
+ mpeg1 \
+ mpeg1b
+
+FATE_SEEK_VSYNTH2-$(call ENCDEC, MPEG2VIDEO, MPEG2VIDEO MPEGVIDEO) += \
+ mpeg2-422 \
+ mpeg2-idct-int \
+ mpeg2-ilace \
+ mpeg2-ivlc-qprd \
+ mpeg2-thread \
+ mpeg2-thread-ivlc
+
+FATE_SEEK_VSYNTH2-$(call ENCDEC, MPEG4, MP4 MOV) += mpeg4
+FATE_SEEK_VSYNTH2-$(call ENCDEC, MPEG4, AVI) += $(FATE_MPEG4_AVI)
+FATE_SEEK_VSYNTH2-$(call ENCDEC, MSMPEG4V3, AVI) += msmpeg4
+FATE_SEEK_VSYNTH2-$(call ENCDEC, MSMPEG4V2, AVI) += msmpeg4v2
+FATE_SEEK_VSYNTH2-$(call ENCDEC, RAWVIDEO, AVI) += rgb
+FATE_SEEK_VSYNTH2-$(call ENCDEC, ROQ, ROQ) += roqvideo
+FATE_SEEK_VSYNTH2-$(call ENCDEC, RV10, RM) += rv10
+FATE_SEEK_VSYNTH2-$(call ENCDEC, RV20, RM) += rv20
+FATE_SEEK_VSYNTH2-$(call ENCDEC, SNOW, AVI) += snow
+FATE_SEEK_VSYNTH2-$(call ENCDEC, SNOW, AVI) += snow-ll
+FATE_SEEK_VSYNTH2-$(call ENCDEC, SVQ1, MOV) += svq1
+FATE_SEEK_VSYNTH2-$(call ENCDEC, WMV1, AVI) += wmv1
+FATE_SEEK_VSYNTH2-$(call ENCDEC, WMV2, AVI) += wmv2
+FATE_SEEK_VSYNTH2-$(call ENCDEC, RAWVIDEO, AVI) += yuv
+
+fate-seek-vsynth2-asv1: SRC = fate/vsynth2-asv1.avi
+fate-seek-vsynth2-asv2: SRC = fate/vsynth2-asv2.avi
+fate-seek-vsynth2-dnxhd-1080i: SRC = fate/vsynth2-dnxhd-1080i.mov
+fate-seek-vsynth2-dnxhd-720p: SRC = fate/vsynth2-dnxhd-720p.dnxhd
+fate-seek-vsynth2-dnxhd-720p-rd: SRC = fate/vsynth2-dnxhd-720p.dnxhd
+fate-seek-vsynth2-dv: SRC = fate/vsynth2-dv.dv
+fate-seek-vsynth2-dv-411: SRC = fate/vsynth2-dv-411.dv
+fate-seek-vsynth2-dv-50: SRC = fate/vsynth2-dv-50.dv
+fate-seek-vsynth2-ffv1: SRC = fate/vsynth2-ffv1.avi
+fate-seek-vsynth2-flashsv: SRC = fate/vsynth2-flashsv.flv
+fate-seek-vsynth2-flv: SRC = fate/vsynth2-flv.flv
+fate-seek-vsynth2-h261: SRC = fate/vsynth2-h261.avi
+fate-seek-vsynth2-h263: SRC = fate/vsynth2-h263.avi
+fate-seek-vsynth2-h263p: SRC = fate/vsynth2-h263p.avi
+fate-seek-vsynth2-huffyuv: SRC = fate/vsynth2-huffyuv.avi
+fate-seek-vsynth2-jpegls: SRC = fate/vsynth2-jpegls.avi
+fate-seek-vsynth2-ljpeg: SRC = fate/vsynth2-ljpeg.avi
+fate-seek-vsynth2-mjpeg: SRC = fate/vsynth2-mjpeg.avi
+fate-seek-vsynth2-mpeg1: SRC = fate/vsynth2-mpeg1.mpeg1video
+fate-seek-vsynth2-mpeg1b: SRC = fate/vsynth2-mpeg1b.mpeg1video
+fate-seek-vsynth2-mpeg2-422: SRC = fate/vsynth2-mpeg2-422.mpeg2video
+fate-seek-vsynth2-mpeg2-idct-int: SRC = fate/vsynth2-mpeg2-idct-int.mpeg2video
+fate-seek-vsynth2-mpeg2-ilace: SRC = fate/vsynth2-mpeg2-ilace.mpeg2video
+fate-seek-vsynth2-mpeg2-ivlc-qprd: SRC = fate/vsynth2-mpeg2-ivlc-qprd.mpeg2video
+fate-seek-vsynth2-mpeg2-thread: SRC = fate/vsynth2-mpeg2-thread.mpeg2video
+fate-seek-vsynth2-mpeg2-thread-ivlc: SRC = fate/vsynth2-mpeg2-thread-ivlc.mpeg2video
+fate-seek-vsynth2-mpeg4: SRC = fate/vsynth2-mpeg4.mp4
+fate-seek-vsynth2-mpeg4-adap: SRC = fate/vsynth2-mpeg4-adap.avi
+fate-seek-vsynth2-mpeg4-adv: SRC = fate/vsynth2-mpeg4-adv.avi
+fate-seek-vsynth2-mpeg4-error: SRC = fate/vsynth2-mpeg4-error.avi
+fate-seek-vsynth2-mpeg4-nr: SRC = fate/vsynth2-mpeg4-nr.avi
+fate-seek-vsynth2-mpeg4-qpel: SRC = fate/vsynth2-mpeg4-qpel.avi
+fate-seek-vsynth2-mpeg4-qprd: SRC = fate/vsynth2-mpeg4-qprd.avi
+fate-seek-vsynth2-mpeg4-rc: SRC = fate/vsynth2-mpeg4-rc.avi
+fate-seek-vsynth2-mpeg4-thread: SRC = fate/vsynth2-mpeg4-thread.avi
+fate-seek-vsynth2-msmpeg4: SRC = fate/vsynth2-msmpeg4.avi
+fate-seek-vsynth2-msmpeg4v2: SRC = fate/vsynth2-msmpeg4v2.avi
+fate-seek-vsynth2-rgb: SRC = fate/vsynth2-rgb.avi
+fate-seek-vsynth2-roqvideo: SRC = fate/vsynth2-roqvideo.roq
+fate-seek-vsynth2-rv10: SRC = fate/vsynth2-rv10.rm
+fate-seek-vsynth2-rv20: SRC = fate/vsynth2-rv20.rm
+fate-seek-vsynth2-snow: SRC = fate/vsynth2-snow.avi
+fate-seek-vsynth2-snow-ll: SRC = fate/vsynth2-snow-ll.avi
+fate-seek-vsynth2-svq1: SRC = fate/vsynth2-svq1.mov
+fate-seek-vsynth2-wmv1: SRC = fate/vsynth2-wmv1.avi
+fate-seek-vsynth2-wmv2: SRC = fate/vsynth2-wmv2.avi
+fate-seek-vsynth2-yuv: SRC = fate/vsynth2-yuv.avi
+
+FATE_SEEK += $(FATE_SEEK_VSYNTH2-yes:%=fate-seek-vsynth2-%)
+
+# files from fate-lavf
+
+FATE_SEEK_LAVF-$(call ENCDEC, PCM_S16BE, AIFF) += aiff
+FATE_SEEK_LAVF-$(call ENCDEC, PCM_ALAW, PCM_ALAW) += alaw
+FATE_SEEK_LAVF-$(call ENCDEC2, MSMPEG4V3, MP2, ASF) += asf
+FATE_SEEK_LAVF-$(call ENCDEC, PCM_S16BE, AU) += au
+FATE_SEEK_LAVF-$(call ENCDEC2, MPEG4, MP2, AVI) += avi
+FATE_SEEK_LAVF-$(call ENCDEC, BMP, IMAGE2) += bmp
+FATE_SEEK_LAVF-$(call ENCDEC2, DVVIDEO, PCM_S16LE, AVI) += dv_fmt
+FATE_SEEK_LAVF-$(call ENCDEC2, MPEG1VIDEO, MP2, FFM) += ffm
+FATE_SEEK_LAVF-$(call ENCDEC, FLV, FLV) += flv_fmt
+FATE_SEEK_LAVF-$(call ENCDEC, GIF, IMAGE2) += gif
+FATE_SEEK_LAVF-$(call ENCDEC2, MPEG2VIDEO, PCM_S16LE, GXF) += gxf
+FATE_SEEK_LAVF-$(call ENCDEC, MJPEG, IMAGE2) += jpg
+FATE_SEEK_LAVF-$(call ENCDEC2, MPEG4, MP2, MATROSKA) += mkv
+FATE_SEEK_LAVF-$(call ENCDEC, ADPCM_YAMAHA, MMF) += mmf
+FATE_SEEK_LAVF-$(call ENCDEC2, MPEG4, PCM_ALAW, MOV) += mov
+FATE_SEEK_LAVF-$(call ENCDEC2, MPEG1VIDEO, MP2, MPEG1SYSTEM MPEGPS) += mpg
+FATE_SEEK_LAVF-$(call ENCDEC, PCM_MULAW, PCM_MULAW) += mulaw
+FATE_SEEK_LAVF-$(call ENCDEC2, MPEG2VIDEO, PCM_S16LE, MXF) += mxf
+FATE_SEEK_LAVF-$(call ENCDEC2, MPEG2VIDEO, PCM_S16LE, MXF_D10 MXF) += mxf_d10
+FATE_SEEK_LAVF-$(call ENCDEC2, MPEG4, MP2, NUT) += nut
+FATE_SEEK_LAVF-$(call ENCDEC, FLAC, OGG) += ogg
+FATE_SEEK_LAVF-$(call ENCDEC, PBM, IMAGE2PIPE) += pbmpipe
+FATE_SEEK_LAVF-$(call ENCDEC, PCX, IMAGE2) += pcx
+FATE_SEEK_LAVF-$(call ENCDEC, PGM, IMAGE2) += pgm
+FATE_SEEK_LAVF-$(call ENCDEC, PGM, IMAGE2PIPE) += pgmpipe
+FATE_SEEK_LAVF-$(call ENCDEC, PPM, IMAGE2) += ppm
+FATE_SEEK_LAVF-$(call ENCDEC, PPM, IMAGE2PIPE) += ppmpipe
+FATE_SEEK_LAVF-$(call ENCMUX, RV10 AC3_FIXED, RM) += rm
+FATE_SEEK_LAVF-$(call ENCDEC, SGI, IMAGE2) += sgi
+FATE_SEEK_LAVF-$(call ENCDEC, FLV, SWF) += swf
+FATE_SEEK_LAVF-$(call ENCDEC, TARGA, IMAGE2) += tga
+FATE_SEEK_LAVF-$(call ENCDEC, TIFF, IMAGE2) += tiff
+FATE_SEEK_LAVF-$(call ENCDEC2, MPEG2VIDEO, MP2, MPEGTS) += ts
+FATE_SEEK_LAVF-$(call ENCDEC, PCM_U8, VOC) += voc
+FATE_SEEK_LAVF-$(call ENCDEC, PCM_S16LE, WAV) += wav
+FATE_SEEK_LAVF-$(call ENCDEC, MP2, WTV) += wtv
+FATE_SEEK_LAVF-$(CONFIG_YUV4MPEGPIPE_MUXER) += yuv4mpeg
+
+fate-seek-lavf-aiff: SRC = lavf/lavf.aif
+fate-seek-lavf-alaw: SRC = lavf/lavf.al
+fate-seek-lavf-asf: SRC = lavf/lavf.asf
+fate-seek-lavf-au: SRC = lavf/lavf.au
+fate-seek-lavf-avi: SRC = lavf/lavf.avi
+fate-seek-lavf-bmp: SRC = images/bmp/%02d.bmp
+fate-seek-lavf-dv_fmt: SRC = lavf/lavf.dv
+fate-seek-lavf-ffm: SRC = lavf/lavf.ffm
+fate-seek-lavf-flv_fmt: SRC = lavf/lavf.flv
+fate-seek-lavf-gif: SRC = lavf/lavf.gif
+fate-seek-lavf-gxf: SRC = lavf/lavf.gxf
+fate-seek-lavf-jpg: SRC = images/jpg/%02d.jpg
+fate-seek-lavf-mkv: SRC = lavf/lavf.mkv
+fate-seek-lavf-mmf: SRC = lavf/lavf.mmf
+fate-seek-lavf-mov: SRC = lavf/lavf.mov
+fate-seek-lavf-mpg: SRC = lavf/lavf.mpg
+fate-seek-lavf-mulaw: SRC = lavf/lavf.ul
+fate-seek-lavf-mxf: SRC = lavf/lavf.mxf
+fate-seek-lavf-mxf_d10: SRC = lavf/lavf.mxf_d10
+fate-seek-lavf-nut: SRC = lavf/lavf.nut
+fate-seek-lavf-ogg: SRC = lavf/lavf.ogg
+fate-seek-lavf-pbmpipe: SRC = lavf/pbmpipe.pbm
+fate-seek-lavf-pcx: SRC = images/pcx/%02d.pcx
+fate-seek-lavf-pgm: SRC = images/pgm/%02d.pgm
+fate-seek-lavf-pgmpipe: SRC = lavf/pgmpipe.pgm
+fate-seek-lavf-ppm: SRC = images/ppm/%02d.ppm
+fate-seek-lavf-ppmpipe: SRC = lavf/ppmpipe.ppm
+fate-seek-lavf-rm: SRC = lavf/lavf.rm
+fate-seek-lavf-sgi: SRC = images/sgi/%02d.sgi
+fate-seek-lavf-swf: SRC = lavf/lavf.swf
+fate-seek-lavf-tga: SRC = images/tga/%02d.tga
+fate-seek-lavf-tiff: SRC = images/tiff/%02d.tiff
+fate-seek-lavf-ts: SRC = lavf/lavf.ts
+fate-seek-lavf-voc: SRC = lavf/lavf.voc
+fate-seek-lavf-wav: SRC = lavf/lavf.wav
+fate-seek-lavf-wtv: SRC = lavf/lavf.wtv
+fate-seek-lavf-yuv4mpeg: SRC = lavf/lavf.y4m
+
+FATE_SEEK += $(FATE_SEEK_LAVF-yes:%=fate-seek-lavf-%)
+
+$(FATE_SEEK): libavformat/seek-test$(EXESUF)
+$(FATE_SEEK): CMD = run libavformat/seek-test$(EXESUF) $(TARGET_PATH)/tests/data/$(SRC)
+$(FATE_SEEK): fate-seek-%: fate-%
+fate-seek-%: REF = $(SRC_PATH)/tests/ref/seek/$(@:fate-seek-%=%)
+
+FATE_AVCONV += $(FATE_SEEK)
+fate-seek: $(FATE_SEEK)
diff --git a/ffmpeg/tests/fate/subtitles.mak b/ffmpeg/tests/fate/subtitles.mak
new file mode 100644
index 0000000..8e586fb
--- /dev/null
+++ b/ffmpeg/tests/fate/subtitles.mak
@@ -0,0 +1,62 @@
+FATE_SUBTITLES_ASS-$(call DEMDEC, AQTITLE, TEXT) += fate-sub-aqtitle
+fate-sub-aqtitle: CMD = md5 -i $(SAMPLES)/sub/AQTitle_capability_tester.aqt -f ass
+
+FATE_SUBTITLES_ASS-$(call DEMDEC, JACOSUB, JACOSUB) += fate-sub-jacosub
+fate-sub-jacosub: CMD = md5 -i $(SAMPLES)/sub/JACOsub_capability_tester.jss -f ass
+
+FATE_SUBTITLES_ASS-$(call DEMDEC, MICRODVD, MICRODVD) += fate-sub-microdvd
+fate-sub-microdvd: CMD = md5 -i $(SAMPLES)/sub/MicroDVD_capability_tester.sub -f ass
+
+FATE_SUBTITLES-$(call ALLYES, MICRODVD_DEMUXER MICRODVD_MUXER) += fate-sub-microdvd-remux
+fate-sub-microdvd-remux: CMD = md5 -i $(SAMPLES)/sub/MicroDVD_capability_tester.sub -c:s copy -f microdvd
+
+FATE_SUBTITLES_ASS-$(call DEMDEC, MOV, MOVTEXT) += fate-sub-movtext
+fate-sub-movtext: CMD = md5 -i $(SAMPLES)/sub/MovText_capability_tester.mp4 -f ass
+
+FATE_SUBTITLES-$(call ENCDEC, MOVTEXT, MOV) += fate-sub-movtextenc
+fate-sub-movtextenc: CMD = md5 -i $(SAMPLES)/sub/MovText_capability_tester.mp4 -map 0 -scodec mov_text -f mp4 -flags +bitexact -movflags frag_keyframe+empty_moov
+
+FATE_SUBTITLES_ASS-$(call DEMDEC, MPL2, MPL2) += fate-sub-mpl2
+fate-sub-mpl2: CMD = md5 -i $(SAMPLES)/sub/MPL2_capability_tester.txt -f ass
+
+FATE_SUBTITLES_ASS-$(call DEMDEC, MPSUB, TEXT) += fate-sub-mpsub
+fate-sub-mpsub: CMD = md5 -i $(SAMPLES)/sub/MPSub_capability_tester.sub -f ass
+
+FATE_SUBTITLES_ASS-$(call DEMDEC, MPSUB, TEXT) += fate-sub-mpsub-frames
+fate-sub-mpsub-frames: CMD = md5 -i $(SAMPLES)/sub/MPSub_capability_tester_frames.sub -f ass
+
+FATE_SUBTITLES_ASS-$(call DEMDEC, PJS, PJS) += fate-sub-pjs
+fate-sub-pjs: CMD = md5 -i $(SAMPLES)/sub/PJS_capability_tester.pjs -f ass
+
+FATE_SUBTITLES_ASS-$(call DEMDEC, REALTEXT, REALTEXT) += fate-sub-realtext
+fate-sub-realtext: CMD = md5 -i $(SAMPLES)/sub/RealText_capability_tester.rt -f ass
+
+FATE_SUBTITLES_ASS-$(call DEMDEC, SAMI, SAMI) += fate-sub-sami
+fate-sub-sami: CMD = md5 -i $(SAMPLES)/sub/SAMI_capability_tester.smi -f ass
+
+FATE_SUBTITLES_ASS-$(call DEMDEC, SRT, SUBRIP) += fate-sub-srt
+fate-sub-srt: CMD = md5 -i $(SAMPLES)/sub/SubRip_capability_tester.srt -f ass
+
+FATE_SUBTITLES-$(call ALLYES, MOV_DEMUXER MOVTEXT_DECODER SUBRIP_ENCODER) += fate-sub-subripenc
+fate-sub-subripenc: CMD = md5 -i $(SAMPLES)/sub/MovText_capability_tester.mp4 -scodec subrip -f srt
+
+FATE_SUBTITLES_ASS-$(call DEMDEC, SUBVIEWER1, SUBVIEWER1) += fate-sub-subviewer1
+fate-sub-subviewer1: CMD = md5 -i $(SAMPLES)/sub/SubViewer1_capability_tester.sub -f ass
+
+FATE_SUBTITLES_ASS-$(call DEMDEC, SUBVIEWER, SUBVIEWER) += fate-sub-subviewer
+fate-sub-subviewer: CMD = md5 -i $(SAMPLES)/sub/SubViewer_capability_tester.sub -f ass
+
+FATE_SUBTITLES_ASS-$(call DEMDEC, VPLAYER, VPLAYER) += fate-sub-vplayer
+fate-sub-vplayer: CMD = md5 -i $(SAMPLES)/sub/VPlayer_capability_tester.txt -f ass
+
+FATE_SUBTITLES_ASS-$(call DEMDEC, WEBVTT, WEBVTT) += fate-sub-webvtt
+fate-sub-webvtt: CMD = md5 -i $(SAMPLES)/sub/WebVTT_capability_tester.vtt -f ass
+
+FATE_SUBTITLES_ASS-$(call ALLYES, MICRODVD_DEMUXER MICRODVD_DECODER ICONV) += fate-sub-charenc
+fate-sub-charenc: CMD = md5 -sub_charenc cp1251 -i $(SAMPLES)/sub/cp1251-subtitles.sub -f ass
+
+FATE_SUBTITLES-$(call ENCMUX, ASS, ASS) += $(FATE_SUBTITLES_ASS-yes)
+FATE_SUBTITLES += $(FATE_SUBTITLES-yes)
+
+FATE_SAMPLES_FFMPEG += $(FATE_SUBTITLES)
+fate-subtitles: $(FATE_SUBTITLES)
diff --git a/ffmpeg/tests/fate/utvideo.mak b/ffmpeg/tests/fate/utvideo.mak
new file mode 100644
index 0000000..c6ce217
--- /dev/null
+++ b/ffmpeg/tests/fate/utvideo.mak
@@ -0,0 +1,72 @@
+FATE_UTVIDEO += fate-utvideo_rgb_left
+fate-utvideo_rgb_left: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_rgb_left.avi
+
+FATE_UTVIDEO += fate-utvideo_rgb_median
+fate-utvideo_rgb_median: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_rgb_median.avi
+
+FATE_UTVIDEO += fate-utvideo_rgba_left
+fate-utvideo_rgba_left: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_rgba_left.avi
+
+FATE_UTVIDEO += fate-utvideo_rgba_median
+fate-utvideo_rgba_median: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_rgba_median.avi
+
+FATE_UTVIDEO += fate-utvideo_rgba_single_symbol
+fate-utvideo_rgba_single_symbol: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_rgba_single_symbol.avi
+
+FATE_UTVIDEO += fate-utvideo_yuv420_left
+fate-utvideo_yuv420_left: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_yuv420_left.avi
+
+FATE_UTVIDEO += fate-utvideo_yuv420_median
+fate-utvideo_yuv420_median: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_yuv420_median.avi
+
+FATE_UTVIDEO += fate-utvideo_yuv422_left
+fate-utvideo_yuv422_left: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_yuv422_left.avi
+
+FATE_UTVIDEO += fate-utvideo_yuv422_median
+fate-utvideo_yuv422_median: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_yuv422_median.avi
+
+FATE_SAMPLES_AVCONV-$(call DEMDEC, AVI, UTVIDEO) += $(FATE_UTVIDEO)
+fate-utvideo: $(FATE_UTVIDEO)
+
+fate-utvideoenc%: CMD = framemd5 -f image2 -vcodec pgmyuv -i $(TARGET_PATH)/tests/vsynth1/%02d.pgm -vcodec utvideo -sws_flags +accurate_rnd+bitexact ${OPTS}
+
+FATE_UTVIDEOENC += fate-utvideoenc_rgba_left
+fate-utvideoenc_rgba_left: OPTS = -pix_fmt rgba -pred left
+
+FATE_UTVIDEOENC += fate-utvideoenc_rgba_median
+fate-utvideoenc_rgba_median: OPTS = -pix_fmt rgba -pred median
+
+FATE_UTVIDEOENC += fate-utvideoenc_rgba_none
+fate-utvideoenc_rgba_none: OPTS = -pix_fmt rgba -pred 3
+
+FATE_UTVIDEOENC += fate-utvideoenc_rgb_left
+fate-utvideoenc_rgb_left: OPTS = -pix_fmt rgb24 -pred left
+
+FATE_UTVIDEOENC += fate-utvideoenc_rgb_median
+fate-utvideoenc_rgb_median: OPTS = -pix_fmt rgb24 -pred median
+
+FATE_UTVIDEOENC += fate-utvideoenc_rgb_none
+fate-utvideoenc_rgb_none: OPTS = -pix_fmt rgb24 -pred 3
+
+FATE_UTVIDEOENC += fate-utvideoenc_yuv420_left
+fate-utvideoenc_yuv420_left: OPTS = -pix_fmt yuv420p -pred left
+
+FATE_UTVIDEOENC += fate-utvideoenc_yuv420_median
+fate-utvideoenc_yuv420_median: OPTS = -pix_fmt yuv420p -pred median
+
+FATE_UTVIDEOENC += fate-utvideoenc_yuv420_none
+fate-utvideoenc_yuv420_none: OPTS = -pix_fmt yuv420p -pred 3
+
+FATE_UTVIDEOENC += fate-utvideoenc_yuv422_left
+fate-utvideoenc_yuv422_left: OPTS = -pix_fmt yuv422p -pred left
+
+FATE_UTVIDEOENC += fate-utvideoenc_yuv422_median
+fate-utvideoenc_yuv422_median: OPTS = -pix_fmt yuv422p -pred median
+
+FATE_UTVIDEOENC += fate-utvideoenc_yuv422_none
+fate-utvideoenc_yuv422_none: OPTS = -pix_fmt yuv422p -pred 3
+
+$(FATE_UTVIDEOENC): tests/vsynth1/00.pgm
+
+FATE_AVCONV-$(call ENCMUX, UTVIDEO, AVI) += $(FATE_UTVIDEOENC)
+fate-utvideoenc: $(FATE_UTVIDEOENC)
diff --git a/ffmpeg/tests/fate/vcodec.mak b/ffmpeg/tests/fate/vcodec.mak
new file mode 100644
index 0000000..fbbe4a4
--- /dev/null
+++ b/ffmpeg/tests/fate/vcodec.mak
@@ -0,0 +1,293 @@
+fate-vsynth1-%: SRC = tests/data/vsynth1.yuv
+fate-vsynth2-%: SRC = tests/data/vsynth2.yuv
+fate-vsynth%: CODEC = $(word 3, $(subst -, ,$(@)))
+fate-vsynth%: FMT = avi
+fate-vsynth%: CMD = enc_dec "rawvideo -s 352x288 -pix_fmt yuv420p $(RAWDECOPTS)" $(SRC) $(FMT) "-c $(CODEC) $(ENCOPTS)" rawvideo "-s 352x288 -pix_fmt yuv420p -vsync 0 $(DECOPTS)" -keep "$(DECINOPTS)"
+fate-vsynth%: CMP_UNIT = 1
+fate-vsynth%: REF = $(SRC_PATH)/tests/ref/vsynth/$(@:fate-%=%)
+
+FATE_VCODEC-$(call ENCDEC, AMV, AVI) += amv
+
+FATE_VCODEC-$(call ENCDEC, ASV1, AVI) += asv1
+fate-vsynth%-asv1: ENCOPTS = -qscale 10
+
+FATE_VCODEC-$(call ENCDEC, ASV2, AVI) += asv2
+fate-vsynth%-asv2: ENCOPTS = -qscale 10
+
+FATE_VCODEC-$(call ENCDEC, CLJR, AVI) += cljr
+
+FATE_VCODEC-$(call ENCDEC, DNXHD, DNXHD) += dnxhd-720p \
+ dnxhd-720p-rd \
+ dnxhd-720p-10bit
+
+fate-vsynth%-dnxhd-720p: ENCOPTS = -s hd720 -b 90M \
+ -pix_fmt yuv422p -frames 5 -qmax 8
+fate-vsynth%-dnxhd-720p: FMT = dnxhd
+
+fate-vsynth%-dnxhd-720p-rd: ENCOPTS = -s hd720 -b 90M -threads 4 -mbd rd \
+ -pix_fmt yuv422p -frames 5 -qmax 8
+fate-vsynth%-dnxhd-720p-rd: FMT = dnxhd
+
+fate-vsynth%-dnxhd-720p-10bit: ENCOPTS = -s hd720 -b 90M \
+ -pix_fmt yuv422p10 -frames 5 -qmax 8
+fate-vsynth%-dnxhd-720p-10bit: FMT = dnxhd
+
+FATE_VCODEC-$(call ENCDEC, DNXHD, MOV) += dnxhd-1080i
+fate-vsynth%-dnxhd-1080i: ENCOPTS = -s hd1080 -b 120M -flags +ildct \
+ -pix_fmt yuv422p -frames 5 -qmax 8
+fate-vsynth%-dnxhd-1080i: FMT = mov
+
+FATE_VCODEC-$(call ENCDEC, DVVIDEO, DV) += dv dv-411 dv-50
+fate-vsynth%-dv: CODEC = dvvideo
+fate-vsynth%-dv: ENCOPTS = -dct int -s pal
+fate-vsynth%-dv: FMT = dv
+
+fate-vsynth%-dv-411: CODEC = dvvideo
+fate-vsynth%-dv-411: ENCOPTS = -dct int -s pal -pix_fmt yuv411p \
+ -sws_flags area
+fate-vsynth%-dv-411: DECOPTS = -sws_flags area
+fate-vsynth%-dv-411: FMT = dv
+
+fate-vsynth%-dv-50: CODEC = dvvideo
+fate-vsynth%-dv-50: ENCOPTS = -dct int -s pal -pix_fmt yuv422p \
+ -sws_flags neighbor
+fate-vsynth%-dv-50: DECOPTS = -sws_flags neighbor
+fate-vsynth%-dv-50: FMT = dv
+
+FATE_VCODEC-$(call ENCDEC, FFV1, AVI) += ffv1
+fate-vsynth%-ffv1: ENCOPTS = -slices 4 -strict -2
+
+FATE_VCODEC-$(call ENCDEC, FFVHUFF, AVI) += ffvhuff
+
+FATE_VCODEC-$(call ENCDEC, FLASHSV, FLV) += flashsv
+fate-vsynth%-flashsv: ENCOPTS = -sws_flags neighbor+full_chroma_int
+fate-vsynth%-flashsv: DECOPTS = -sws_flags area
+fate-vsynth%-flashsv: FMT = flv
+
+FATE_VCODEC-$(call ENCDEC, FLASHSV2, FLV) += flashsv2
+fate-vsynth%-flashsv2: ENCOPTS = -sws_flags neighbor+full_chroma_int -strict experimental -compression_level 0
+fate-vsynth%-flashsv2: DECOPTS = -sws_flags area
+fate-vsynth%-flashsv2: FMT = flv
+
+FATE_VCODEC-$(call ENCDEC, FLV, FLV) += flv
+fate-vsynth%-flv: ENCOPTS = -qscale 10
+fate-vsynth%-flv: FMT = flv
+
+FATE_VCODEC-$(call ENCDEC, H261, AVI) += h261
+fate-vsynth%-h261: ENCOPTS = -qscale 11
+
+FATE_VCODEC-$(call ENCDEC, H263, AVI) += h263 h263-obmc h263p
+fate-vsynth%-h263: ENCOPTS = -qscale 10
+fate-vsynth%-h263-obmc: ENCOPTS = -qscale 10 -obmc 1
+fate-vsynth%-h263p: ENCOPTS = -qscale 2 -flags +aic -umv 1 -aiv 1 -ps 300
+
+FATE_VCODEC-$(call ENCDEC, HUFFYUV, AVI) += huffyuv
+fate-vsynth%-huffyuv: ENCOPTS = -pix_fmt yuv422p -sws_flags neighbor
+fate-vsynth%-huffyuv: DECOPTS = -strict -2 -sws_flags neighbor
+
+FATE_VCODEC-$(call ENCDEC, JPEGLS, AVI) += jpegls
+fate-vsynth%-jpegls: ENCOPTS = -sws_flags neighbor+full_chroma_int
+fate-vsynth%-jpegls: DECOPTS = -sws_flags area
+
+FATE_VCODEC-$(call ENCDEC, JPEG2000, AVI) += j2k
+fate-vsynth%-j2k: ENCOPTS = -qscale 7 -strict experimental -pix_fmt rgb24
+fate-vsynth%-j2k: DECINOPTS = -vcodec j2k -strict experimental
+
+FATE_VCODEC-$(call ENCDEC, LJPEG MJPEG, AVI) += ljpeg
+fate-vsynth%-ljpeg: ENCOPTS = -strict -1
+
+FATE_VCODEC-$(call ENCDEC, MJPEG, AVI) += mjpeg mjpeg-422 mjpeg-444
+fate-vsynth%-mjpeg: ENCOPTS = -qscale 9 -pix_fmt yuvj420p
+fate-vsynth%-mjpeg-422: ENCOPTS = -qscale 9 -pix_fmt yuvj422p
+fate-vsynth%-mjpeg-444: ENCOPTS = -qscale 9 -pix_fmt yuvj444p
+
+FATE_VCODEC-$(call ENCDEC, MPEG1VIDEO, MPEG1VIDEO MPEGVIDEO) += mpeg1 mpeg1b
+fate-vsynth%-mpeg1: FMT = mpeg1video
+fate-vsynth%-mpeg1: CODEC = mpeg1video
+fate-vsynth%-mpeg1: ENCOPTS = -qscale 10
+
+fate-vsynth%-mpeg1b: CODEC = mpeg1video
+fate-vsynth%-mpeg1b: ENCOPTS = -qscale 8 -bf 3 -ps 200
+fate-vsynth%-mpeg1b: FMT = mpeg1video
+
+FATE_MPEG2 = mpeg2 \
+ mpeg2-422 \
+ mpeg2-idct-int \
+ mpeg2-ilace \
+ mpeg2-ivlc-qprd \
+ mpeg2-thread \
+ mpeg2-thread-ivlc
+
+FATE_VCODEC-$(call ENCDEC, MPEG2VIDEO, MPEG2VIDEO MPEGVIDEO) += $(FATE_MPEG2)
+
+$(FATE_MPEG2:%=fate-vsynth\%-%): FMT = mpeg2video
+$(FATE_MPEG2:%=fate-vsynth\%-%): CODEC = mpeg2video
+
+fate-vsynth%-mpeg2: ENCOPTS = -qscale 10
+fate-vsynth%-mpeg2-422: ENCOPTS = -b:v 1000k \
+ -bf 2 \
+ -trellis 1 \
+ -flags +mv0+ildct+ilme \
+ -mpv_flags +qp_rd \
+ -intra_vlc 1 \
+ -mbd rd \
+ -pix_fmt yuv422p
+fate-vsynth%-mpeg2-idct-int: ENCOPTS = -qscale 10 -idct int -dct int
+fate-vsynth%-mpeg2-ilace: ENCOPTS = -qscale 10 -flags +ildct+ilme
+fate-vsynth%-mpeg2-ivlc-qprd: ENCOPTS = -b:v 500k \
+ -bf 2 \
+ -trellis 1 \
+ -flags +mv0 \
+ -mpv_flags +qp_rd \
+ -intra_vlc 1 \
+ -cmp 2 -subcmp 2 \
+ -mbd rd
+fate-vsynth%-mpeg2-thread: ENCOPTS = -qscale 10 -bf 2 -flags +ildct+ilme \
+ -threads 2 -slices 2
+fate-vsynth%-mpeg2-thread-ivlc: ENCOPTS = -qscale 10 -bf 2 -flags +ildct+ilme \
+ -intra_vlc 1 -threads 2 -slices 2
+
+FATE_MPEG4_MP4 = mpeg4
+FATE_MPEG4_AVI = mpeg4-rc \
+ mpeg4-adv \
+ mpeg4-qprd \
+ mpeg4-adap \
+ mpeg4-qpel \
+ mpeg4-thread \
+ mpeg4-error \
+ mpeg4-nr
+
+FATE_VCODEC-$(call ENCDEC, MPEG4, MP4 MOV) += $(FATE_MPEG4_MP4)
+FATE_VCODEC-$(call ENCDEC, MPEG4, AVI) += $(FATE_MPEG4_AVI)
+
+fate-vsynth%-mpeg4: ENCOPTS = -qscale 10 -flags +mv4 -mbd bits
+fate-vsynth%-mpeg4: FMT = mp4
+
+fate-vsynth%-mpeg4-adap: ENCOPTS = -b 550k -bf 2 -flags +mv4+mv0 \
+ -trellis 1 -cmp 1 -subcmp 2 \
+ -mbd rd -scplx_mask 0.3
+
+fate-vsynth%-mpeg4-adv: ENCOPTS = -qscale 9 -flags +mv4+aic \
+ -data_partitioning 1 -trellis 1 \
+ -mbd bits -ps 200
+
+fate-vsynth%-mpeg4-error: ENCOPTS = -qscale 7 -flags +mv4+aic \
+ -data_partitioning 1 -mbd rd \
+ -ps 250 -error 10
+
+fate-vsynth%-mpeg4-nr: ENCOPTS = -qscale 8 -flags +mv4 -mbd rd -nr 200
+
+fate-vsynth%-mpeg4-qpel: ENCOPTS = -qscale 7 -flags +mv4+qpel -mbd 2 \
+ -bf 2 -cmp 1 -subcmp 2
+
+fate-vsynth%-mpeg4-qprd: ENCOPTS = -b 450k -bf 2 -trellis 1 \
+ -flags +mv4+mv0 -mpv_flags +qp_rd \
+ -cmp 2 -subcmp 2 -mbd rd
+
+fate-vsynth%-mpeg4-rc: ENCOPTS = -b 400k -bf 2
+
+fate-vsynth%-mpeg4-thread: ENCOPTS = -b 500k -flags +mv4+aic \
+ -data_partitioning 1 -trellis 1 \
+ -mbd bits -ps 200 -bf 2 \
+ -threads 2 -slices 2
+
+FATE_VCODEC-$(call ENCDEC, MSMPEG4V3, AVI) += msmpeg4
+fate-vsynth%-msmpeg4: ENCOPTS = -qscale 10
+
+FATE_VCODEC-$(call ENCDEC, MSMPEG4V2, AVI) += msmpeg4v2
+fate-vsynth%-msmpeg4v2: ENCOPTS = -qscale 10
+
+FATE_VCODEC-$(call ENCDEC, PNG, AVI) += mpng
+fate-vsynth%-mpng: CODEC = png
+
+FATE_VCODEC-$(call ENCDEC, MSVIDEO1, AVI) += msvideo1
+
+FATE_VCODEC-$(call ENCDEC, PRORES, MOV) += prores prores_kostya
+fate-vsynth%-prores: FMT = mov
+
+fate-vsynth%-prores_kostya: ENCOPTS = -profile hq
+fate-vsynth%-prores_kostya: FMT = mov
+
+FATE_VCODEC-$(call ENCDEC, QTRLE, MOV) += qtrle qtrlegray
+fate-vsynth%-qtrle: FMT = mov
+
+fate-vsynth%-qtrlegray: CODEC = qtrle
+fate-vsynth%-qtrlegray: ENCOPTS = -pix_fmt gray
+fate-vsynth%-qtrlegray: FMT = mov
+
+FATE_VCODEC-$(call ENCDEC, RAWVIDEO, AVI) += rgb
+fate-vsynth%-rgb: CODEC = rawvideo
+fate-vsynth%-rgb: ENCOPTS = -pix_fmt bgr24
+
+FATE_VCODEC-$(call ENCDEC, ROQ, ROQ) += roqvideo
+fate-vsynth%-roqvideo: CODEC = roqvideo
+fate-vsynth%-roqvideo: ENCOPTS = -frames 5
+fate-vsynth%-roqvideo: RAWDECOPTS = -r 30
+fate-vsynth%-roqvideo: FMT = roq
+
+FATE_VCODEC-$(call ENCDEC, RV10, RM) += rv10
+fate-vsynth%-rv10: ENCOPTS = -qscale 10
+fate-vsynth%-rv10: FMT = rm
+
+FATE_VCODEC-$(call ENCDEC, RV20, RM) += rv20
+fate-vsynth%-rv20: ENCOPTS = -qscale 10
+fate-vsynth%-rv20: FMT = rm
+
+FATE_VCODEC-$(call ENCDEC, SNOW, AVI) += snow snow-hpel snow-ll
+fate-vsynth%-snow: ENCOPTS = -strict -2 -qscale 2 -flags +qpel \
+ -me_method iter -dia_size 2 \
+ -cmp 12 -subcmp 12 -s 128x64
+
+fate-vsynth%-snow-hpel: ENCOPTS = -strict -2 -qscale 2 \
+ -me_method iter -dia_size 2 \
+ -cmp 12 -subcmp 12 -s 128x64
+
+fate-vsynth%-snow-ll: ENCOPTS = -strict -2 -qscale .001 -pred 1 \
+ -flags +mv4+qpel
+
+FATE_VCODEC-$(call ENCDEC, SVQ1, MOV) += svq1
+fate-vsynth%-svq1: ENCOPTS = -qscale 3 -pix_fmt yuv410p
+fate-vsynth%-svq1: FMT = mov
+
+FATE_VCODEC-$(call ENCDEC, R210, AVI) += r210
+
+FATE_VCODEC-$(call ENCDEC, V210, AVI) += v210
+
+FATE_VCODEC-$(call ENCDEC, V308, AVI) += v308
+
+FATE_VCODEC-$(call ENCDEC, V408, AVI) += v408
+fate-vsynth%-v408: ENCOPTS = -sws_flags neighbor+bitexact
+fate-vsynth%-v408: DECOPTS = -sws_flags neighbor+bitexact
+
+FATE_VCODEC-$(call ENCDEC, AVUI, MOV) += avui
+fate-vsynth%-avui: ENCOPTS = -s pal -strict experimental -sws_flags neighbor+bitexact
+fate-vsynth%-avui: DECOPTS = -sws_flags neighbor+bitexact
+fate-vsynth%-avui: FMT = mov
+
+FATE_VCODEC-$(call ENCDEC, WMV1, AVI) += wmv1
+fate-vsynth%-wmv1: ENCOPTS = -qscale 10
+
+FATE_VCODEC-$(call ENCDEC, WMV2, AVI) += wmv2
+fate-vsynth%-wmv2: ENCOPTS = -qscale 10
+
+FATE_VCODEC-$(call ENCDEC, RAWVIDEO, AVI) += yuv
+fate-vsynth%-yuv: CODEC = rawvideo
+
+FATE_VCODEC-$(call ENCDEC, YUV4, AVI) += yuv4
+
+FATE_VCODEC-$(call ENCDEC, Y41P, AVI) += y41p
+
+FATE_VCODEC-$(call ENCDEC, ZLIB, AVI) += zlib
+
+FATE_VCODEC += $(FATE_VCODEC-yes)
+FATE_VSYNTH1 = $(FATE_VCODEC:%=fate-vsynth1-%)
+FATE_VSYNTH2 = $(FATE_VCODEC:%=fate-vsynth2-%)
+
+$(FATE_VSYNTH1): tests/data/vsynth1.yuv
+$(FATE_VSYNTH2): tests/data/vsynth2.yuv
+
+FATE_AVCONV += $(FATE_VSYNTH1) $(FATE_VSYNTH2)
+
+fate-vsynth1: $(FATE_VSYNTH1)
+fate-vsynth2: $(FATE_VSYNTH2)
+fate-vcodec: fate-vsynth1 fate-vsynth2
diff --git a/ffmpeg/tests/fate/video.mak b/ffmpeg/tests/fate/video.mak
new file mode 100644
index 0000000..6090074
--- /dev/null
+++ b/ffmpeg/tests/fate/video.mak
@@ -0,0 +1,287 @@
+FATE_4XM += fate-4xm-1
+fate-4xm-1: CMD = framecrc -i $(SAMPLES)/4xm/version1.4xm -pix_fmt rgb24 -an
+
+FATE_4XM += fate-4xm-2
+fate-4xm-2: CMD = framecrc -i $(SAMPLES)/4xm/version2.4xm -pix_fmt rgb24 -an
+
+FATE_VIDEO-$(call DEMDEC, FOURXM, FOURXM) += $(FATE_4XM)
+fate-4xm: $(FATE_4XM)
+
+FATE_VIDEO-$(call DEMDEC, AVI, AASC) += fate-aasc
+fate-aasc: CMD = framecrc -i $(SAMPLES)/aasc/AASC-1.5MB.AVI -pix_fmt rgb24
+
+FATE_VIDEO-$(call DEMDEC, MM, MMVIDEO) += fate-alg-mm
+fate-alg-mm: CMD = framecrc -i $(SAMPLES)/alg-mm/ibmlogo.mm -an -pix_fmt rgb24
+
+FATE_VIDEO-$(call DEMDEC, AVI, AMV) += fate-amv
+fate-amv: CMD = framecrc -idct simple -i $(SAMPLES)/amv/MTV_high_res_320x240_sample_Penguin_Joke_MTV_from_WMV.amv -t 10 -an
+
+FATE_VIDEO-$(call DEMDEC, TTY, ANSI) += fate-ansi
+fate-ansi: CMD = framecrc -chars_per_frame 44100 -i $(SAMPLES)/ansi/TRE-IOM5.ANS -pix_fmt rgb24
+
+FATE_VIDEO-$(call DEMDEC, TTY, ANSI) += fate-ansi256
+fate-ansi256: CMD = framecrc -chars_per_frame 44100 -i $(SAMPLES)/ansi/ansi256.ans -pix_fmt rgb24
+
+FATE_VIDEO-$(call DEMDEC, RPL, ESCAPE124) += fate-armovie-escape124
+fate-armovie-escape124: CMD = framecrc -i $(SAMPLES)/rpl/ESCAPE.RPL -pix_fmt rgb24
+
+FATE_VIDEO-$(call DEMDEC, AVI, AURA) += fate-auravision-v1
+fate-auravision-v1: CMD = framecrc -i $(SAMPLES)/auravision/SOUVIDEO.AVI -an
+
+FATE_VIDEO-$(call DEMDEC, AVI, AURA2) += fate-auravision-v2
+fate-auravision-v2: CMD = framecrc -i $(SAMPLES)/auravision/salma-hayek-in-ugly-betty-partial-avi -an
+
+FATE_VIDEO-$(call DEMDEC, BETHSOFTVID, BETHSOFTVID) += fate-bethsoft-vid
+fate-bethsoft-vid: CMD = framecrc -i $(SAMPLES)/bethsoft-vid/ANIM0001.VID -t 5 -pix_fmt rgb24
+
+FATE_VIDEO-$(call DEMDEC, BFI, BFI) += fate-bfi
+fate-bfi: CMD = framecrc -i $(SAMPLES)/bfi/2287.bfi -pix_fmt rgb24
+
+FATE_BINK_VIDEO += fate-bink-video-b
+fate-bink-video-b: CMD = framecrc -i $(SAMPLES)/bink/RISE.BIK -frames 30
+
+FATE_BINK_VIDEO += fate-bink-video-f
+fate-bink-video-f: CMD = framecrc -i $(SAMPLES)/bink/hol2br.bik
+
+FATE_BINK_VIDEO += fate-bink-video-i
+fate-bink-video-i: CMD = framecrc -i $(SAMPLES)/bink/RazOnBull.bik -an
+
+FATE_VIDEO-$(call DEMDEC, BINK, BINK) += $(FATE_BINK_VIDEO)
+
+FATE_VIDEO-$(call DEMDEC, BMV, BMV_VIDEO) += fate-bmv-video
+fate-bmv-video: CMD = framecrc -i $(SAMPLES)/bmv/SURFING-partial.BMV -pix_fmt rgb24 -an
+
+FATE_VIDEO-$(call DEMDEC, MPEGPS, CAVS) += fate-cavs
+fate-cavs: CMD = framecrc -i $(SAMPLES)/cavs/cavs.mpg -an
+
+FATE_VIDEO-$(call DEMDEC, CDG, CDGRAPHICS) += fate-cdgraphics
+fate-cdgraphics: CMD = framecrc -i $(SAMPLES)/cdgraphics/BrotherJohn.cdg -pix_fmt rgb24 -t 1
+
+FATE_VIDEO-$(call DEMDEC, AVI, CLJR) += fate-cljr
+fate-cljr: CMD = framecrc -i $(SAMPLES)/cljr/testcljr-partial.avi
+
+FATE_VIDEO-$(call DEMDEC, AVI, PNG) += fate-corepng
+fate-corepng: CMD = framecrc -i $(SAMPLES)/png1/corepng-partial.avi
+
+FATE_VIDEO-$(call DEMDEC, AVS, AVS) += fate-creatureshock-avs
+fate-creatureshock-avs: CMD = framecrc -i $(SAMPLES)/creatureshock-avs/OUTATIME.AVS -pix_fmt rgb24
+
+FATE_CVID-$(CONFIG_MOV_DEMUXER) += fate-cvid-palette
+fate-cvid-palette: CMD = framecrc -i $(SAMPLES)/cvid/catfight-cvid-pal8-partial.mov -pix_fmt rgb24 -an
+
+FATE_CVID-$(CONFIG_AVI_DEMUXER) += fate-cvid-partial
+fate-cvid-partial: CMD = framecrc -i $(SAMPLES)/cvid/laracroft-cinepak-partial.avi -an
+
+FATE_CVID-$(CONFIG_AVI_DEMUXER) += fate-cvid-grayscale
+fate-cvid-grayscale: CMD = framecrc -i $(SAMPLES)/cvid/pcitva15.avi -an
+
+FATE_VIDEO-$(CONFIG_CINEPAK_DECODER) += $(FATE_CVID-yes)
+fate-cvid: $(FATE_CVID-yes)
+
+FATE_VIDEO-$(call DEMDEC, C93, C93) += fate-cyberia-c93
+fate-cyberia-c93: CMD = framecrc -i $(SAMPLES)/cyberia-c93/intro1.c93 -t 3 -pix_fmt rgb24
+
+FATE_VIDEO-$(call DEMDEC, AVI, CYUV) += fate-cyuv
+fate-cyuv: CMD = framecrc -i $(SAMPLES)/cyuv/cyuv.avi
+
+FATE_VIDEO-$(call DEMDEC, DSICIN, DSICINVIDEO) += fate-delphine-cin-video
+fate-delphine-cin-video: CMD = framecrc -i $(SAMPLES)/delphine-cin/LOGO-partial.CIN -pix_fmt rgb24 -an
+
+FATE_VIDEO-$(call DEMDEC, ANM, ANM) += fate-deluxepaint-anm
+fate-deluxepaint-anm: CMD = framecrc -i $(SAMPLES)/deluxepaint-anm/INTRO1.ANM -pix_fmt rgb24
+
+FATE_VIDEO-$(call DEMDEC, DIRAC, DIRAC) += fate-dirac
+fate-dirac: CMD = framecrc -i $(SAMPLES)/dirac/vts.profile-main.drc
+
+FATE_TRUEMOTION1 += fate-truemotion1-15
+fate-truemotion1-15: CMD = framecrc -i $(SAMPLES)/duck/phant2-940.duk -pix_fmt rgb24 -an
+
+FATE_TRUEMOTION1 += fate-truemotion1-24
+fate-truemotion1-24: CMD = framecrc -i $(SAMPLES)/duck/sonic3dblast_intro-partial.avi -pix_fmt rgb24 -an
+
+FATE_VIDEO-$(call DEMDEC, AVI, TRUEMOTION1) += $(FATE_TRUEMOTION1)
+fate-truemotion1: $(FATE_TRUEMOTION1)
+
+FATE_VIDEO-$(call DEMDEC, AVI, TRUEMOTION2) += fate-truemotion2
+fate-truemotion2: CMD = framecrc -i $(SAMPLES)/duck/tm20.avi
+
+FATE_DXA += fate-dxa-feeble
+fate-dxa-feeble: CMD = framecrc -i $(SAMPLES)/dxa/meetsquid.dxa -t 2 -pix_fmt rgb24 -an
+
+FATE_DXA += fate-dxa-scummvm
+fate-dxa-scummvm: CMD = framecrc -i $(SAMPLES)/dxa/scummvm.dxa -pix_fmt rgb24
+
+FATE_VIDEO-$(call DEMDEC, DXA, DXA) += $(FATE_DXA)
+fate-dxa: $(FATE_DXA)
+
+FATE_VIDEO-$(call DEMDEC, SEGAFILM, CINEPAK) += fate-film-cvid
+fate-film-cvid: CMD = framecrc -i $(SAMPLES)/film/logo-capcom.cpk -an
+
+FATE_FLIC += fate-flic-af11-palette-change
+fate-flic-af11-palette-change: CMD = framecrc -i $(SAMPLES)/fli/fli-engines.fli -t 3.3 -pix_fmt rgb24
+
+FATE_FLIC += fate-flic-af12
+fate-flic-af12: CMD = framecrc -i $(SAMPLES)/fli/jj00c2.fli -pix_fmt rgb24
+
+FATE_FLIC += fate-flic-magiccarpet
+fate-flic-magiccarpet: CMD = framecrc -i $(SAMPLES)/fli/intel.dat -pix_fmt rgb24
+
+FATE_VIDEO-$(call DEMDEC, FLIC, FLIC) += $(FATE_FLIC)
+fate-flic: $(FATE_FLIC)
+
+FATE_VIDEO-$(call DEMDEC, AVI, FRWU) += fate-frwu
+fate-frwu: CMD = framecrc -i $(SAMPLES)/frwu/frwu.avi
+
+FATE_VIDEO-$(call DEMDEC, IDCIN, IDCIN) += fate-id-cin-video
+fate-id-cin-video: CMD = framecrc -i $(SAMPLES)/idcin/idlog-2MB.cin -pix_fmt rgb24
+
+FATE_VIDEO-$(call ENCDEC, ROQ PGMYUV, ROQ IMAGE2) += fate-idroq-video-encode
+fate-idroq-video-encode: CMD = md5 -f image2 -vcodec pgmyuv -i $(SAMPLES)/ffmpeg-synthetic/vsynth1/%02d.pgm -sws_flags +bitexact -vf pad=512:512:80:112 -f roq -t 0.2
+
+FATE_IFF-$(CONFIG_IFF_BYTERUN1_DECODER) += fate-iff-byterun1
+fate-iff-byterun1: CMD = framecrc -i $(SAMPLES)/iff/ASH.LBM -pix_fmt rgb24
+
+FATE_IFF-$(CONFIG_EIGHTSVX_FIB_DECODER) += fate-iff-fibonacci
+fate-iff-fibonacci: CMD = md5 -i $(SAMPLES)/iff/dasboot-in-compressed -f s16le
+
+FATE_IFF-$(CONFIG_IFF_ILBM_DECODER) += fate-iff-ilbm
+fate-iff-ilbm: CMD = framecrc -i $(SAMPLES)/iff/lms-matriks.ilbm -pix_fmt rgb24
+
+FATE_VIDEO-$(CONFIG_IFF_DEMUXER) += $(FATE_IFF-yes)
+fate-iff: $(FATE_IFF-yes)
+
+FATE_VIDEO-$(call DEMDEC, IPMOVIE, INTERPLAY_VIDEO) += fate-interplay-mve-8bit
+fate-interplay-mve-8bit: CMD = framecrc -i $(SAMPLES)/interplay-mve/interplay-logo-2MB.mve -pix_fmt rgb24 -an
+
+FATE_VIDEO-$(call DEMDEC, IPMOVIE, INTERPLAY_VIDEO) += fate-interplay-mve-16bit
+fate-interplay-mve-16bit: CMD = framecrc -i $(SAMPLES)/interplay-mve/descent3-level5-16bit-partial.mve -pix_fmt rgb24 -an
+
+FATE_VIDEO-$(call DEMDEC, JV, JV) += fate-jv
+fate-jv: CMD = framecrc -i $(SAMPLES)/jv/intro.jv -pix_fmt rgb24 -an
+
+FATE_VIDEO-$(call DEMDEC, AVI, KGV1) += fate-kgv1
+fate-kgv1: CMD = framecrc -i $(SAMPLES)/kega/kgv1.avi -pix_fmt rgb555le -an
+
+FATE_VIDEO-$(call DEMDEC, AVI, KMVC) += fate-kmvc
+fate-kmvc: CMD = framecrc -i $(SAMPLES)/KMVC/LOGO1.AVI -an -t 3 -pix_fmt rgb24
+
+FATE_VIDEO-$(call DEMDEC, EA, MDEC) += fate-mdec
+fate-mdec: CMD = framecrc -idct simple -i $(SAMPLES)/ea-dct/NFS2Esprit-partial.dct -an
+
+FATE_VIDEO-$(call DEMDEC, STR, MDEC) += fate-mdec-v3
+fate-mdec-v3: CMD = framecrc -idct simple -i $(SAMPLES)/psx-str/abc000_cut.str -an
+
+FATE_VIDEO-$(call DEMDEC, MSNWC_TCP, MIMIC) += fate-mimic
+fate-mimic: CMD = framecrc -idct simple -i $(SAMPLES)/mimic/mimic2-womanloveffmpeg.cam
+
+FATE_VIDEO-$(call DEMDEC, MOV, MJPEGB) += fate-mjpegb
+fate-mjpegb: CMD = framecrc -idct simple -flags +bitexact -i $(SAMPLES)/mjpegb/mjpegb_part.mov -an
+
+FATE_VIDEO-$(call DEMDEC, MVI, MOTIONPIXELS) += fate-motionpixels
+fate-motionpixels: CMD = framecrc -i $(SAMPLES)/motion-pixels/INTRO-partial.MVI -an -pix_fmt rgb24 -vframes 111
+
+FATE_VIDEO-$(call DEMDEC, MPEGTS, MPEG2VIDEO) += fate-mpeg2-field-enc
+fate-mpeg2-field-enc: CMD = framecrc -flags +bitexact -idct simple -i $(SAMPLES)/mpeg2/mpeg2_field_encoding.ts -an -vframes 30
+
+FATE_VIDEO-$(call DEMDEC, MXG, MXPEG) += fate-mxpeg
+fate-mxpeg: CMD = framecrc -idct simple -flags +bitexact -i $(SAMPLES)/mxpeg/m1.mxg -an
+
+# FIXME dropped frames in this test because of coarse timebase
+FATE_NUV += fate-nuv-rtjpeg
+fate-nuv-rtjpeg: CMD = framecrc -idct simple -i $(SAMPLES)/nuv/Today.nuv -an
+
+FATE_NUV += fate-nuv-rtjpeg-fh
+fate-nuv-rtjpeg-fh: CMD = framecrc -idct simple -i $(SAMPLES)/nuv/rtjpeg_frameheader.nuv -an
+
+FATE_VIDEO-$(call DEMDEC, NUV, NUV) += $(FATE_NUV)
+fate-nuv: $(FATE_NUV)
+
+FATE_VIDEO-$(call DEMDEC, PAF, PAF_VIDEO) += fate-paf-video
+fate-paf-video: CMD = framecrc -i $(SAMPLES)/paf/hod1-partial.paf -pix_fmt rgb24 -an
+
+FATE_VIDEO-$(call DEMDEC, AVI, QPEG) += fate-qpeg
+fate-qpeg: CMD = framecrc -i $(SAMPLES)/qpeg/Clock.avi -an -pix_fmt rgb24
+
+FATE_VIDEO-$(call DEMDEC, AVI, R210) += fate-r210
+fate-r210: CMD = framecrc -i $(SAMPLES)/r210/r210.avi -pix_fmt rgb48le
+
+FATE_VIDEO-$(call DEMDEC, RL2, RL2) += fate-rl2
+fate-rl2: CMD = framecrc -i $(SAMPLES)/rl2/Z4915300.RL2 -pix_fmt rgb24 -an
+
+FATE_VIDEO-$(call DEMDEC, ROQ, ROQ) += fate-roqvideo
+fate-roqvideo: CMD = framecrc -i $(SAMPLES)/idroq/idlogo.roq -an
+
+FATE_VIDEO-$(call DEMDEC, SMUSH, SANM) += fate-sanm
+fate-sanm: CMD = framecrc -i $(SAMPLES)/smush/ronin_part.znm -an -pix_fmt rgb24
+
+FATE_VIDEO-$(call DEMDEC, VMD, VMDVIDEO) += fate-sierra-vmd-video
+fate-sierra-vmd-video: CMD = framecrc -i $(SAMPLES)/vmd/12.vmd -pix_fmt rgb24 -an
+
+FATE_VIDEO-$(call DEMDEC, SMACKER, SMACKER) += fate-smacker-video
+fate-smacker-video: CMD = framecrc -i $(SAMPLES)/smacker/wetlogo.smk -pix_fmt rgb24 -an
+
+FATE_VIDEO-$(call DEMDEC, MOV, SMC) += fate-smc
+fate-smc: CMD = framecrc -i $(SAMPLES)/smc/cass_schi.qt -pix_fmt rgb24
+
+FATE_VIDEO-$(call DEMDEC, AVI, SP5X) += fate-sp5x
+fate-sp5x: CMD = framecrc -idct simple -i $(SAMPLES)/sp5x/sp5x_problem.avi
+
+FATE_VIDEO-$(call DEMDEC, THP, THP) += fate-thp
+fate-thp: CMD = framecrc -idct simple -i $(SAMPLES)/thp/pikmin2-opening1-partial.thp -an
+
+FATE_VIDEO-$(call DEMDEC, TIERTEXSEQ, TIERTEXSEQVIDEO) += fate-tiertex-seq
+fate-tiertex-seq: CMD = framecrc -i $(SAMPLES)/tiertex-seq/Gameover.seq -pix_fmt rgb24
+
+FATE_VIDEO-$(call DEMDEC, TMV, TMV) += fate-tmv
+fate-tmv: CMD = framecrc -i $(SAMPLES)/tmv/pop-partial.tmv -pix_fmt rgb24
+
+FATE_TXD += fate-txd-16bpp
+fate-txd-16bpp: CMD = framecrc -i $(SAMPLES)/txd/misc.txd -pix_fmt bgra -an
+
+FATE_TXD += fate-txd-pal8
+fate-txd-pal8: CMD = framecrc -i $(SAMPLES)/txd/outro.txd -pix_fmt rgb24 -an
+
+FATE_VIDEO-$(call DEMDEC, TXD, TXD) += $(FATE_TXD)
+fate-txd: $(FATE_TXD)
+
+FATE_VIDEO-$(call DEMDEC, AVI, ULTI) += fate-ulti
+fate-ulti: CMD = framecrc -i $(SAMPLES)/ulti/hit12w.avi -an
+
+FATE_VIDEO-$(call DEMDEC, AVI, V210) += fate-v210
+fate-v210: CMD = framecrc -i $(SAMPLES)/v210/v210_720p-partial.avi -pix_fmt yuv422p16be -an
+
+FATE_VIDEO-$(call DEMDEC, MOV, V410) += fate-v410dec
+fate-v410dec: CMD = framecrc -i $(SAMPLES)/v410/lenav410.mov -pix_fmt yuv444p10le
+
+FATE_VIDEO-$(call ENCDEC, V410 PGMYUV, AVI IMAGE2) += fate-v410enc
+fate-v410enc: tests/vsynth1/00.pgm
+fate-v410enc: CMD = md5 -f image2 -vcodec pgmyuv -i $(TARGET_PATH)/tests/vsynth1/%02d.pgm -flags +bitexact -vcodec v410 -f avi
+
+FATE_VIDEO-$(call DEMDEC, SIFF, VB) += fate-vb
+fate-vb: CMD = framecrc -i $(SAMPLES)/SIFF/INTRO_B.VB -t 3 -pix_fmt rgb24 -an
+
+FATE_VIDEO-$(call DEMDEC, AVI, VCR1) += fate-vcr1
+fate-vcr1: CMD = framecrc -i $(SAMPLES)/vcr1/VCR1test.avi -an
+
+FATE_VIDEO-$(call DEMDEC, AVI, XL) += fate-videoxl
+fate-videoxl: CMD = framecrc -i $(SAMPLES)/vixl/pig-vixl.avi
+
+FATE_VIDEO-$(call DEMDEC, WSVQA, VQA) += fate-vqa-cc
+fate-vqa-cc: CMD = framecrc -i $(SAMPLES)/vqa/cc-demo1-partial.vqa -pix_fmt rgb24 -an
+
+FATE_VIDEO-$(call DEMDEC, WC3, XAN_WC3) += fate-wc3movie-xan
+fate-wc3movie-xan: CMD = framecrc -i $(SAMPLES)/wc3movie/SC_32-part.MVE -pix_fmt rgb24
+
+FATE_VIDEO-$(call DEMDEC, AVI, WNV1) += fate-wnv1
+fate-wnv1: CMD = framecrc -i $(SAMPLES)/wnv1/wnv1-codec.avi -an
+
+FATE_VIDEO-$(call DEMDEC, YOP, YOP) += fate-yop
+fate-yop: CMD = framecrc -i $(SAMPLES)/yop/test1.yop -pix_fmt rgb24 -an
+
+FATE_VIDEO-$(call DEMDEC, AVI, XAN_WC4) += fate-xxan-wc4
+fate-xxan-wc4: CMD = framecrc -i $(SAMPLES)/wc4-xan/wc4trailer-partial.avi -an
+
+FATE_VIDEO += $(FATE_VIDEO-yes)
+
+FATE_SAMPLES_FFMPEG += $(FATE_VIDEO)
+fate-video: $(FATE_VIDEO)
diff --git a/ffmpeg/tests/fate/voice.mak b/ffmpeg/tests/fate/voice.mak
new file mode 100644
index 0000000..f27be18
--- /dev/null
+++ b/ffmpeg/tests/fate/voice.mak
@@ -0,0 +1,78 @@
+FATE_G722-$(call DEMDEC, G722, ADPCM_G722) += fate-g722dec-1
+fate-g722dec-1: CMD = framecrc -i $(SAMPLES)/g722/conf-adminmenu-162.g722
+
+FATE_G722-$(call ENCMUX, ADPCM_G722, WAV) += 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 md5 s16le $(SRC) -c:a g722
+
+FATE_VOICE-yes += $(FATE_G722-yes)
+fate-g722: $(FATE_G722)
+
+FATE_G723_1 += fate-g723_1-dec-1
+fate-g723_1-dec-1: CMD = framecrc -postfilter 0 -i $(SAMPLES)/g723_1/ineqd53.tco
+
+FATE_G723_1 += fate-g723_1-dec-2
+fate-g723_1-dec-2: CMD = framecrc -postfilter 0 -i $(SAMPLES)/g723_1/overd53.tco
+
+FATE_G723_1 += fate-g723_1-dec-3
+fate-g723_1-dec-3: CMD = framecrc -postfilter 1 -i $(SAMPLES)/g723_1/overd63p.tco
+
+FATE_G723_1 += fate-g723_1-dec-4
+fate-g723_1-dec-4: CMD = framecrc -postfilter 0 -i $(SAMPLES)/g723_1/pathd53.tco
+
+FATE_G723_1 += fate-g723_1-dec-5
+fate-g723_1-dec-5: CMD = framecrc -postfilter 1 -i $(SAMPLES)/g723_1/pathd63p.tco
+
+FATE_G723_1 += fate-g723_1-dec-6
+fate-g723_1-dec-6: CMD = framecrc -postfilter 1 -i $(SAMPLES)/g723_1/tamed63p.tco
+
+FATE_G723_1 += fate-g723_1-dec-7
+fate-g723_1-dec-7: CMD = framecrc -postfilter 1 -i $(SAMPLES)/g723_1/dtx63b.tco
+
+FATE_G723_1 += fate-g723_1-dec-8
+fate-g723_1-dec-8: CMD = framecrc -postfilter 1 -i $(SAMPLES)/g723_1/dtx63e.tco
+
+FATE_G723_1-$(call DEMDEC, G723_1, G723_1) += $(FATE_G723_1)
+FATE_SAMPLES_AVCONV += $(FATE_G723_1-yes)
+fate-g723_1: $(FATE_G723_1)
+
+FATE_G726 += fate-g726-encode-2bit
+fate-g726-encode-2bit: CMD = enc_dec_pcm wav md5 s16le $(SRC) -c:a g726 -b:a 16k
+
+FATE_G726 += fate-g726-encode-3bit
+fate-g726-encode-3bit: CMD = enc_dec_pcm wav md5 s16le $(SRC) -c:a g726 -b:a 24k
+
+FATE_G726 += fate-g726-encode-4bit
+fate-g726-encode-4bit: CMD = enc_dec_pcm wav md5 s16le $(SRC) -c:a g726 -b:a 32k
+
+FATE_G726 += fate-g726-encode-5bit
+fate-g726-encode-5bit: CMD = enc_dec_pcm wav md5 s16le $(SRC) -c:a g726 -b:a 40k
+
+$(FATE_G726): tests/data/asynth-8000-1.wav
+$(FATE_G726): SRC = tests/data/asynth-8000-1.wav
+
+FATE_VOICE-$(call ENCMUX, ADPCM_G726, WAV) += $(FATE_G726)
+fate-g726: $(FATE_G726)
+
+FATE_GSM-$(call DEMDEC, WAV, GSM) += fate-gsm-ms
+fate-gsm-ms: CMD = framecrc -i $(SAMPLES)/gsm/ciao.wav
+
+FATE_GSM-$(call DEMDEC, MOV, GSM) += fate-gsm-toast
+fate-gsm-toast: CMD = framecrc -i $(SAMPLES)/gsm/sample-gsm-8000.mov -t 10
+
+FATE_VOICE-yes += $(FATE_GSM-yes)
+fate-gsm: $(FATE_GSM)
+
+FATE_VOICE-$(call DEMDEC, QCP, QCELP) += fate-qcelp
+fate-qcelp: CMD = pcm -i $(SAMPLES)/qcp/0036580847.QCP
+fate-qcelp: CMP = oneoff
+fate-qcelp: REF = $(SAMPLES)/qcp/0036580847.pcm
+
+FATE_VOICE-$(call DEMDEC, WAV, TRUESPEECH) += fate-truespeech
+fate-truespeech: CMD = pcm -i $(SAMPLES)/truespeech/a6.wav
+fate-truespeech: CMP = oneoff
+fate-truespeech: REF = $(SAMPLES)/truespeech/a6.pcm
+
+FATE_SAMPLES_FFMPEG += $(FATE_VOICE-yes)
+fate-voice: $(FATE_VOICE-yes)
diff --git a/ffmpeg/tests/fate/vorbis.mak b/ffmpeg/tests/fate/vorbis.mak
new file mode 100644
index 0000000..39a9724
--- /dev/null
+++ b/ffmpeg/tests/fate/vorbis.mak
@@ -0,0 +1,85 @@
+FATE_VORBIS += fate-vorbis-1
+fate-vorbis-1: CMD = pcm -i $(SAMPLES)/vorbis/1.0.1-test_small.ogg
+fate-vorbis-1: REF = $(SAMPLES)/vorbis/1.0.1-test_small.pcm
+
+FATE_VORBIS += fate-vorbis-2
+fate-vorbis-2: CMD = pcm -i $(SAMPLES)/vorbis/1.0-test_small.ogg
+fate-vorbis-2: REF = $(SAMPLES)/vorbis/1.0-test_small.pcm
+
+FATE_VORBIS += fate-vorbis-3
+fate-vorbis-3: CMD = pcm -i $(SAMPLES)/vorbis/beta3-test_small.ogg
+fate-vorbis-3: REF = $(SAMPLES)/vorbis/beta3-test_small.pcm
+
+FATE_VORBIS += fate-vorbis-4
+fate-vorbis-4: CMD = pcm -i $(SAMPLES)/vorbis/beta4-test_small.ogg
+fate-vorbis-4: REF = $(SAMPLES)/vorbis/beta4-test_small.pcm
+
+FATE_VORBIS += fate-vorbis-5
+fate-vorbis-5: CMD = pcm -i $(SAMPLES)/vorbis/chain-test1_small.ogg
+fate-vorbis-5: REF = $(SAMPLES)/vorbis/chain-test1_small.pcm
+
+FATE_VORBIS += fate-vorbis-6
+fate-vorbis-6: CMD = pcm -i $(SAMPLES)/vorbis/chain-test2_small.ogg
+fate-vorbis-6: REF = $(SAMPLES)/vorbis/chain-test2_small.pcm
+
+FATE_VORBIS += fate-vorbis-7
+fate-vorbis-7: CMD = pcm -i $(SAMPLES)/vorbis/highrate-test_small.ogg
+fate-vorbis-7: REF = $(SAMPLES)/vorbis/highrate-test_small.pcm
+
+FATE_VORBIS += fate-vorbis-8
+fate-vorbis-8: CMD = pcm -i $(SAMPLES)/vorbis/lsp-test2_small.ogg
+fate-vorbis-8: REF = $(SAMPLES)/vorbis/lsp-test2_small.pcm
+
+FATE_VORBIS += fate-vorbis-9
+fate-vorbis-9: CMD = pcm -i $(SAMPLES)/vorbis/lsp-test3_small.ogg
+fate-vorbis-9: REF = $(SAMPLES)/vorbis/lsp-test3_small.pcm
+
+FATE_VORBIS += fate-vorbis-10
+fate-vorbis-10: CMD = pcm -i $(SAMPLES)/vorbis/lsp-test4_small.ogg
+fate-vorbis-10: REF = $(SAMPLES)/vorbis/lsp-test4_small.pcm
+
+FATE_VORBIS += fate-vorbis-11
+fate-vorbis-11: CMD = pcm -i $(SAMPLES)/vorbis/lsp-test_small.ogg
+fate-vorbis-11: REF = $(SAMPLES)/vorbis/lsp-test_small.pcm
+
+FATE_VORBIS += fate-vorbis-12
+fate-vorbis-12: CMD = pcm -i $(SAMPLES)/vorbis/mono_small.ogg
+fate-vorbis-12: REF = $(SAMPLES)/vorbis/mono_small.pcm
+
+FATE_VORBIS += fate-vorbis-13
+fate-vorbis-13: CMD = pcm -i $(SAMPLES)/vorbis/moog_small.ogg
+fate-vorbis-13: REF = $(SAMPLES)/vorbis/moog_small.pcm
+fate-vorbis-13: FUZZ = 2
+
+FATE_VORBIS += fate-vorbis-14
+fate-vorbis-14: CMD = pcm -i $(SAMPLES)/vorbis/rc1-test_small.ogg
+fate-vorbis-14: REF = $(SAMPLES)/vorbis/rc1-test_small.pcm
+
+FATE_VORBIS += fate-vorbis-15
+fate-vorbis-15: CMD = pcm -i $(SAMPLES)/vorbis/rc2-test2_small.ogg
+fate-vorbis-15: REF = $(SAMPLES)/vorbis/rc2-test2_small.pcm
+
+FATE_VORBIS += fate-vorbis-16
+fate-vorbis-16: CMD = pcm -i $(SAMPLES)/vorbis/rc2-test_small.ogg
+fate-vorbis-16: REF = $(SAMPLES)/vorbis/rc2-test_small.pcm
+
+FATE_VORBIS += fate-vorbis-17
+fate-vorbis-17: CMD = pcm -i $(SAMPLES)/vorbis/rc3-test_small.ogg
+fate-vorbis-17: REF = $(SAMPLES)/vorbis/rc3-test_small.pcm
+
+FATE_VORBIS += fate-vorbis-18
+fate-vorbis-18: CMD = pcm -i $(SAMPLES)/vorbis/sleepzor_small.ogg
+fate-vorbis-18: REF = $(SAMPLES)/vorbis/sleepzor_small.pcm
+fate-vorbis-18: FUZZ = 2
+
+FATE_VORBIS += fate-vorbis-19
+fate-vorbis-19: CMD = pcm -i $(SAMPLES)/vorbis/test-short2_small.ogg
+fate-vorbis-19: REF = $(SAMPLES)/vorbis/test-short2_small.pcm
+
+FATE_VORBIS += fate-vorbis-20
+fate-vorbis-20: CMD = pcm -i $(SAMPLES)/vorbis/6.ogg
+fate-vorbis-20: REF = $(SAMPLES)/vorbis/6.pcm
+
+FATE_SAMPLES_AVCONV-$(call DEMDEC, OGG, VORBIS) += $(FATE_VORBIS)
+fate-vorbis: $(FATE_VORBIS)
+$(FATE_VORBIS): CMP = oneoff
diff --git a/ffmpeg/tests/fate/vpx.mak b/ffmpeg/tests/fate/vpx.mak
new file mode 100644
index 0000000..061a1e8
--- /dev/null
+++ b/ffmpeg/tests/fate/vpx.mak
@@ -0,0 +1,56 @@
+FATE_VP3-$(call DEMDEC, MATROSKA, THEORA) += fate-theora-coeff-level64
+fate-theora-coeff-level64: CMD = framecrc -i $(SAMPLES)/vp3/coeff_level64.mkv
+
+FATE_VP3-$(call DEMDEC, AVI, VP3) += fate-vp31
+fate-vp31: CMD = framecrc -i $(SAMPLES)/vp3/vp31.avi
+
+FATE_SAMPLES_AVCONV += $(FATE_VP3-yes)
+fate-vp3: $(FATE_VP3-yes)
+
+FATE_SAMPLES_AVCONV-$(call DEMDEC, AVI, VP5) += fate-vp5
+fate-vp5: CMD = framecrc -i $(SAMPLES)/vp5/potter512-400-partial.avi -an
+
+FATE_VP6-$(call DEMDEC, EA, VP6) += fate-vp60
+fate-vp60: CMD = framecrc -i $(SAMPLES)/ea-vp6/g36.vp6
+
+FATE_VP6-$(call DEMDEC, EA, VP6) += fate-vp61
+fate-vp61: CMD = framecrc -i $(SAMPLES)/ea-vp6/MovieSkirmishGondor.vp6 -t 4
+
+FATE_VP6-$(call DEMDEC, FLV, VP6A) += fate-vp6a
+fate-vp6a: CMD = framecrc -i $(SAMPLES)/flash-vp6/300x180-Scr-f8-056alpha.flv
+
+FATE_VP6-$(call DEMDEC, FLV, VP6F) += fate-vp6f
+fate-vp6f: CMD = framecrc -i $(SAMPLES)/flash-vp6/clip1024.flv
+
+FATE_VP8-$(call DEMDEC, FLV, VP8) += fate-vp8-alpha
+fate-vp8-alpha: CMD = framecrc -i $(SAMPLES)/vp8_alpha/vp8_video_with_alpha.webm -vcodec copy
+
+FATE_SAMPLES_AVCONV += $(FATE_VP6-yes)
+fate-vp6: $(FATE_VP6-yes)
+
+VP8_SUITE = 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017
+
+define FATE_VP8_SUITE
+FATE_VP8-$(CONFIG_IVF_DEMUXER) += fate-vp8-test-vector$(2)-$(1)
+fate-vp8-test-vector$(2)-$(1): CMD = framemd5 $(3) -i $(SAMPLES)/vp8-test-vectors-r1/vp80-00-comprehensive-$(1).ivf
+fate-vp8-test-vector$(2)-$(1): REF = $(SRC_PATH)/tests/ref/fate/vp8-test-vector-$(1)
+endef
+
+define FATE_VP8_FULL
+$(foreach N,$(VP8_SUITE),$(eval $(call FATE_VP8_SUITE,$(N),$(1),$(2))))
+
+# FIXME this file contains two frames with identical timestamps,
+# so ffmpeg drops one of them
+FATE_VP8-$(CONFIG_IVF_DEMUXER) += fate-vp8-sign-bias$(1)
+fate-vp8-sign-bias$(1): CMD = framemd5 $(2) -i $(SAMPLES)/vp8/sintel-signbias.ivf
+fate-vp8-sign-bias$(1): REF = $(SRC_PATH)/tests/ref/fate/vp8-sign-bias
+
+FATE_VP8-$(CONFIG_MATROSKA_DEMUXER) += fate-vp8-size-change$(1)
+fate-vp8-size-change$(1): CMD = framemd5 $(2) -flags +bitexact -i $(SAMPLES)/vp8/frame_size_change.webm -frames:v 30 -sws_flags bitexact+bilinear
+fate-vp8-size-change$(1): REF = $(SRC_PATH)/tests/ref/fate/vp8-size-change
+endef
+
+$(eval $(call FATE_VP8_FULL))
+$(eval $(call FATE_VP8_FULL,-emu-edge,-flags +emu_edge))
+FATE_SAMPLES_AVCONV-$(CONFIG_VP8_DECODER) += $(FATE_VP8-yes)
+fate-vp8: $(FATE_VP8-yes)
diff --git a/ffmpeg/tests/fate/vqf.mak b/ffmpeg/tests/fate/vqf.mak
new file mode 100644
index 0000000..67ee61f
--- /dev/null
+++ b/ffmpeg/tests/fate/vqf.mak
@@ -0,0 +1,12 @@
+FATE_VQF-$(call DEMDEC, VQF, TWINVQ) += fate-twinvq
+fate-twinvq: CMD = pcm -i $(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-demux: CMD = md5 -i $(SAMPLES)/vqf/achterba.vqf -acodec copy -f framecrc
+
+FATE_VQF += $(FATE_VQF-yes)
+
+FATE_SAMPLES_FFMPEG += $(FATE_VQF)
+fate-vqf: $(FATE_VQF)
diff --git a/ffmpeg/tests/fate/wavpack.mak b/ffmpeg/tests/fate/wavpack.mak
new file mode 100644
index 0000000..8a1c301
--- /dev/null
+++ b/ffmpeg/tests/fate/wavpack.mak
@@ -0,0 +1,92 @@
+# lossless
+
+FATE_WAVPACK += fate-wavpack-lossless-8bit
+fate-wavpack-lossless-8bit: CMD = md5 -i $(SAMPLES)/wavpack/lossless/8bit-partial.wv -f s8
+
+FATE_WAVPACK += fate-wavpack-lossless-12bit
+fate-wavpack-lossless-12bit: CMD = md5 -i $(SAMPLES)/wavpack/lossless/12bit-partial.wv -f s16le
+
+FATE_WAVPACK += fate-wavpack-lossless-16bit
+fate-wavpack-lossless-16bit: CMD = md5 -i $(SAMPLES)/wavpack/lossless/16bit-partial.wv -f s16le
+
+FATE_WAVPACK += fate-wavpack-lossless-24bit
+fate-wavpack-lossless-24bit: CMD = md5 -i $(SAMPLES)/wavpack/lossless/24bit-partial.wv -f s24le
+
+FATE_WAVPACK += fate-wavpack-lossless-32bit
+fate-wavpack-lossless-32bit: CMD = md5 -i $(SAMPLES)/wavpack/lossless/32bit_int-partial.wv -f s32le
+
+FATE_WAVPACK += fate-wavpack-lossless-float
+fate-wavpack-lossless-float: CMD = md5 -i $(SAMPLES)/wavpack/lossless/32bit_float-partial.wv -f f32le
+
+# lossy
+
+FATE_WAVPACK += fate-wavpack-lossy-8bit
+fate-wavpack-lossy-8bit: CMD = md5 -i $(SAMPLES)/wavpack/lossy/4.0_8-bit.wv -f s8
+
+FATE_WAVPACK += fate-wavpack-lossy-16bit
+fate-wavpack-lossy-16bit: CMD = md5 -i $(SAMPLES)/wavpack/lossy/4.0_16-bit.wv -f s16le
+
+FATE_WAVPACK += fate-wavpack-lossy-24bit
+fate-wavpack-lossy-24bit: CMD = md5 -i $(SAMPLES)/wavpack/lossy/4.0_24-bit.wv -f s24le
+
+FATE_WAVPACK += fate-wavpack-lossy-32bit
+fate-wavpack-lossy-32bit: CMD = md5 -i $(SAMPLES)/wavpack/lossy/4.0_32-bit_int.wv -f s32le
+
+FATE_WAVPACK += fate-wavpack-lossy-float
+fate-wavpack-lossy-float: CMD = md5 -i $(SAMPLES)/wavpack/lossy/2.0_32-bit_float.wv -f f32le
+
+# channel configurations
+
+FATE_WAVPACK += fate-wavpack-channels-monofloat
+fate-wavpack-channels-monofloat: CMD = md5 -i $(SAMPLES)/wavpack/num_channels/mono_float-partial.wv -f f32le
+
+FATE_WAVPACK += fate-wavpack-channels-monoint
+fate-wavpack-channels-monoint: CMD = md5 -i $(SAMPLES)/wavpack/num_channels/mono_16bit_int.wv -f s16le
+
+FATE_WAVPACK += fate-wavpack-channels-4.0
+fate-wavpack-channels-4.0: CMD = md5 -i $(SAMPLES)/wavpack/num_channels/edward_4.0_16bit-partial.wv -f s16le
+
+FATE_WAVPACK += fate-wavpack-channels-5.1
+fate-wavpack-channels-5.1: CMD = md5 -i $(SAMPLES)/wavpack/num_channels/panslab_sample_5.1_16bit-partial.wv -f s16le
+
+FATE_WAVPACK += fate-wavpack-channels-6.1
+fate-wavpack-channels-6.1: CMD = md5 -i $(SAMPLES)/wavpack/num_channels/eva_2.22_6.1_16bit-partial.wv -f s16le
+
+FATE_WAVPACK += fate-wavpack-channels-7.1
+fate-wavpack-channels-7.1: CMD = md5 -i $(SAMPLES)/wavpack/num_channels/panslab_sample_7.1_16bit-partial.wv -f s16le
+
+# speed modes
+
+FATE_WAVPACK += fate-wavpack-speed-default
+fate-wavpack-speed-default: CMD = md5 -i $(SAMPLES)/wavpack/speed_modes/default-partial.wv -f s16le
+
+FATE_WAVPACK += fate-wavpack-speed-fast
+fate-wavpack-speed-fast: CMD = md5 -i $(SAMPLES)/wavpack/speed_modes/fast-partial.wv -f s16le
+
+FATE_WAVPACK += fate-wavpack-speed-high
+fate-wavpack-speed-high: CMD = md5 -i $(SAMPLES)/wavpack/speed_modes/high-partial.wv -f s16le
+
+FATE_WAVPACK += fate-wavpack-speed-vhigh
+fate-wavpack-speed-vhigh: CMD = md5 -i $(SAMPLES)/wavpack/speed_modes/vhigh-partial.wv -f s16le
+
+# special cases
+
+FATE_WAVPACK += fate-wavpack-clipping
+fate-wavpack-clipping: CMD = md5 -i $(SAMPLES)/wavpack/special/clipping.wv -f s16le
+
+FATE_WAVPACK += fate-wavpack-cuesheet
+fate-wavpack-cuesheet: CMD = md5 -i $(SAMPLES)/wavpack/special/cue_sheet.wv -f s16le
+
+FATE_WAVPACK += fate-wavpack-falsestereo
+fate-wavpack-falsestereo: CMD = md5 -i $(SAMPLES)/wavpack/special/false_stereo.wv -f s16le
+
+FATE_WAVPACK += fate-wavpack-zerolsbs
+fate-wavpack-zerolsbs: CMD = md5 -i $(SAMPLES)/wavpack/special/zero_lsbs.wv -f s16le
+
+FATE_WAVPACK-$(call DEMDEC, WV, WAVPACK) += $(FATE_WAVPACK)
+
+FATE_WAVPACK-$(call DEMDEC, MATROSKA, WAVPACK) += fate-wavpack-matroskamode
+fate-wavpack-matroskamode: CMD = md5 -i $(SAMPLES)/wavpack/special/matroska_mode.mka -f s16le
+
+FATE_SAMPLES_AVCONV += $(FATE_WAVPACK-yes)
+fate-wavpack: $(FATE_WAVPACK-yes)
diff --git a/ffmpeg/tests/fate/wma.mak b/ffmpeg/tests/fate/wma.mak
new file mode 100644
index 0000000..b9a856c
--- /dev/null
+++ b/ffmpeg/tests/fate/wma.mak
@@ -0,0 +1,54 @@
+FATE_WMAPRO-$(call DEMDEC, ASF, WMAPRO) += fate-wmapro-2ch
+fate-wmapro-2ch: CMD = pcm -i $(SAMPLES)/wmapro/Beethovens_9th-1_small.wma
+fate-wmapro-2ch: REF = $(SAMPLES)/wmapro/Beethovens_9th-1_small.pcm
+
+FATE_WMAPRO-$(call DEMDEC, ASF, WMAPRO) += fate-wmapro-5.1
+fate-wmapro-5.1: CMD = pcm -i $(SAMPLES)/wmapro/latin_192_mulitchannel_cut.wma
+fate-wmapro-5.1: REF = $(SAMPLES)/wmapro/latin_192_mulitchannel_cut.pcm
+
+FATE_WMAPRO-$(call DEMDEC, MOV, WMAPRO) += fate-wmapro-ism
+fate-wmapro-ism: CMD = pcm -i $(SAMPLES)/isom/vc1-wmapro.ism -vn
+fate-wmapro-ism: REF = $(SAMPLES)/isom/vc1-wmapro.pcm
+
+$(FATE_WMAPRO-yes): CMP = oneoff
+
+FATE_SAMPLES_AVCONV += $(FATE_WMAPRO-yes)
+fate-wmapro: $(FATE_WMAPRO-yes)
+
+FATE_WMAVOICE-$(call DEMDEC, ASF, WMAVOICE) += fate-wmavoice-7k
+fate-wmavoice-7k: CMD = pcm -i $(SAMPLES)/wmavoice/streaming_CBR-7K.wma
+fate-wmavoice-7k: REF = $(SAMPLES)/wmavoice/streaming_CBR-7K.pcm
+fate-wmavoice-7k: FUZZ = 3
+
+FATE_WMAVOICE-$(call DEMDEC, ASF, WMAVOICE) += fate-wmavoice-11k
+fate-wmavoice-11k: CMD = pcm -i $(SAMPLES)/wmavoice/streaming_CBR-11K.wma
+fate-wmavoice-11k: REF = $(SAMPLES)/wmavoice/streaming_CBR-11K.pcm
+fate-wmavoice-11k: FUZZ = 3
+
+FATE_WMAVOICE-$(call DEMDEC, ASF, WMAVOICE) += fate-wmavoice-19k
+fate-wmavoice-19k: CMD = pcm -i $(SAMPLES)/wmavoice/streaming_CBR-19K.wma
+fate-wmavoice-19k: REF = $(SAMPLES)/wmavoice/streaming_CBR-19K.pcm
+fate-wmavoice-19k: FUZZ = 3
+
+$(FATE_WMAVOICE-yes): CMP = stddev
+
+FATE_SAMPLES_AVCONV += $(FATE_WMAVOICE-yes)
+fate-wmavoice: $(FATE_WMAVOICE-yes)
+
+FATE_WMA_ENCODE-$(call ENCDEC, WMAV1, ASF) += fate-wmav1-encode
+fate-wmav1-encode: CMD = enc_dec_pcm asf wav s16le $(REF) -c:a wmav1 -b:a 128k
+fate-wmav1-encode: CMP_SHIFT = -8192
+fate-wmav1-encode: CMP_TARGET = 291.06
+fate-wmav1-encode: SIZE_TOLERANCE = 4632
+
+FATE_WMA_ENCODE-$(call ENCDEC, WMAV2, ASF) += fate-wmav2-encode
+fate-wmav2-encode: CMD = enc_dec_pcm asf wav s16le $(REF) -c:a wmav2 -b:a 128k
+fate-wmav2-encode: CMP_SHIFT = -8192
+fate-wmav2-encode: CMP_TARGET = 258.32
+fate-wmav2-encode: SIZE_TOLERANCE = 4632
+
+$(FATE_WMA_ENCODE-yes): CMP = stddev
+$(FATE_WMA_ENCODE-yes): REF = $(SAMPLES)/audio-reference/luckynight_2ch_44kHz_s16.wav
+
+FATE_SAMPLES_AVCONV += $(FATE_WMA_ENCODE-yes)
+fate-wma-encode: $(FATE_WMA_ENCODE-yes)