1CROSS_TEST = $(foreach I,$(1),                                          \
2                 $(foreach J,$(1),                                      \
3                     $(if $(filter-out $(I),$(J)),                      \
4                         $(eval $(call $(2),$(I),$(J),$(3),$(4),$(5))), \
5                     )))
6
7MIX_CHANNELS = 1 2 3 4 5 6 7 8
8
9define MIX
10FATE_LAVR_MIX += fate-lavr-mix-$(3)-$(1)-$(2)
11fate-lavr-mix-$(3)-$(1)-$(2): tests/data/asynth-44100-$(1).wav
12fate-lavr-mix-$(3)-$(1)-$(2): CMD = ffmpeg -i $(TARGET_PATH)/tests/data/asynth-44100-$(1).wav -ac $(2) -mix_coeff_type $(3) -internal_sample_fmt $(4) -f s16le -af atrim=end_sample=1024 -
13fate-lavr-mix-$(3)-$(1)-$(2): CMP = oneoff
14fate-lavr-mix-$(3)-$(1)-$(2): REF = $(SAMPLES)/lavr/lavr-mix-$(3)-$(1)-$(2)
15endef
16
17$(call CROSS_TEST,$(MIX_CHANNELS),MIX,q8,s16p)
18$(call CROSS_TEST,$(MIX_CHANNELS),MIX,q15,s16p)
19$(call CROSS_TEST,$(MIX_CHANNELS),MIX,flt,fltp)
20
21# test output zeroing with skipped corresponding input
22FATE_LAVR_MIX-$(call FILTERDEMDECENCMUX, CHANNELMAP RESAMPLE, WAV, PCM_S16LE, PCM_S16LE, WAV) += fate-lavr-mix-output-zero
23fate-lavr-mix-output-zero: tests/data/filtergraphs/lavr_mix_output_zero tests/data/asynth-44100-4.wav
24fate-lavr-mix-output-zero: CMP = oneoff
25fate-lavr-mix-output-zero: CMD = ffmpeg -i $(TARGET_PATH)/tests/data/asynth-44100-4.wav -filter_script $(TARGET_PATH)/tests/data/filtergraphs/lavr_mix_output_zero -f s16le -
26fate-lavr-mix-output-zero: REF = $(SAMPLES)/lavr/lavr-mix-output-zero
27
28FATE_LAVR_MIX-$(call FILTERDEMDECENCMUX, RESAMPLE, WAV, PCM_S16LE, PCM_S16LE, WAV) += $(FATE_LAVR_MIX)
29fate-lavr-mix: $(FATE_LAVR_MIX-yes)
30#FATE_LAVR += $(FATE_LAVR_MIX-yes)
31
32SAMPLERATES = 2626 8000 44100 48000 96000
33
34define RESAMPLE
35FATE_LAVR_RESAMPLE += fate-lavr-resample-$(3)-$(1)-$(2)
36fate-lavr-resample-$(3)-$(1)-$(2): tests/data/asynth-$(1)-1.wav
37fate-lavr-resample-$(3)-$(1)-$(2): CMD = ffmpeg -i $(TARGET_PATH)/tests/data/asynth-$(1)-1.wav -ar $(2) -internal_sample_fmt $(3) -f $(4) -af atrim=end_sample=10240 -
38fate-lavr-resample-$(3)-$(1)-$(2): CMP = oneoff
39fate-lavr-resample-$(3)-$(1)-$(2): CMP_UNIT = $(5)
40fate-lavr-resample-$(3)-$(1)-$(2): FUZZ = 6
41fate-lavr-resample-$(3)-$(1)-$(2): REF = $(SAMPLES)/lavr/lavr-resample-$(3)-$(1)-$(2)-v3
42endef
43
44$(call CROSS_TEST,$(SAMPLERATES),RESAMPLE,s16p,s16le,s16)
45$(call CROSS_TEST,$(SAMPLERATES),RESAMPLE,s32p,s32le,s16)
46$(call CROSS_TEST,$(SAMPLERATES),RESAMPLE,fltp,f32le,f32)
47$(call CROSS_TEST,$(SAMPLERATES),RESAMPLE,dblp,f64le,f64)
48
49FATE_LAVR_RESAMPLE += fate-lavr-resample-linear
50fate-lavr-resample-linear: tests/data/asynth-44100-1.wav
51fate-lavr-resample-linear: CMD = ffmpeg -i $(TARGET_PATH)/tests/data/asynth-44100-1.wav -ar 48000 -filter_size 32 -linear_interp 1 -f s16le -af atrim=end_sample=10240 -
52fate-lavr-resample-linear: CMP = oneoff
53fate-lavr-resample-linear: CMP_UNIT = s16
54fate-lavr-resample-linear: REF = $(SAMPLES)/lavr/lavr-resample-linear
55
56FATE_LAVR_RESAMPLE += fate-lavr-resample-nearest
57fate-lavr-resample-nearest: tests/data/asynth-48000-1.wav
58fate-lavr-resample-nearest: CMD = ffmpeg -i $(TARGET_PATH)/tests/data/asynth-48000-1.wav -ar 44100 -filter_size 0 -phase_shift 0 -f s16le -af atrim=end_sample=10240 -
59fate-lavr-resample-nearest: CMP = oneoff
60fate-lavr-resample-nearest: CMP_UNIT = s16
61fate-lavr-resample-nearest: REF = $(SAMPLES)/lavr/lavr-resample-nearest
62
63FATE_LAVR_RESAMPLE-$(call FILTERDEMDECENCMUX, RESAMPLE, WAV, PCM_S16LE, PCM_S16LE, WAV) += $(FATE_LAVR_RESAMPLE)
64fate-lavr-resample: $(FATE_LAVR_RESAMPLE-yes)
65#FATE_LAVR += $(FATE_LAVR_RESAMPLE-yes)
66
67FATE_SAMPLES_AVCONV += $(FATE_LAVR)
68fate-lavr: $(FATE_LAVR)
69