[FFmpeg-devel] [PATCH 9/9] avformat/wavdec: Test s337m
Gaullier Nicolas
nicolas.gaullier at cji.paris
Mon Jan 13 18:10:23 EET 2020
>> Test the new 'dolbyeprobe' AVOption.
>> Test dolby_e decoding for 24 bits with program config '5.1+2'
>> ---
>> tests/Makefile | 1 +
>> tests/fate-run.sh | 4 ++++
>> tests/fate/audio.mak | 5 +++++
>> 3 files changed, 10 insertions(+)
>>
>> diff --git a/tests/Makefile b/tests/Makefile index
>> e5f41008d4..65cccac312 100644
>> --- a/tests/Makefile
>> +++ b/tests/Makefile
>> @@ -75,6 +75,7 @@ ENCDEC2 = $(call ALLYES, $(firstword $(1))_ENCODER $(lastword $(1))_DECODER \
>> $(firstword $(3))_MUXER $(lastword $(3))_DEMUXER)
>>
>> DEMDEC = $(call ALLYES, $(1)_DEMUXER $(2:%=%_DECODER))
>> +DEMDEMDEC = $(call ALLYES, $(1)_DEMUXER $(2)_DEMUXER
>> +$(3:%=%_DECODER))
>> ENCMUX = $(call ALLYES, $(1:%=%_ENCODER) $(2)_MUXER)
>>
>> DEMMUX = $(call ALLYES, $(1)_DEMUXER $(2)_MUXER) diff --git
>> a/tests/fate-run.sh b/tests/fate-run.sh index 83cad8cabe..f06b2fd029
>> 100755
>> --- a/tests/fate-run.sh
>> +++ b/tests/fate-run.sh
>> @@ -162,6 +162,10 @@ pcm(){
>> ffmpeg "$@" -vn -f s16le -
>> }
>>
>> +dolbye2pcm16(){
>> + ffmpeg -dolbyeprobe 1 "$@" -vn -f s16le - }
>> +
>> fmtstdout(){
>> fmt=$1
>> shift 1
>> diff --git a/tests/fate/audio.mak b/tests/fate/audio.mak index
>> c41958ea2d..0e56d401ea 100644
>> --- a/tests/fate/audio.mak
>> +++ b/tests/fate/audio.mak
>> @@ -24,6 +24,11 @@ fate-dolby-e: CMD = pcm -i
>> $(TARGET_SAMPLES)/dolby_e/16-11
>> fate-dolby-e: CMP = oneoff
>> fate-dolby-e: REF = $(SAMPLES)/dolby_e/16-11.pcm
>>
>> +FATE_SAMPLES_AUDIO-$(call DEMDEMDEC, WAV, S337M, DOLBY_E) +=
>> +fate-dolby-e-wav
>> +fate-dolby-e-wav: CMD = dolbye2pcm16 -i
>> +$(TARGET_SAMPLES)/dolby_e/512.wav
>> +fate-dolby-e-wav: CMP = oneoff
>> +fate-dolby-e-wav: REF = $(SAMPLES)/dolby_e/512.wav.pcm
>> +
>> FATE_SAMPLES_AUDIO-$(call DEMDEC, DSS, DSS_SP) += fate-dss-lp
>> fate-dss-sp
>> fate-dss-lp: CMD = framecrc -i $(TARGET_SAMPLES)/dss/lp.dss -frames
>> 30
>> fate-dss-sp: CMD = framecrc -i $(TARGET_SAMPLES)/dss/sp.dss -frames
>> 30
>>
>This is missing some kind of hash check on the demuxed data
The "oneoff" tests consists in checking the maximum difference between the raw pcm output samples, it must be 0 or 1 max. This test is done in 16-bit truncated output of the decoded stream.
It raises an error too if the duration does not strictly match. I found it appropriate (a strict hash on decoded samples may also break with the many floats of the DolbyE decoder).
My idea was to keep a single test for both "wav demux" and "5.1+2" decode.
Do you think there should be an additional test focused on demuxed data ?
Nicolas
More information about the ffmpeg-devel
mailing list