[FFmpeg-devel] Adding FATE tests for FFV1 - revisited

Tobias Rapp t.rapp at noa-archive.com
Mon Aug 31 13:44:08 CEST 2015


On 30.08.2015 21:32, Michael Niedermayer wrote:
> On Sun, Aug 30, 2015 at 07:06:44PM +0200, Peter B. wrote:
>> Hello,
>>
>> I've been working on FATE tests for FFV1 in the past already [1]. My
>> tests didn't work on all platforms and therefore never made it upstream.
>> I think it's better if I try to provide these new tests in smaller
>> chunks now :)
>>
>>
>> First of all, there are things I find inconsistent or confusing with the
>> current tests (vcodec.mak):
>>
>>      - ENCOPTS for FFV1.3 contain "-vcodec ffv1" instead of "CODEC=ffv1"
>> (this generates "-c ffv1.3" as parameter?)
>
>>      - Target "fate-vsynth%-*" tests default to sws_flags
>> "accurate_rnd+bitexact". FFV1.3 tests have "neighbor+bitexact". Why?
>
> it makes more cases lossless IIRC
> the default upscaling + default downscaling is not binary identical

Indeed. See 
http://ffmpeg.org/pipermail/ffmpeg-devel/2015-June/174430.html and 
http://ffmpeg.org/pipermail/ffmpeg-devel/2015-June/174447.html for 
reference.

>
>
>>      - ENCOPTS for "fate-vsynth%-ffv1" are "-slices 4", which is an
>> FFV1.3-only option.

I assume the FFV1 level/subversion is auto-negotiated if some explicit 
"-level" option is missing (e.g. see libavcodec/ffv1enc.c line 680).

>>      - What is "ffv1.0"?
>>
>>
>> My ideas/plans would be something like this:
>>
>> First steps:
>> 1) Clean the current FFV1 tests (naming, ENCDEC options, etc)
>> 2) Move FFV1 tests to its own file (ffv1.mak). Or at least to
>> "lossless-video.mak".
>> 3) Have separate tests for different FFV1 versions (1,3)
>>
>> Then:
>> 4) Add default argument "-g 1"

This removes the test for the default GOP size.

>> 5) Add tests to cover the following cases:
>>      - Color spaces YUV, RGB, GRAY
>>      - bits-per-component as currently supported
>>      - YUV subsampling 420, 422, 444
>>      - Alpha channel: YUVA, BGRA
>>
>> Maybe:
>> 6) Multiple coder/context options
>> 7) Multiple slices options
>> 8) Testing SliceCRC
>>
>>
>> This will produce quite a number of tests :(
>
>> I guess it is desired to keep the number of tests as low as necessary?
>
> avoiding redundant tests would be a good idea
>
>
>> I've attached my old test Makefile (ffv1.mak), for reference.
>> :D
>>
>>
>> What is the best way to proceed?
>
> probably, send patches
> and probably better few and small ones at once then wait and see
> in which direction reviewes go before spending too much time in some
> specific direction
>
> [...]

I agree that having a full test suite for FFV1 would be a nice thing but 
am not sure if integration into FATE is the right framework for it. As 
far as I understand FATE tests need a good balance between processing 
time and code coverage.

Maybe it can be part of the IETF standardization task to create a FFV1 
test environment which tests every color-space/bit-depth/subsampling/... 
combination?

Just my thoughts,
Tobias



More information about the ffmpeg-devel mailing list