[FFmpeg-devel] [PATCH] Add FATE test for rare overflow-prone case

Måns Rullgård mans
Sun Jan 23 20:33:56 CET 2011


Jason Garrett-Glaser <jason at x264.com> writes:

> On Sun, Jan 23, 2011 at 10:05 AM, Vitor Sessak <vitor1001 at gmail.com> wrote:
>> $subj, see issue 2547.
>>
>> -Vitor
>>
>> PS: no need to wait boxes to rsync, this sample was uploaded several days
>> ago.
>
> It might be better to synthesize a clip using code similar to that
> which I wrote for extremal plane tests in x264:
>
> #define EXTREMAL_PLANE(size) \
>     { \
>         int max[7]; \
>         for( int j = 0; j < 7; j++ ) \
>             max[j] = test ? rand()&PIXEL_MAX : PIXEL_MAX; \
>         fdec[48-1-FDEC_STRIDE] = (i&1)*max[0]; \
>         for( int j = 0; j < size/2; j++ ) \
>             fdec[48+j-FDEC_STRIDE] = (!!(i&2))*max[1]; \
>         for( int j = size/2; j < size-1; j++ ) \
>             fdec[48+j-FDEC_STRIDE] = (!!(i&4))*max[2]; \
>         fdec[48+(size-1)-FDEC_STRIDE] = (!!(i&8))*max[3]; \
>         for( int j = 0; j < size/2; j++ ) \
>             fdec[48+j*FDEC_STRIDE-1] = (!!(i&16))*max[4]; \
>         for( int j = size/2; j < size-1; j++ ) \
>             fdec[48+j*FDEC_STRIDE-1] = (!!(i&32))*max[5]; \
>         fdec[48+(size-1)*FDEC_STRIDE-1] = (!!(i&64))*max[6]; \
>     }
>     /* Extremal test case for planar prediction. */
>     for( int test = 0; test < 100 && ok; test++ )
>         for( int i = 0; i < 128 && ok; i++ )
>         {
>             EXTREMAL_PLANE(  8 );
>             INTRA_TEST(  predict_8x8c, I_PRED_CHROMA_P,  8, 1 );
>             EXTREMAL_PLANE( 16 );
>             INTRA_TEST( predict_16x16,  I_PRED_16x16_P, 16, 1 );
>         }
>
> Having spent hours on fixing bugs related to this, I can say for
> certain that without a test this harsh, you will never, ever find all
> possible instances of bugs in planar prediction.

Would you be so kind as to create such a test clip?

-- 
M?ns Rullg?rd
mans at mansr.com



More information about the ffmpeg-devel mailing list