[FFmpeg-devel] [PATCH] fate: add tests for some video source filters

Tobias Rapp t.rapp at noa-archive.com
Mon Jul 24 17:56:19 EEST 2017


On 21.07.2017 13:16, Michael Niedermayer wrote:
> On Fri, Jul 21, 2017 at 12:18:53PM +0200, Tobias Rapp wrote:
>> On 21.07.2017 02:47, Michael Niedermayer wrote:
>>> On Fri, Jul 21, 2017 at 01:04:03AM +0200, Nicolas George wrote:
>>>> Le duodi 2 thermidor, an CCXXV, Michael Niedermayer a écrit :
>>>>> breaks on mips (probably big endian issue)
>>>>
>>>> Breaks on MIPS, or detects that something is already broken in MIPS and
>>>> nobody noticed until now?
>>>
>>> this patch breaks the selftests on mips or maybe more precissely
>>> it adds a test which fails
>>>
>>>
>>>>
>>>> Could you perhaps re-run the test with V=1, then re-run the command line
>>>> with -f png, to see how the output is broken?
>>>
>>> Stream #0:0: Video: rawvideo ([12][0]3Y / 0x5933000C), yuv444p12be, 320x240 [SAR 1:1 DAR 4:3], q=2-31, 13824 kb/s, 5 fps, 5 tbn, 5 tbc (default)
>>>
>>> the format used seems the native one that has different endianness
>>> and thus different checksums
>>>
>>> md5sum out.png mips/out.png
>>> 012e1906fe84ee6f757ef3f1473cc26d  out.png
>>> 012e1906fe84ee6f757ef3f1473cc26d  mips/out.png
>>>
>>> i tried forcing le but it alone didnt give the same result
>>> ive to sleep now so i cant look further into this today
>>> but iam happy to test patches tomorrow, also iam just testing with
>>> mips qemu not real hw so if it wasnt for the one time work to set
>>> build env up and qemu than it would be rather easy for anyone to test
>>
>> I tested the opposite direction by forcing yuv444p12be on x86-64 and
>> got different frame-CRCs "0xda6a937e" compared to the MIPS-CRCs you
>> posted earlier "0xba079be7". Not sure what is happening ...
>
> mybe the le<->be
> is the BE output you get identical to LE ? (besides the endianness)

Finally managed to setup a MIPS cross-compiler plus qemu. Looking at the 
(verbose) log output of the command line indicates that the yuvtestsrc 
filter output is configured to yuv444p instead of the assumed yuv444p12be :

$ qemu-mips -cpu 74Kf ./build-mips/ffmpeg-dbg -nostdin -nostats 
-cpuflags all -lavfi "yuvtestsrc=rate=5:duration=1" -pix_fmt yuv444p12le 
-flags +bitexact -fflags +bitexact -f framecrc - -loglevel verbose

[...]
[Parsed_yuvtestsrc_0 @ 0x1c99eb0] size:320x240 rate:5/1 
duration:1.000000 sar:1/1
[auto_scaler_0 @ 0x1c9a550] w:iw h:ih flags:'bilinear' interl:0
[format @ 0x1c9a380] auto-inserting filter 'auto_scaler_0' between the 
filter 'Parsed_yuvtestsrc_0' and the filter 'format'
[auto_scaler_0 @ 0x1c9a550] w:320 h:240 fmt:yuv444p sar:1/1 -> w:320 
h:240 fmt:yuv444p12le sar:1/1 flags:0x2
[...]

Not sure if this is "normal". After forcing the yuvtestsrc output to 
(native) yuv444p12 the tests succeeds on both platforms:

CMD = framecrc -lavfi yuvtestsrc=rate=5:duration=1,format=yuv444p12 
-pix_fmt yuv444p12le

Will post a patch update.

Regards,
Tobias



More information about the ffmpeg-devel mailing list