[FFmpeg-devel] checkasm/vf_hflip : add test for vf_hflip SIMD

Mateusz mateuszb at poczta.onet.pl
Sun Dec 10 21:33:16 EET 2017


W dniu 09.12.2017 o 15:46, Martin Vignali pisze:
>>
>>> Do you test on X86_32 or x86_64 ?
>>
>> failure occurs on both
>>
>>
>>> Nasm or Yasm ?
>>
>> NASM version 2.10.09 compiled on Dec 29 2013
>>
>>
>>
>> I try to compile with the same nasm version (on os X, X86_64)
> using --x86asmexe=nasm_exe_path2.10rc9 in the configure
> 
> And the checkasm also pass
> 
> ./tests/checkasm/checkasm --test=vf_hflip --bench --seed 1616253308
> benchmarking with native FFmpeg timers
> nop: 34.9
> checkasm: using random seed 1616253308
> SSSE3:
>  - vf_hflip.hflip_byte  [OK]
>  - vf_hflip.hflip_short [OK]
> checkasm: all 2 tests passed
> hflip_byte_c: 28.0
> hflip_byte_ssse3: 27.0
> hflip_short_c: 277.7
> hflip_short_ssse3: 71.0
> 
> 
> Any ideas, why it fail for you ?

For me it fails too. Please look at part from libavfilter/vf_hfilp.c:
        outrow = out->data[plane] + start * out->linesize[plane];
        inrow  = in ->data[plane] + start * in->linesize[plane] + (width - 1) * step;
        for (i = start; i < end; i++) {
            s->flip_line[plane](inrow, outrow, width);
and now at part from tests/checkasm/vf_hflip.c:
        call_ref(src, dst_ref, w);
        call_new(src, dst_new, w);

For me there is no "src + (width - 1) * step" in tests/checkasm/vf_hflip.c

You pass start of the src buffer but you should pass end of the buffer.

Mateusz



More information about the ffmpeg-devel mailing list