[FFmpeg-devel] [PATCH] Define endian variant for PIX_FMT_RGB/BGR_5X5

Stefano Sabatini stefano.sabatini-lala
Tue Mar 17 21:14:32 CET 2009


On date Tuesday 2009-03-17 09:05:26 +0100, Stefano Sabatini encoded:
> On date Sunday 2009-03-15 20:29:18 +0100, Michael Niedermayer encoded:
> > On Sun, Mar 15, 2009 at 07:57:05PM +0100, Stefano Sabatini wrote:
> > > On date Sunday 2009-03-15 19:24:03 +0100, Michael Niedermayer encoded:
> > > > On Sun, Mar 15, 2009 at 03:54:00PM +0100, Stefano Sabatini wrote:
> > > [...]
> > > > > @@ -109,6 +103,17 @@
> > > > >      PIX_FMT_VAAPI_MOCO, ///< HW acceleration through VA API at motion compensation entry-point, Picture.data[3] contains a vaapi_render_state struct which contains macroblocks as well as various fields extracted from headers
> > > > >      PIX_FMT_VAAPI_IDCT, ///< HW acceleration through VA API at IDCT entry-point, Picture.data[3] contains a vaapi_render_state struct which contains fields extracted from headers
> > > > >      PIX_FMT_VAAPI_VLD,  ///< HW decoding through VA API, Picture.data[3] contains a vaapi_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
> > > > > +
> > > > > +    PIX_FMT_RGB565BE,  ///< packed RGB 5:6:5, 16bpp, (msb)   5R 6G 5B(lsb), big-endian
> > > > > +    PIX_FMT_RGB565LE,  ///< packed RGB 5:6:5, 16bpp, (msb)   5R 6G 5B(lsb), little-endian
> > > > > +    PIX_FMT_RGB555BE,  ///< packed RGB 5:5:5, 16bpp, (msb)1A 5R 5G 5B(lsb), big-endian, most significant bit to 0
> > > > > +    PIX_FMT_RGB555LE,  ///< packed RGB 5:5:5, 16bpp, (msb)1A 5R 5G 5B(lsb), little-endian, most significant bit to 0
> > > > > +
> > > > > +    PIX_FMT_BGR565BE,  ///< packed BGR 5:6:5, 16bpp, (msb)   5B 6G 5R(lsb), big-endian
> > > > > +    PIX_FMT_BGR565LE,  ///< packed BGR 5:6:5, 16bpp, (msb)   5B 6G 5R(lsb), little-endian
> > > > > +    PIX_FMT_BGR555BE,  ///< packed BGR 5:5:5, 16bpp, (msb)1A 5B 5G 5R(lsb), big-endian, most significant bit to 1
> > > > > +    PIX_FMT_BGR555LE,  ///< packed BGR 5:5:5, 16bpp, (msb)1A 5B 5G 5R(lsb), little-endian, most significant bit to 1
> > > > > +
> > > > >      PIX_FMT_NB,        ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions
> > > > 
> > > > i suspect you violate the "note" above with that ordering
> > > 
> > > Indeed (also I'm not perfectly convinced that's a good idea, maybe
> > > this is a requirement we could avoid using the PIX_FMT_BE in
> > > pixdesc?). 
> > 
> > ive also thought about using the 2nd lest sig bit for rgb vs bgr,
> > maybe as we are already breaking ABI that could be done too.
> > 
> > 
> > > 
> > > Fixed locally.
> > > 
> > > > [...]
> > > > 
> > > > > Index: ffmpeg/tests/libav.regression.ref
> > > > > ===================================================================
> > > > > --- ffmpeg.orig/tests/libav.regression.ref	2009-03-15 15:28:06.000000000 +0100
> > > > > +++ ffmpeg/tests/libav.regression.ref	2009-03-15 15:28:13.000000000 +0100
> > > > > @@ -124,10 +124,10 @@
> > > > >  304128 ./tests/data/b-libav-bgr24.yuv
> > > > >  7c1108633b0fef1aff5637fe70e74d0c *./tests/data/b-libav-rgb32.yuv
> > > > >  304128 ./tests/data/b-libav-rgb32.yuv
> > > > > -d86c3fa21db8b4eaf3efb66b7b245e46 *./tests/data/b-libav-rgb565.yuv
> > > > > -304128 ./tests/data/b-libav-rgb565.yuv
> > > > > -64d733888d3f17513383453fae238fdc *./tests/data/b-libav-rgb555.yuv
> > > > > -304128 ./tests/data/b-libav-rgb555.yuv
> > > > > +d86c3fa21db8b4eaf3efb66b7b245e46 *./tests/data/b-libav-rgb565le.yuv
> > > > > +304128 ./tests/data/b-libav-rgb565le.yuv
> > > > > +64d733888d3f17513383453fae238fdc *./tests/data/b-libav-rgb555le.yuv
> > > > > +304128 ./tests/data/b-libav-rgb555le.yuv
> > > > >  838958bb95a41057a18bbb647c39ba87 *./tests/data/b-libav-gray.yuv
> > > > >  304128 ./tests/data/b-libav-gray.yuv
> > > > >  c7c9d2b2926e1677c27bd7df89f53073 *./tests/data/b-libav-monow.yuv
> > > > > Index: ffmpeg/tests/regression.sh
> > > > > ===================================================================
> > > > > --- ffmpeg.orig/tests/regression.sh	2009-03-15 14:56:06.000000000 +0100
> > > > > +++ ffmpeg/tests/regression.sh	2009-03-15 14:56:13.000000000 +0100
> > > > > @@ -639,7 +639,7 @@
> > > > >  
> > > > >  if [ -n "$do_pixfmt" ] ; then
> > > > >  conversions="yuv420p yuv422p yuv444p yuyv422 yuv410p yuv411p yuvj420p \
> > > > > -             yuvj422p yuvj444p rgb24 bgr24 rgb32 rgb565 rgb555 gray monow \
> > > > > +             yuvj422p yuvj444p rgb24 bgr24 rgb32 rgb565le rgb555le gray monow \
> > > > >               monob yuv440p yuvj440p"
> > > > >  for pix_fmt in $conversions ; do
> > > > >      file=${outfile}libav-${pix_fmt}.yuv
> > > > 
> > > > that wont work on BE-archs
> > > 
> > > Maybe we could make av_get_pix_fmt("rgb565") select the correct
> > > variant according to the endianess of the system (for example:
> > > avcodec_get_pix_fmt() looks for "rgb565", it's missing, so it tryies
> > > again with "rgb565le"/"rgb565be").
> > > 
> > > Would be this acceptable?
> > 
> > yes
> 
> Series updated.

The series was against a non-clean working tree, new one attached with
some cleanups/fixes.

Regards.
-- 
FFmpeg = Funny and Friendly Meaningful Power Elastic Governor
-------------- next part --------------
A non-text attachment was scrubbed...
Name: implement-get-pix-fmt2.patch
Type: text/x-diff
Size: 2018 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090317/0b0d75ac/attachment.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: use-get-pix-fmt2.patch
Type: text/x-diff
Size: 947 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090317/0b0d75ac/attachment-0001.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: implement-pixfmt-ne.patch
Type: text/x-diff
Size: 526 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090317/0b0d75ac/attachment-0002.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: use-pixfmt-end-reg.patch
Type: text/x-diff
Size: 812 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090317/0b0d75ac/attachment-0003.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: define-rgb-bgr-56X-be-le.patch
Type: text/x-diff
Size: 7402 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090317/0b0d75ac/attachment-0004.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pixdescs-rgb-565-cosmetics.patch
Type: text/x-diff
Size: 934 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090317/0b0d75ac/attachment-0005.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: add-rgb555-pixdescs.patch
Type: text/x-diff
Size: 975 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090317/0b0d75ac/attachment-0006.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: add-bgr-5x5-pixdescs.patch
Type: text/x-diff
Size: 1553 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090317/0b0d75ac/attachment-0007.patch>



More information about the ffmpeg-devel mailing list