[FFmpeg-devel] [PATCH] Enable RGB32 on video4linux2 devices
Luca Abeni
lucabe72
Fri Sep 5 15:46:43 CEST 2008
Hi Jean,
Jean Delvare wrote:
[...]
>> Anyway, if you have a v4l2 card supporting V4L2_PIX_FMT_{BGR,RGB}32,
>> you test the patch, and you confirm that it works, I'll commit it.
>
> My original patch wasn't correct, I realized it only after testing,
> sorry about that. There are two factors which make this specific format
> difficult to deal with:
>
> * The RGB4 format is apparently not totally specified in the V4L2
> standard. Some drivers think it means RGBA and others think it means
> ARGB:
> http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html#PACKED-RGB
>
> * The 32-bit RGB formats in ffmpeg depend on the host endianess. This
> means that PIX_FMT_RGB32 isn't the same the same if ffmpeg runs on a
> little-endian machine or a big-endian machine.
Maybe these are the factors that confused me when I wrote the
original code, suggesting to comment out the rgb32 format ;-)
> There seems to be an alias which resolves to the correct format based
> on the endianess: PIX_FMT_BGRA.
Yes, I think BGRA should be what is needed here.
> However I suspect it won't
> work on big-endian machines, where it resolves to PIX_FMT_BGR32_1, due
> to ffmpeg refusing to use PIX_FMT_BGR32_1 as an input pixel format:
>
> swScaler: rgb32x is not supported as input pixel format
Well, that's just swscaler not supporting this specific pixel format; it
does not look like v4l2.c's fault. So, I think your patch is ok.
I'll commit your patch later today, or tomorrow, as soon as I have some
time.
Thanks,
Luca
More information about the ffmpeg-devel
mailing list