[FFmpeg-devel] [PATCHv2] fate: Use a oneoff test for the tremolo filter

James Almer jamrial at gmail.com
Wed Dec 11 16:21:14 EET 2019


On 12/11/2019 4:43 AM, Martin Storsjö wrote:
> The tremolo filter uses floating point internally, and uses
> multiplication factors derived from sin(fmod()), neither of
> which is bitexact for use with framecrc.
> 
> This fixes running this test with mingw/x86_32 binaries when run
> in wine on linux (unsure if the same issue is present when run
> on actual windows).
> 
> In this case, a 1 ulp difference in the output from fmod() would
> end up in an output from the filter that differs by 1 ulp, but
> which makes the lrint() in swresample/audioconvert.c round in a
> different direction.
> 
> ---
> Updated with the existing reference file removed.
> ---
>  tests/fate/filter-audio.mak   |  5 ++++-
>  tests/ref/fate/filter-tremolo | 26 --------------------------
>  2 files changed, 4 insertions(+), 27 deletions(-)
>  delete mode 100644 tests/ref/fate/filter-tremolo
> 
> diff --git a/tests/fate/filter-audio.mak b/tests/fate/filter-audio.mak
> index fed2644ccf..b1dcb9787a 100644
> --- a/tests/fate/filter-audio.mak
> +++ b/tests/fate/filter-audio.mak
> @@ -189,7 +189,10 @@ fate-filter-stereotools: CMD = framecrc -i $(SRC) -frames:a 20 -af stereotools=m
>  FATE_AFILTER-$(call FILTERDEMDECENCMUX, TREMOLO, WAV, PCM_S16LE, PCM_S16LE, WAV) += fate-filter-tremolo

Needs to be FATE_AFILTER_SAMPLES now that it's using a reference sample
rather than only the autogenerated asynth-44100-2.wav.

>  fate-filter-tremolo: tests/data/asynth-44100-2.wav
>  fate-filter-tremolo: SRC = $(TARGET_PATH)/tests/data/asynth-44100-2.wav
> -fate-filter-tremolo: CMD = framecrc -i $(SRC) -frames:a 20 -af tremolo
> +fate-filter-tremolo: CMD = ffmpeg -i $(SRC) -frames:a 20 -af tremolo -f wav -f s16le -
> +fate-filter-tremolo: REF = $(SAMPLES)/filter/tremolo.pcm

Created and uploaded it, so feel free to push this patch after you fix
the above and confirm the ref sample is ok.

> +fate-filter-tremolo: CMP = oneoff
> +fate-filter-tremolo: CMP_UNIT = s16
>  
>  FATE_AFILTER-$(call FILTERDEMDECENCMUX, COMPAND, WAV, PCM_S16LE, PCM_S16LE, WAV) += fate-filter-compand
>  fate-filter-compand: tests/data/asynth-44100-2.wav
> diff --git a/tests/ref/fate/filter-tremolo b/tests/ref/fate/filter-tremolo
> deleted file mode 100644
> index c6cff52c0e..0000000000
> --- a/tests/ref/fate/filter-tremolo
> +++ /dev/null
> @@ -1,26 +0,0 @@
> -#tb 0: 1/44100
> -#media_type 0: audio
> -#codec_id 0: pcm_s16le
> -#sample_rate 0: 44100
> -#channel_layout 0: 3
> -#channel_layout_name 0: stereo
> -0,          0,          0,     1024,     4096, 0x5d3be907
> -0,       1024,       1024,     1024,     4096, 0xea151fbe
> -0,       2048,       2048,     1024,     4096, 0xa5bc19f4
> -0,       3072,       3072,     1024,     4096, 0x8706ec6d
> -0,       4096,       4096,     1024,     4096, 0x334ff275
> -0,       5120,       5120,     1024,     4096, 0xcd0ff7ad
> -0,       6144,       6144,     1024,     4096, 0x29a1e9c9
> -0,       7168,       7168,     1024,     4096, 0x1d41e77f
> -0,       8192,       8192,     1024,     4096, 0x99e7fe07
> -0,       9216,       9216,     1024,     4096, 0x4bbf09ce
> -0,      10240,      10240,     1024,     4096, 0x94600236
> -0,      11264,      11264,     1024,     4096, 0xc8af0c9e
> -0,      12288,      12288,     1024,     4096, 0x70eef88f
> -0,      13312,      13312,     1024,     4096, 0xb222ec47
> -0,      14336,      14336,     1024,     4096, 0x1071ee27
> -0,      15360,      15360,     1024,     4096, 0x7c390bd2
> -0,      16384,      16384,     1024,     4096, 0x68bdf655
> -0,      17408,      17408,     1024,     4096, 0x810cfacb
> -0,      18432,      18432,     1024,     4096, 0x9639e41f
> -0,      19456,      19456,     1024,     4096, 0xa30be70f
> 



More information about the ffmpeg-devel mailing list