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

Michael Niedermayer michaelni
Wed Mar 18 22:30:26 CET 2009


On Tue, Mar 17, 2009 at 09:14:32PM +0100, Stefano Sabatini wrote:
> 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

> Index: ffmpeg/libavcodec/avcodec.h
> ===================================================================
> --- ffmpeg.orig/libavcodec/avcodec.h	2009-03-17 21:06:43.000000000 +0100
> +++ ffmpeg/libavcodec/avcodec.h	2009-03-17 21:09:56.000000000 +0100
> @@ -2702,6 +2702,19 @@
>  const char *avcodec_get_pix_fmt_name(int pix_fmt);
>  void avcodec_set_dimensions(AVCodecContext *s, int width, int height);
>  enum PixelFormat avcodec_get_pix_fmt(const char* name);
> +
> +/**
> + * Returns the pixel format corresponding to the name \p name.
> + *
> + * If \p search_ne_variant is zero works like avcodec_get_pix_fmt().
> + * If \p search_ne_variant is non-zero and if there is no pixel format
> + * with name \p name, then a pixel format with the name corresponding
> + * to the native endian format of \p name is searched.  For example in
> + * a little-endian system, first is looked "gray16", then "gray16le".
> + *
> + * Finally if both forms are not found, returns \c PIX_FMT_NONE.
> + */
> +enum PixelFormat avcodec_get_pix_fmt2(const char* name, int search_ne_variant);
>  unsigned int avcodec_pix_fmt_to_codec_tag(enum PixelFormat p);
>  
>  #define FF_LOSS_RESOLUTION  0x0001 /**< loss due to resolution change */

i dont see why a API change would be needed if no be/le postfix is used then
the machine endianness canbe filled in

[...]

> Index: ffmpeg/libavutil/pixfmt.h
> ===================================================================
> --- ffmpeg.orig/libavutil/pixfmt.h	2009-03-15 13:12:28.000000000 +0100
> +++ ffmpeg/libavutil/pixfmt.h	2009-03-15 14:12:48.000000000 +0100
> @@ -113,6 +113,12 @@
>  };
>  
>  #ifdef WORDS_BIGENDIAN
> +#   define PIX_FMT_NE(p) PIX_FMT_##p##BE
> +#else
> +#   define PIX_FMT_NE(p) PIX_FMT_##p##LE
> +#endif
> +
> +#ifdef WORDS_BIGENDIAN
>  #define PIX_FMT_RGBA PIX_FMT_RGB32_1
>  #define PIX_FMT_BGRA PIX_FMT_BGR32_1
>  #define PIX_FMT_ARGB PIX_FMT_RGB32

ok


> Index: ffmpeg/libavutil/pixfmt.h
> ===================================================================
> --- ffmpeg.orig/libavutil/pixfmt.h	2009-03-15 13:14:30.000000000 +0100
> +++ ffmpeg/libavutil/pixfmt.h	2009-03-15 13:16:39.000000000 +0100
> @@ -123,15 +123,14 @@
>  #define PIX_FMT_BGRA PIX_FMT_BGR32_1
>  #define PIX_FMT_ARGB PIX_FMT_RGB32
>  #define PIX_FMT_ABGR PIX_FMT_BGR32
> -#define PIX_FMT_GRAY16 PIX_FMT_GRAY16BE
> -#define PIX_FMT_RGB48 PIX_FMT_RGB48BE
>  #else
>  #define PIX_FMT_RGBA PIX_FMT_BGR32
>  #define PIX_FMT_BGRA PIX_FMT_RGB32
>  #define PIX_FMT_ARGB PIX_FMT_BGR32_1
>  #define PIX_FMT_ABGR PIX_FMT_RGB32_1
> -#define PIX_FMT_GRAY16 PIX_FMT_GRAY16LE
> -#define PIX_FMT_RGB48 PIX_FMT_RGB48LE
>  #endif
>  
> +#define PIX_FMT_GRAY16 PIX_FMT_NE(GRAY16)
> +#define PIX_FMT_RGB48  PIX_FMT_NE(RGB48)
> +
>  #endif /* AVUTIL_PIXFMT_H */

ok


> Index: ffmpeg/libavutil/avutil.h
> ===================================================================
> --- ffmpeg.orig/libavutil/avutil.h	2009-03-17 20:15:18.000000000 +0100
> +++ ffmpeg/libavutil/avutil.h	2009-03-17 20:16:28.000000000 +0100
> @@ -35,7 +35,7 @@
>  #define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
>  
>  #define LIBAVUTIL_VERSION_MAJOR 50
> -#define LIBAVUTIL_VERSION_MINOR  0
> +#define LIBAVUTIL_VERSION_MINOR  1
>  #define LIBAVUTIL_VERSION_MICRO  0
>  
>  #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
> Index: ffmpeg/libavutil/pixfmt.h
> ===================================================================
> --- ffmpeg.orig/libavutil/pixfmt.h	2009-03-17 20:16:27.000000000 +0100
> +++ ffmpeg/libavutil/pixfmt.h	2009-03-17 20:16:28.000000000 +0100
> @@ -66,8 +66,6 @@
>      PIX_FMT_RGB32,     ///< packed RGB 8:8:8, 32bpp, (msb)8A 8R 8G 8B(lsb), in CPU endianness
>      PIX_FMT_YUV410P,   ///< planar YUV 4:1:0,  9bpp, (1 Cr & Cb sample per 4x4 Y samples)
>      PIX_FMT_YUV411P,   ///< planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples)
> -    PIX_FMT_RGB565,    ///< packed RGB 5:6:5, 16bpp, (msb)   5R 6G 5B(lsb), in CPU endianness
> -    PIX_FMT_RGB555,    ///< packed RGB 5:5:5, 16bpp, (msb)1A 5R 5G 5B(lsb), in CPU endianness, most significant bit to 0
>      PIX_FMT_GRAY8,     ///<        Y        ,  8bpp
>      PIX_FMT_MONOWHITE, ///<        Y        ,  1bpp, 0 is white, 1 is black
>      PIX_FMT_MONOBLACK, ///<        Y        ,  1bpp, 0 is black, 1 is white
> @@ -80,8 +78,6 @@
>      PIX_FMT_UYVY422,   ///< packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1
>      PIX_FMT_UYYVYY411, ///< packed YUV 4:1:1, 12bpp, Cb Y0 Y1 Cr Y2 Y3
>      PIX_FMT_BGR32,     ///< packed RGB 8:8:8, 32bpp, (msb)8A 8B 8G 8R(lsb), in CPU endianness
> -    PIX_FMT_BGR565,    ///< packed RGB 5:6:5, 16bpp, (msb)   5B 6G 5R(lsb), in CPU endianness
> -    PIX_FMT_BGR555,    ///< packed RGB 5:5:5, 16bpp, (msb)1A 5B 5G 5R(lsb), in CPU endianness, most significant bit to 1
>      PIX_FMT_BGR8,      ///< packed RGB 3:3:2,  8bpp, (msb)2B 3G 3R(lsb)
>      PIX_FMT_BGR4,      ///< packed RGB 1:2:1,  4bpp, (msb)1B 2G 1R(lsb)
>      PIX_FMT_BGR4_BYTE, ///< packed RGB 1:2:1,  8bpp, (msb)1B 2G 1R(lsb)
> @@ -106,6 +102,17 @@
>      PIX_FMT_VDPAU_VC1, ///< VC-1 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
>      PIX_FMT_RGB48BE,   ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, big-endian
>      PIX_FMT_RGB48LE,   ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, little-endian
> +
> +    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_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
> @@ -132,5 +139,9 @@
>  
>  #define PIX_FMT_GRAY16 PIX_FMT_NE(GRAY16)
>  #define PIX_FMT_RGB48  PIX_FMT_NE(RGB48)
> +#define PIX_FMT_RGB565 PIX_FMT_NE(RGB565)
> +#define PIX_FMT_RGB555 PIX_FMT_NE(RGB555)
> +#define PIX_FMT_BGR565 PIX_FMT_NE(BGR565)
> +#define PIX_FMT_BGR555 PIX_FMT_NE(BGR555)
>  
>  #endif /* AVUTIL_PIXFMT_H */
> Index: ffmpeg/libavcodec/imgconvert.c
> ===================================================================
> --- ffmpeg.orig/libavcodec/imgconvert.c	2009-03-17 20:16:24.000000000 +0100
> +++ ffmpeg/libavcodec/imgconvert.c	2009-03-17 20:16:28.000000000 +0100
> @@ -216,16 +216,32 @@
>          .depth = 16,
>          .x_chroma_shift = 0, .y_chroma_shift = 0,
>      },
> -    [PIX_FMT_RGB565] = {
> -        .name = "rgb565",
> +    [PIX_FMT_RGB565BE] = {
> +        .name = "rgb565be",
>          .nb_channels = 3,
>          .color_type = FF_COLOR_RGB,
>          .pixel_type = FF_PIXEL_PACKED,
>          .depth = 5,
>          .x_chroma_shift = 0, .y_chroma_shift = 0,
>      },
> -    [PIX_FMT_RGB555] = {
> -        .name = "rgb555",
> +    [PIX_FMT_RGB565LE] = {
> +        .name = "rgb565le",
> +        .nb_channels = 3,
> +        .color_type = FF_COLOR_RGB,
> +        .pixel_type = FF_PIXEL_PACKED,
> +        .depth = 5,
> +        .x_chroma_shift = 0, .y_chroma_shift = 0,
> +    },
> +    [PIX_FMT_RGB555BE] = {
> +        .name = "rgb555be",
> +        .nb_channels = 3,
> +        .color_type = FF_COLOR_RGB,
> +        .pixel_type = FF_PIXEL_PACKED,
> +        .depth = 5,
> +        .x_chroma_shift = 0, .y_chroma_shift = 0,
> +    },
> +    [PIX_FMT_RGB555LE] = {
> +        .name = "rgb555le",
>          .nb_channels = 3,
>          .color_type = FF_COLOR_RGB,
>          .pixel_type = FF_PIXEL_PACKED,
> @@ -327,16 +343,32 @@
>          .depth = 8,
>          .x_chroma_shift = 0, .y_chroma_shift = 0,
>      },
> -    [PIX_FMT_BGR565] = {
> -        .name = "bgr565",
> +    [PIX_FMT_BGR565BE] = {
> +        .name = "bgr565be",
> +        .nb_channels = 3,
> +        .color_type = FF_COLOR_RGB,
> +        .pixel_type = FF_PIXEL_PACKED,
> +        .depth = 5,
> +        .x_chroma_shift = 0, .y_chroma_shift = 0,
> +    },
> +    [PIX_FMT_BGR565LE] = {
> +        .name = "bgr565le",
> +        .nb_channels = 3,
> +        .color_type = FF_COLOR_RGB,
> +        .pixel_type = FF_PIXEL_PACKED,
> +        .depth = 5,
> +        .x_chroma_shift = 0, .y_chroma_shift = 0,
> +    },
> +    [PIX_FMT_BGR555BE] = {
> +        .name = "bgr555be",
>          .nb_channels = 3,
>          .color_type = FF_COLOR_RGB,
>          .pixel_type = FF_PIXEL_PACKED,
>          .depth = 5,
>          .x_chroma_shift = 0, .y_chroma_shift = 0,
>      },
> -    [PIX_FMT_BGR555] = {
> -        .name = "bgr555",
> +    [PIX_FMT_BGR555LE] = {
> +        .name = "bgr555le",
>          .nb_channels = 3,
>          .color_type = FF_COLOR_RGB,
>          .pixel_type = FF_PIXEL_PACKED,
> Index: ffmpeg/libavcodec/pixdesc.c
> ===================================================================
> --- ffmpeg.orig/libavcodec/pixdesc.c	2009-03-17 20:15:56.000000000 +0100
> +++ ffmpeg/libavcodec/pixdesc.c	2009-03-17 20:16:28.000000000 +0100
> @@ -142,8 +142,6 @@
>          },
>          .flags = PIX_FMT_BE,
>      },
> -//FIXME change pix fmt defines so that we have a LE & BE instead of a native-endian
> -#if 0
>      [PIX_FMT_RGB565LE] = {
>          .nb_channels  = 3,
>          .log2_chroma_w= 0,
> @@ -165,7 +163,6 @@
>          },
>          .flags = PIX_FMT_BE,
>      },
> -#endif
>      [PIX_FMT_MONOBLACK] = {
>          .nb_channels  = 1,
>          .log2_chroma_w= 0,

ok

> Index: ffmpeg/libavcodec/pixdesc.c
> ===================================================================
> --- ffmpeg.orig/libavcodec/pixdesc.c	2009-03-17 20:16:28.000000000 +0100
> +++ ffmpeg/libavcodec/pixdesc.c	2009-03-17 21:01:34.000000000 +0100
> @@ -147,9 +147,9 @@
>          .log2_chroma_w= 0,
>          .log2_chroma_h= 0,
>          .comp = {
> -            {0,1,1,0,4},
> -            {0,1,1,5,5},
> -            {0,1,2,3,4},
> +            {0,1,2,3,4},        /* R */
> +            {0,1,1,5,5},        /* G */
> +            {0,1,1,0,4},        /* B */
>          },
>      },
>      [PIX_FMT_RGB565BE] = {
> @@ -157,9 +157,9 @@
>          .log2_chroma_w= 0,
>          .log2_chroma_h= 0,
>          .comp = {
> -            {0,1,1, 0,4},
> -            {0,1,1, 5,5},
> -            {0,1,0, 3,4},
> +            {0,1,0,3,4},       /* R */
> +            {0,1,1,5,5},       /* G */
> +            {0,1,1,0,4},       /* B */
>          },
>          .flags = PIX_FMT_BE,
>      },

ok if tested


> Index: ffmpeg/libavcodec/pixdesc.c
> ===================================================================
> --- ffmpeg.orig/libavcodec/pixdesc.c	2009-03-17 20:16:33.000000000 +0100
> +++ ffmpeg/libavcodec/pixdesc.c	2009-03-17 21:01:02.000000000 +0100
> @@ -163,6 +163,27 @@
>          },
>          .flags = PIX_FMT_BE,
>      },
> +    [PIX_FMT_RGB555LE] = {
> +        .nb_channels  = 3,
> +        .log2_chroma_w= 0,
> +        .log2_chroma_h= 0,
> +        .comp = {
> +            {0,1,2,2,4},        /* R */
> +            {0,1,1,5,4},        /* G */
> +            {0,1,1,0,4},        /* B */
> +        },
> +    },
> +    [PIX_FMT_RGB555BE] = {
> +        .nb_channels  = 3,
> +        .log2_chroma_w= 0,
> +        .log2_chroma_h= 0,
> +        .comp = {
> +            {0,1,0,2,4},       /* R */
> +            {0,1,1,5,4},       /* G */
> +            {0,1,1,0,4},       /* B */
> +        },
> +        .flags = PIX_FMT_BE,
> +    },
>      [PIX_FMT_MONOBLACK] = {
>          .nb_channels  = 1,
>          .log2_chroma_w= 0,
> Index: ffmpeg/libavcodec/pixdesc.c
> ===================================================================
> --- ffmpeg.orig/libavcodec/pixdesc.c	2009-03-17 20:17:12.000000000 +0100
> +++ ffmpeg/libavcodec/pixdesc.c	2009-03-17 20:18:54.000000000 +0100
> @@ -184,6 +184,48 @@
>          },
>          .flags = PIX_FMT_BE,
>      },
> +    [PIX_FMT_BGR565LE] = {
> +        .nb_channels  = 3,
> +        .log2_chroma_w= 0,
> +        .log2_chroma_h= 0,
> +        .comp = {
> +            {0,1,2,3,4},        /* B */
> +            {0,1,1,5,5},        /* G */
> +            {0,1,1,0,4},        /* R */
> +        },
> +    },
> +    [PIX_FMT_BGR565BE] = {
> +        .nb_channels  = 3,
> +        .log2_chroma_w= 0,
> +        .log2_chroma_h= 0,
> +        .comp = {
> +            {0,1,0,3,4},        /* B */
> +            {0,1,1,5,5},        /* G */
> +            {0,1,1,0,4},        /* R */
> +        },
> +        .flags = PIX_FMT_BE,
> +    },
> +    [PIX_FMT_BGR555LE] = {
> +        .nb_channels  = 3,
> +        .log2_chroma_w= 0,
> +        .log2_chroma_h= 0,
> +        .comp = {
> +            {0,1,2,2,4},        /* B */
> +            {0,1,1,5,4},        /* G */
> +            {0,1,1,0,4},        /* R */
> +        },
> +    },
> +    [PIX_FMT_BGR555BE] = {
> +        .nb_channels  = 3,
> +        .log2_chroma_w= 0,
> +        .log2_chroma_h= 0,
> +        .comp = {
> +            {0,1,0,2,4},       /* B */
> +            {0,1,1,5,4},       /* G */
> +            {0,1,1,0,4},       /* R */
> +        },
> +        .flags = PIX_FMT_BE,
> +    },
>      [PIX_FMT_MONOBLACK] = {
>          .nb_channels  = 1,
>          .log2_chroma_w= 0,

again, ok if tested

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Freedom in capitalist society always remains about the same as it was in
ancient Greek republics: Freedom for slave owners. -- Vladimir Lenin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090318/3b27597d/attachment.pgp>



More information about the ffmpeg-devel mailing list