1fate-acodec-%: CODEC = $(@:fate-acodec-%=%)
2fate-acodec-%: SRC = tests/data/asynth-44100-2.wav
3fate-acodec-%: CMD = enc_dec wav $(SRC) $(FMT) "-b:a 128k -c $(CODEC) $(ENCOPTS)" wav "-c pcm_s16le $(DECOPTS)" -keep
4fate-acodec-%: CMP_UNIT = 2
5fate-acodec-%: REF = $(SRC_PATH)/tests/ref/acodec/$(@:fate-acodec-%=%)
6
7FATE_ACODEC_PCM-$(call ENCDEC, PCM_ALAW,  WAV) += alaw
8FATE_ACODEC_PCM-$(call ENCDEC, PCM_MULAW, WAV) += mulaw
9FATE_ACODEC_PCM-$(call ENCDEC, PCM_S8,    MOV) += s8
10FATE_ACODEC_PCM-$(call ENCDEC, PCM_U8,    WAV) += u8
11FATE_ACODEC_PCM-$(call ENCDEC, PCM_S16BE, MOV) += s16be
12FATE_ACODEC_PCM-$(call ENCDEC, PCM_S16LE, WAV) += s16le
13FATE_ACODEC_PCM-$(call ENCDEC, PCM_U16BE, NUT) += u16be
14FATE_ACODEC_PCM-$(call ENCDEC, PCM_U16LE, NUT) += u16le
15FATE_ACODEC_PCM-$(call ENCDEC, PCM_S24BE, MOV) += s24be
16FATE_ACODEC_PCM-$(call ENCDEC, PCM_S24LE, WAV) += s24le
17FATE_ACODEC_PCM-$(call ENCDEC, PCM_U24BE, NUT) += u24be
18FATE_ACODEC_PCM-$(call ENCDEC, PCM_U24LE, NUT) += u24le
19FATE_ACODEC_PCM-$(call ENCDEC, PCM_S32BE, MOV) += s32be
20FATE_ACODEC_PCM-$(call ENCDEC, PCM_S32LE, WAV) += s32le
21FATE_ACODEC_PCM-$(call ENCDEC, PCM_U32BE, NUT) += u32be
22FATE_ACODEC_PCM-$(call ENCDEC, PCM_U32LE, NUT) += u32le
23FATE_ACODEC_PCM-$(call ENCDEC, PCM_F32BE, AU)  += f32be
24FATE_ACODEC_PCM-$(call ENCDEC, PCM_F32LE, WAV) += f32le
25FATE_ACODEC_PCM-$(call ENCDEC, PCM_F64BE, AU)  += f64be
26FATE_ACODEC_PCM-$(call ENCDEC, PCM_F64LE, WAV) += f64le
27FATE_ACODEC_PCM-$(call ENCDEC, PCM_S8_PLANAR, NUT) += s8_planar
28FATE_ACODEC_PCM-$(call ENCDEC, PCM_S16BE_PLANAR, NUT) += s16be_planar
29FATE_ACODEC_PCM-$(call ENCDEC, PCM_S16LE_PLANAR, NUT) += s16le_planar
30FATE_ACODEC_PCM-$(call ENCDEC, PCM_S24LE_PLANAR, NUT) += s24le_planar
31FATE_ACODEC_PCM-$(call ENCDEC, PCM_S32LE_PLANAR, NUT) += s32le_planar
32
33FATE_ACODEC_PCM := $(FATE_ACODEC_PCM-yes:%=fate-acodec-pcm-%)
34FATE_ACODEC += $(FATE_ACODEC_PCM)
35fate-acodec-pcm: $(FATE_ACODEC_PCM)
36
37fate-acodec-pcm-%: FMT = wav
38fate-acodec-pcm-%_planar: FMT = nut
39fate-acodec-pcm-%: CODEC = pcm_$(@:fate-acodec-pcm-%=%)
40
41fate-acodec-pcm-s8:   FMT = mov
42fate-acodec-pcm-s%be: FMT = mov
43fate-acodec-pcm-u%be: FMT = nut
44fate-acodec-pcm-u%le: FMT = nut
45fate-acodec-pcm-f%be: FMT = au
46
47FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_ADX,     ADX)  += adx
48FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_IMA_QT,  AIFF) += ima_qt
49FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_IMA_WAV, WAV)  += ima_wav
50FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_MS,      WAV)  += ms
51FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_SWF,     FLV)  += swf
52FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_YAMAHA,  WAV)  += yamaha
53
54FATE_ACODEC_ADPCM := $(FATE_ACODEC_ADPCM-yes:%=fate-acodec-adpcm-%)
55FATE_ACODEC += $(FATE_ACODEC_ADPCM)
56fate-acodec-adpcm: $(FATE_ACODEC_ADPCM)
57
58fate-acodec-adpcm-%: CODEC = adpcm_$(@:fate-acodec-adpcm-%=%)
59
60fate-acodec-adpcm-adx:     FMT = adx
61fate-acodec-adpcm-ima_qt:  FMT = aiff
62fate-acodec-adpcm-ima_wav: FMT = wav
63fate-acodec-adpcm-ms:      FMT = wav
64fate-acodec-adpcm-swf:     FMT = flv
65fate-acodec-adpcm-yamaha:  FMT = wav
66
67FATE_ACODEC_ADPCM_TRELLIS-$(call ENCDEC, ADPCM_ADX,     ADX)  += adx
68FATE_ACODEC_ADPCM_TRELLIS-$(call ENCDEC, ADPCM_IMA_QT,  AIFF) += ima_qt
69FATE_ACODEC_ADPCM_TRELLIS-$(call ENCDEC, ADPCM_IMA_WAV, WAV)  += ima_wav
70FATE_ACODEC_ADPCM_TRELLIS-$(call ENCDEC, ADPCM_MS,      WAV)  += ms
71FATE_ACODEC_ADPCM_TRELLIS-$(call ENCDEC, ADPCM_SWF,     FLV)  += swf
72FATE_ACODEC_ADPCM_TRELLIS-$(call ENCDEC, ADPCM_YAMAHA,  WAV)  += yamaha
73
74FATE_ACODEC_ADPCM_TRELLIS := $(FATE_ACODEC_ADPCM_TRELLIS-yes:%=fate-acodec-adpcm-%-trellis)
75FATE_ACODEC += $(FATE_ACODEC_ADPCM_TRELLIS)
76fate-acodec-adpcm-trellis: $(FATE_ACODEC_ADPCM_TRELLIS)
77
78fate-acodec-adpcm-%-trellis: CODEC = adpcm_$(@:fate-acodec-adpcm-%-trellis=%)
79fate-acodec-adpcm-%-trellis: ENCOPTS = -trellis 5
80
81fate-acodec-adpcm-adx-trellis:     FMT = adx
82fate-acodec-adpcm-ima_qt-trellis:  FMT = aiff
83fate-acodec-adpcm-ima_wav-trellis: FMT = wav
84fate-acodec-adpcm-ms-trellis:      FMT = wav
85fate-acodec-adpcm-swf-trellis:     FMT = flv
86fate-acodec-adpcm-yamaha-trellis:  FMT = wav
87
88FATE_ACODEC-$(call ENCDEC, MP2, MP2 MP3) += fate-acodec-mp2
89fate-acodec-mp2: FMT = mp2
90fate-acodec-mp2: CMP_SHIFT = -1924
91fate-acodec-mp2: ENCOPTS = -b:a 128k
92
93FATE_ACODEC-$(call ENCDEC, MP2FIXED MP2 , MP2 MP3) += fate-acodec-mp2fixed
94fate-acodec-mp2fixed: FMT = mp2
95fate-acodec-mp2fixed: CMP_SHIFT = -1924
96fate-acodec-mp2fixed: ENCOPTS = -b:a 384k
97
98FATE_ACODEC-$(call ENCDEC, ALAC, MOV) += fate-acodec-alac
99fate-acodec-alac: FMT = mov
100fate-acodec-alac: CODEC = alac -compression_level 1
101
102FATE_ACODEC-$(call ENCDEC, DCA, DTS) += fate-acodec-dca
103fate-acodec-dca: tests/data/asynth-44100-2.wav
104fate-acodec-dca: SRC = tests/data/asynth-44100-2.wav
105fate-acodec-dca: CMD = md5 -i $(TARGET_PATH)/$(SRC) -c:a dca -strict -2 -f dts -flags +bitexact
106fate-acodec-dca: CMP = oneline
107fate-acodec-dca: REF = 2aa580ac67820fce4f581b96ebb34acc
108
109FATE_ACODEC-$(call ENCDEC, DCA, WAV) += fate-acodec-dca2
110fate-acodec-dca2: CMD = enc_dec_pcm dts wav s16le $(SRC) -c:a dca -strict -2 -flags +bitexact
111fate-acodec-dca2: REF = $(SRC)
112fate-acodec-dca2: CMP = stddev
113fate-acodec-dca2: CMP_SHIFT = -2048
114fate-acodec-dca2: CMP_TARGET = 535
115fate-acodec-dca2: SIZE_TOLERANCE = 1632
116
117FATE_ACODEC-$(call ENCDEC, FLAC, FLAC) += fate-acodec-flac fate-acodec-flac-exact-rice
118fate-acodec-flac: FMT = flac
119fate-acodec-flac: CODEC = flac -compression_level 2
120
121fate-acodec-flac-exact-rice: FMT = flac
122fate-acodec-flac-exact-rice: CODEC = flac -compression_level 2 -exact_rice_parameters 1
123
124FATE_ACODEC-$(call ENCDEC, G723_1, G723_1) += fate-acodec-g723_1
125fate-acodec-g723_1: tests/data/asynth-8000-1.wav
126fate-acodec-g723_1: SRC = tests/data/asynth-8000-1.wav
127fate-acodec-g723_1: FMT = g723_1
128fate-acodec-g723_1: CODEC = g723_1
129fate-acodec-g723_1: ENCOPTS = -b:a 6.3k
130fate-acodec-g723_1: CMP_SHIFT = 8
131
132FATE_ACODEC-$(call ENCDEC, RA_144, WAV) += fate-acodec-ra144
133fate-acodec-ra144: tests/data/asynth-8000-1.wav
134fate-acodec-ra144: SRC = tests/data/asynth-8000-1.wav
135fate-acodec-ra144: CMD = enc_dec_pcm rm wav s16le $(SRC) -c:a real_144
136fate-acodec-ra144: REF = $(SRC)
137fate-acodec-ra144: CMP = stddev
138fate-acodec-ra144: CMP_TARGET = 4777
139fate-acodec-ra144: CMP_SHIFT = -320
140
141FATE_ACODEC-$(call ENCDEC, ROQ_DPCM, ROQ) += fate-acodec-roqaudio
142fate-acodec-roqaudio: FMT = roq
143fate-acodec-roqaudio: CODEC = roq_dpcm
144fate-acodec-roqaudio: ENCOPTS = -ar 22050
145fate-acodec-roqaudio: DECOPTS = -ar 44100
146
147FATE_ACODEC-$(call ENCDEC, S302M, MPEGTS) += fate-acodec-s302m
148fate-acodec-s302m: FMT = mpegts
149fate-acodec-s302m: CODEC = s302m
150fate-acodec-s302m: ENCOPTS = -ar 48000 -strict -2
151fate-acodec-s302m: DECOPTS = -ar 44100
152
153FATE_ACODEC-$(call ENCDEC, WAVPACK, WV) += fate-acodec-wavpack
154fate-acodec-wavpack: FMT = wv
155fate-acodec-wavpack: CODEC = wavpack -compression_level 1
156
157FATE_ACODEC-$(call ENCDEC, TTA, TTA) += fate-acodec-tta
158fate-acodec-tta: FMT = tta
159
160FATE_ACODEC += $(FATE_ACODEC-yes)
161
162$(FATE_ACODEC): tests/data/asynth-44100-2.wav
163
164FATE_AVCONV += $(FATE_ACODEC)
165fate-acodec: $(FATE_ACODEC)
166