[FFmpeg-devel] [PATCH v5 3/3] fate/flac: Add test of 32 bps encoding/decoding

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Thu Sep 15 21:19:50 EEST 2022


Martijn van Beurden:
> Op do 15 sep. 2022 om 18:58 schreef Andreas Rheinhardt <
> andreas.rheinhardt at outlook.com>:
> 
>> Martijn van Beurden:
>>> ---
>>>  tests/fate/flac.mak | 9 +++++++++
>>>  1 file changed, 9 insertions(+)
>>>
>>> diff --git a/tests/fate/flac.mak b/tests/fate/flac.mak
>>> index 115cc965e1..4db28b1e1d 100644
>>> --- a/tests/fate/flac.mak
>>> +++ b/tests/fate/flac.mak
>>> @@ -6,6 +6,8 @@ FATE_FLAC += fate-flac-16-chmode-indep
>>                 \
>>>               fate-flac-16-lpc-cholesky
>> \
>>>               fate-flac-16-lpc-levinson
>> \
>>>               fate-flac-24-comp-8
>> \
>>> +             fate-flac-32
>>  \
>>> +             fate-flac-32-wasted-bits
>>  \
>>>               fate-flac-rice-params
>> \
>>>
>>>  fate-flac-16-chmode-%: OPTS = -ch_mode $(@:fate-flac-16-chmode-%=%)
>>> @@ -20,6 +22,13 @@ fate-flac-24-comp-%: OPTS = -compression_level
>> $(@:fate-flac-24-comp-%=%)
>>>  fate-flac-24-%: REF =
>> $(SAMPLES)/audio-reference/divertimenti_2ch_96kHz_s24.wav
>>>  fate-flac-24-%: CMD = enc_dec_pcm flac wav s24le $(subst
>> $(SAMPLES),$(TARGET_SAMPLES),$(REF)) -c flac $(OPTS)
>>>
>>> +
>>> +fate-flac-32: REF = $(SAMPLES)/audio-reference/drums_2ch_44kHz_s32.wav
>>> +fate-flac-32: CMD = enc_dec_pcm flac wav s32le $(subst
>> $(SAMPLES),$(TARGET_SAMPLES),$(REF)) -c flac -strict -2
>>
>> We already have 32bit samples in the fate-suite, namely
>> wavpack/lossless/32bit_int_partial.wv. Why don't you use these?
>> (Anyway, don't hardcode the numerical value of 'experimental'.)
>>
> 
> I wasn't sure that was possible. If for example the build is configured to
> leave wavpack out that wouldn't work. Or is it assumed that fate is only
> run with a ffmpeg build configured with default and some additions but
> nothing default left out?
> 

The wavpack decoder would have to be a requirement of this test.
(The wav demuxer is btw needed as a requirement for the current tests,
but has been left out; the pcm_s16le decoder is also needed for the
tests with s16 input samples and the pcm_s24le decoder for the with s24
input samples, but checking for this has been forgotten.)
Notice that the test functions would have to be tweaked  (the flac tests
use CMP = oneoff, i.e. they do not check checksums of the encoded file,
but instead test that the decoded audio data coincides with what has
been sent to the decoder).
(In any case, I don't get why there are two samples: The flac decoder is
intra-only, so if you made the samples so that one of the frames had a
wasted bit, you could test all the codepaths that two samples test. And
it would even have the advantage that it tests what happens when it
swiches from >0 wasted bits to 0 wasted bits to >0 wasted bits and back.)

> Considering the strict value, I guess I should also change the help text
> then? Now it reads: encoding as 24 bits-per-sample, more is considered
> experimental. Add -strict -2 if you want to encode more than 24
> bits-per-sample

Yes, that should also be changed.

- Andreas


More information about the ffmpeg-devel mailing list