[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