[FFmpeg-devel] [PATCH 3/7] swscale/output: add XV48 output support
James Almer
jamrial at gmail.com
Thu Oct 31 21:13:38 EET 2024
On 10/31/2024 3:34 PM, Michael Niedermayer wrote:
> On Tue, Oct 29, 2024 at 04:50:47PM -0300, James Almer wrote:
>> On 10/29/2024 4:29 PM, Michael Niedermayer wrote:
>>> On Tue, Oct 29, 2024 at 01:03:21PM +0100, Michael Niedermayer wrote:
>>>> On Fri, Oct 25, 2024 at 07:56:29PM -0300, James Almer wrote:
>>>>> On 10/25/2024 7:18 PM, Michael Niedermayer wrote:
>>>>>> On Wed, Oct 23, 2024 at 04:36:44PM -0300, James Almer wrote:
>>>>>>> Signed-off-by: James Almer <jamrial at gmail.com>
>>>>>>> ---
>>>>>>> libswscale/output.c | 37 +++++++++++++++---------
>>>>>>> libswscale/utils.c | 4 +--
>>>>>>> tests/ref/fate/filter-pixdesc-xv48be | 1 +
>>>>>>> tests/ref/fate/filter-pixdesc-xv48le | 1 +
>>>>>>> tests/ref/fate/filter-pixfmts-copy | 2 ++
>>>>>>> tests/ref/fate/filter-pixfmts-crop | 2 ++
>>>>>>> tests/ref/fate/filter-pixfmts-field | 2 ++
>>>>>>> tests/ref/fate/filter-pixfmts-fieldorder | 2 ++
>>>>>>> tests/ref/fate/filter-pixfmts-hflip | 2 ++
>>>>>>> tests/ref/fate/filter-pixfmts-il | 2 ++
>>>>>>> tests/ref/fate/filter-pixfmts-null | 2 ++
>>>>>>> tests/ref/fate/filter-pixfmts-scale | 2 ++
>>>>>>> tests/ref/fate/filter-pixfmts-transpose | 2 ++
>>>>>>> tests/ref/fate/filter-pixfmts-vflip | 2 ++
>>>>>>> 14 files changed, 48 insertions(+), 15 deletions(-)
>>>>>>> create mode 100644 tests/ref/fate/filter-pixdesc-xv48be
>>>>>>> create mode 100644 tests/ref/fate/filter-pixdesc-xv48le
>>>>>>
>>>>>> didnt apply cleanly so no test but LGTM
>>>>>>
>>>>>> thx
>>>>>
>>>>> It was Niklas recent renaming patch. You can try a rebased version in
>>>>
>>>>> https://github.com/jamrial/FFmpeg/commits/pixdesc/
>>>>
>>>> thanks, that helped, swscale patches seem turning stale within the 500ms
>>>> transit time to the ML
>>>>
>>>> the swscale changes in that branch look good
>>>> tests seems passing on mingw32/64 linux x86-32/64 and mips
>>>
>>> i had to leave before qemu arm tests finished and of course arm faild :)
>>>
>>> make fate-pixfmt-x2bgr10le fate-pixfmt-x2rgb10le -k
>>> TEST pixfmt-x2bgr10le
>>> --- src/tests/ref/fate/pixfmt-x2bgr10le 2024-10-29 20:26:42.011219228 +0100
>>> +++ tests/data/fate/pixfmt-x2bgr10le 2024-10-29 20:28:11.519912980 +0100
>>> @@ -1,2 +1,2 @@
>>> -028652e885aef68639341bbc8415be57 *tests/data/pixfmt/x2bgr10le.yuv
>>> +040ceb964e1401b964d72f97c44ca596 *tests/data/pixfmt/x2bgr10le.yuv
>>> 15206400 tests/data/pixfmt/x2bgr10le.yuv
>>> Test pixfmt-x2bgr10le failed. Look at tests/data/fate/pixfmt-x2bgr10le.err for details.
>>> make: *** [src/tests/Makefile:311: fate-pixfmt-x2bgr10le] Error 1
>>> TEST pixfmt-x2rgb10le
>>> --- src/tests/ref/fate/pixfmt-x2rgb10le 2024-10-29 20:26:42.011219228 +0100
>>> +++ tests/data/fate/pixfmt-x2rgb10le 2024-10-29 20:28:12.371919593 +0100
>>> @@ -1,2 +1,2 @@
>>> -028652e885aef68639341bbc8415be57 *tests/data/pixfmt/x2rgb10le.yuv
>>> +040ceb964e1401b964d72f97c44ca596 *tests/data/pixfmt/x2rgb10le.yuv
>>> 15206400 tests/data/pixfmt/x2rgb10le.yuv
>>> Test pixfmt-x2rgb10le failed. Look at tests/data/fate/pixfmt-x2rgb10le.err for details.
>>> make: *** [src/tests/Makefile:311: fate-pixfmt-x2rgb10le] Error 1
>>>
>>> thx
>>
>> That is a test from a patch i didn't push, so not a problem in git head at
>> least.
>>
>> Is that a BE arm machine?
>
> no
>
>
>> The only thing i can think about is the check in
>> swscale/output.c for AV_PIX_FMT_X2RGB10, which for that target would become
>> AV_PIX_FMT_X2RGB10BE, and thus not trigger with this test.
>> This is IMO wrong because the yuv2packed* pointers are in turn set for both
>> LE and BE.
>
> arm has some funny behavior with misaligned 32bit access
> that is IIRC, if you cast a uint8_t * to int * and it was not an address thats
> a multiple of 4 and derefernce you can get results that you dont expect IIRC.
>
> if that makes no sense then i dont know, but tell me and ill just
> retest
I tried applying the patch adding this test and running it under
gcc-ubsan and it didn't complain about unaligned accesses, so i don't
know what could be happening if that target is not BE.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 495 bytes
Desc: OpenPGP digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20241031/066eece9/attachment.sig>
More information about the ffmpeg-devel
mailing list