On Tue, Jun 01, 2010 at 10:14:07PM +0200, Robert Schwebel wrote:
> While being there, reworked the option list from the configure --help
> output.
> 
> Signed-off-by: Robert Schwebel <r.schwe...@pengutronix.de>
> ---
>  .../add-RGB666-Support-to-ffmpegcolorspace.patch   |  296 
> --------------------
>  .../add-rgb666-support-to-videotestsrc.patch       |   82 ------
>  patches/gst-plugins-base-0.10.25/series            |    1 -
>  .../add-RGB666-Support-to-ffmpegcolorspace.patch   |  296 
> ++++++++++++++++++++
>  .../add-rgb666-support-to-videotestsrc.patch       |   82 ++++++
>  patches/gst-plugins-base-0.10.29/series            |    1 +
>  rules/gst-plugins-base.in                          |   36 ++--
>  rules/gst-plugins-base.make                        |   58 +++--
>  rules/qt4.in                                       |    1 -
>  9 files changed, 432 insertions(+), 421 deletions(-)
>  delete mode 100644 
> patches/gst-plugins-base-0.10.25/add-RGB666-Support-to-ffmpegcolorspace.patch
>  delete mode 100644 
> patches/gst-plugins-base-0.10.25/add-rgb666-support-to-videotestsrc.patch
>  delete mode 100644 patches/gst-plugins-base-0.10.25/series
>  create mode 100644 
> patches/gst-plugins-base-0.10.29/add-RGB666-Support-to-ffmpegcolorspace.patch
>  create mode 100644 
> patches/gst-plugins-base-0.10.29/add-rgb666-support-to-videotestsrc.patch
>  create mode 100644 patches/gst-plugins-base-0.10.29/series
> 
> diff --git 
> a/patches/gst-plugins-base-0.10.25/add-RGB666-Support-to-ffmpegcolorspace.patch
>  
> b/patches/gst-plugins-base-0.10.25/add-RGB666-Support-to-ffmpegcolorspace.patch
> deleted file mode 100644
> index b8e2b47..0000000
> --- 
> a/patches/gst-plugins-base-0.10.25/add-RGB666-Support-to-ffmpegcolorspace.patch
> +++ /dev/null
> @@ -1,296 +0,0 @@
> -From: Luotao Fu <l...@pengutronix.de>
> -Date: Thu, 11 Dec 2008 17:02:52 +0100
> -Subject: [PATCH] added RGB666 Support to ffmpegcolorspace
> -
> -This one adds RGB666 Support to ffmpegcolorspace
> -Still very hacky, need to be enhanced before submitting to mainline
> -
> -Signed-off-by: Luotao Fu <l...@pengutronix.de>
> ----
> - gst/ffmpegcolorspace/avcodec.h           |    1 
> - gst/ffmpegcolorspace/gstffmpegcodecmap.c |   26 ++++++++++-
> - gst/ffmpegcolorspace/imgconvert.c        |   70 
> +++++++++++++++++++++++++++++--
> - 3 files changed, 90 insertions(+), 7 deletions(-)
> -
> -Index: gst/ffmpegcolorspace/avcodec.h
> -===================================================================
> ---- gst/ffmpegcolorspace/avcodec.h.orig
> -+++ gst/ffmpegcolorspace/avcodec.h
> -@@ -87,6 +87,7 @@ enum PixelFormat {
> -     PIX_FMT_UYVY411,   ///< Packed pixel, Cb Y0 Y1 Cr Y2 Y3
> - 
> -     PIX_FMT_AYUV4444,  ///< Packed pixel, A0 Y0 Cb Cr
> -+    PIX_FMT_RGB666,
> -     PIX_FMT_NB
> - };
> - 
> -Index: gst/ffmpegcolorspace/imgconvert.c
> -===================================================================
> ---- gst/ffmpegcolorspace/imgconvert.c.orig
> -+++ gst/ffmpegcolorspace/imgconvert.c
> -@@ -409,8 +409,18 @@ static PixFmtInfo pix_fmt_info[PIX_FMT_N
> -         /* .x_chroma_shift = */ 0,
> -         /* .y_chroma_shift = */ 0,
> -         /*.depth = */ 8
> -+      },
> -+  /* [PIX_FMT_RGB666] = */ {
> -+        /* .format         = */ PIX_FMT_RGB666,
> -+        /* .name           = */ "rgb666",
> -+        /* .nb_channels    = */ 4,
> -+        /* .color_type     = */ FF_COLOR_RGB,
> -+        /* .pixel_type     = */ FF_PIXEL_PLANAR,
> -+        /* .is_alpha       = */ 0,
> -+        /* .x_chroma_shift = */ 0,
> -+        /* .y_chroma_shift = */ 0,
> -+        /* .depth          = */ 6,
> -       }
> --
> - };
> - 
> - /* returns NULL if not found */
> -@@ -419,7 +429,6 @@ PixFmtInfo *
> - get_pix_fmt_info (enum PixelFormat format)
> - {
> -   int i;
> --
> -   for (i = 0; i < sizeof (pix_fmt_info) / sizeof (pix_fmt_info[0]); i++) {
> -     if (pix_fmt_info[i].format == format) {
> -       return pix_fmt_info + i;
> -@@ -594,6 +603,8 @@ avg_bits_per_pixel (int pix_fmt)
> -         case PIX_FMT_RGB555:
> -           bits = 16;
> -           break;
> -+    case PIX_FMT_RGB666:
> -+      bits = 8 *  pf->nb_channels;
> -         case PIX_FMT_UYVY411:
> -           bits = 12;
> -           break;
> -@@ -603,7 +614,9 @@ avg_bits_per_pixel (int pix_fmt)
> -       }
> -       break;
> -     case FF_PIXEL_PLANAR:
> --      if (pf->x_chroma_shift == 0 && pf->y_chroma_shift == 0) {
> -+      if(pix_fmt == PIX_FMT_RGB666) {
> -+    bits =  8 *  pf->nb_channels;
> -+      } else if (pf->x_chroma_shift == 0 && pf->y_chroma_shift == 0) {
> -         bits = pf->depth * pf->nb_channels;
> -       } else {
> -         bits = pf->depth + ((2 * pf->depth) >>
> -@@ -661,7 +674,6 @@ avcodec_find_best_pix_fmt (int pix_fmt_m
> -     ~FF_LOSS_DEPTH,
> -     0,
> -   };
> --
> -   /* try with successive loss */
> -   i = 0;
> -   for (;;) {
> -@@ -1768,6 +1780,37 @@ bitcopy_n (unsigned int a, int n)
> - 
> - #include "imgconvert_template.h"
> - 
> -+/* rgb666 handling */
> -+
> -+#define RGB_NAME rgb666
> -+#define FMT_RGB666
> -+
> -+#define RGB_IN(r, g, b, s)\
> -+{\
> -+    unsigned int v = ((const uint32_t *)(s))[0];\
> -+    r = (v >> 12) & 0x3f;\
> -+    g = (v >> 6) & 0x3f;\
> -+    b = v & 0x3f;\
> -+}
> -+
> -+#define RGBA_IN(r, g, b, a, s)\
> -+{\
> -+    unsigned int v = ((const uint32_t *)(s))[0];\
> -+    a = 0xff;\
> -+    r = (v >> 12) & 0x3f;\
> -+    g = (v >> 6) & 0x3f;\
> -+    b = v & 0x3f;\
> -+}
> -+
> -+#define RGBA_OUT(d, r, g, b, a)\
> -+{\
> -+    ((uint32_t *)(d))[0] = ((r >> 2) << 12) | ((g >> 2) << 6) | (b >> 2);\
> -+}
> -+
> -+#define BPP 4
> -+
> -+#include "imgconvert_template.h"
> -+
> - /* xrgb32 handling */
> - 
> - #define RGB_NAME xrgb32
> -@@ -2099,6 +2142,7 @@ static ConvertEntry convert_table[] = {
> -   {PIX_FMT_YUV420P, PIX_FMT_RGB565, yuv420p_to_rgb565},
> -   {PIX_FMT_YUV420P, PIX_FMT_BGR24, yuv420p_to_bgr24},
> -   {PIX_FMT_YUV420P, PIX_FMT_RGB24, yuv420p_to_rgb24},
> -+  {PIX_FMT_YUV420P, PIX_FMT_RGB666, yuv420p_to_rgb666},
> -   {PIX_FMT_YUV420P, PIX_FMT_RGB32, yuv420p_to_rgb32},
> -   {PIX_FMT_YUV420P, PIX_FMT_BGR32, yuv420p_to_bgr32},
> -   {PIX_FMT_YUV420P, PIX_FMT_xRGB32, yuv420p_to_xrgb32},
> -@@ -2112,6 +2156,7 @@ static ConvertEntry convert_table[] = {
> -   {PIX_FMT_NV12, PIX_FMT_RGB565, nv12_to_rgb565},
> -   {PIX_FMT_NV12, PIX_FMT_BGR24, nv12_to_bgr24},
> -   {PIX_FMT_NV12, PIX_FMT_RGB24, nv12_to_rgb24},
> -+  {PIX_FMT_NV12, PIX_FMT_RGB666, nv12_to_rgb666},
> -   {PIX_FMT_NV12, PIX_FMT_RGB32, nv12_to_rgb32},
> -   {PIX_FMT_NV12, PIX_FMT_BGR32, nv12_to_bgr32},
> -   {PIX_FMT_NV12, PIX_FMT_xRGB32, nv12_to_xrgb32},
> -@@ -2126,6 +2171,7 @@ static ConvertEntry convert_table[] = {
> -   {PIX_FMT_NV21, PIX_FMT_RGB565, nv21_to_rgb565},
> -   {PIX_FMT_NV21, PIX_FMT_BGR24, nv21_to_bgr24},
> -   {PIX_FMT_NV21, PIX_FMT_RGB24, nv21_to_rgb24},
> -+  {PIX_FMT_NV21, PIX_FMT_RGB666, nv21_to_rgb666},
> -   {PIX_FMT_NV21, PIX_FMT_RGB32, nv21_to_rgb32},
> -   {PIX_FMT_NV21, PIX_FMT_BGR32, nv21_to_bgr32},
> -   {PIX_FMT_NV21, PIX_FMT_xRGB32, nv21_to_xrgb32},
> -@@ -2145,6 +2191,7 @@ static ConvertEntry convert_table[] = {
> -   {PIX_FMT_YUVJ420P, PIX_FMT_RGB565, yuvj420p_to_rgb565},
> -   {PIX_FMT_YUVJ420P, PIX_FMT_BGR24, yuvj420p_to_bgr24},
> -   {PIX_FMT_YUVJ420P, PIX_FMT_RGB24, yuvj420p_to_rgb24},
> -+  {PIX_FMT_YUVJ420P, PIX_FMT_RGB666, yuvj420p_to_rgb666},
> -   {PIX_FMT_YUVJ420P, PIX_FMT_RGB32, yuvj420p_to_rgb32},
> -   {PIX_FMT_YUVJ420P, PIX_FMT_BGR32, yuvj420p_to_bgr32},
> -   {PIX_FMT_YUVJ420P, PIX_FMT_RGB32, yuvj420p_to_xrgb32},
> -@@ -2167,6 +2214,7 @@ static ConvertEntry convert_table[] = {
> -   {PIX_FMT_RGB24, PIX_FMT_NV21, rgb24_to_nv21},
> -   {PIX_FMT_RGB24, PIX_FMT_RGB565, rgb24_to_rgb565},
> -   {PIX_FMT_RGB24, PIX_FMT_RGB555, rgb24_to_rgb555},
> -+  {PIX_FMT_RGB24, PIX_FMT_RGB666, rgb24_to_rgb666},
> -   {PIX_FMT_RGB24, PIX_FMT_RGB32, rgb24_to_rgb32},
> -   {PIX_FMT_RGB24, PIX_FMT_BGR32, rgb24_to_bgr32},
> -   {PIX_FMT_RGB24, PIX_FMT_xRGB32, rgb24_to_xrgb32},
> -@@ -2185,6 +2233,7 @@ static ConvertEntry convert_table[] = {
> - 
> -   {PIX_FMT_RGB32, PIX_FMT_RGB24, rgb32_to_rgb24},
> -   {PIX_FMT_RGB32, PIX_FMT_RGB555, rgba32_to_rgb555},
> -+  {PIX_FMT_RGB32, PIX_FMT_RGB666, rgba32_to_rgb666},
> -   {PIX_FMT_RGB32, PIX_FMT_PAL8, rgb32_to_pal8},
> -   {PIX_FMT_RGB32, PIX_FMT_YUV420P, rgb32_to_yuv420p},
> -   {PIX_FMT_RGB32, PIX_FMT_NV12, rgb32_to_nv12},
> -@@ -2205,6 +2254,7 @@ static ConvertEntry convert_table[] = {
> -   {PIX_FMT_RGBA32, PIX_FMT_BGRx32, rgba32_to_bgrx32},
> -   {PIX_FMT_RGBA32, PIX_FMT_ABGR32, rgba32_to_abgr32},
> -   {PIX_FMT_RGBA32, PIX_FMT_RGB24, rgba32_to_rgb24},
> -+  {PIX_FMT_RGBA32, PIX_FMT_RGB666, rgba32_to_rgb666},
> -   {PIX_FMT_RGBA32, PIX_FMT_RGB555, rgba32_to_rgb555},
> -   {PIX_FMT_RGBA32, PIX_FMT_PAL8, rgba32_to_pal8},
> -   {PIX_FMT_RGBA32, PIX_FMT_YUV420P, rgba32_to_yuv420p},
> -@@ -2269,10 +2319,18 @@ static ConvertEntry convert_table[] = {
> -   {PIX_FMT_RGB565, PIX_FMT_NV21, rgb565_to_nv21},
> -   {PIX_FMT_RGB565, PIX_FMT_GRAY8, rgb565_to_gray},
> - 
> -+  {PIX_FMT_RGB666, PIX_FMT_GRAY8, rgb666_to_gray},
> -+  {PIX_FMT_RGB666, PIX_FMT_NV12, rgb666_to_nv12},
> -+  {PIX_FMT_RGB666, PIX_FMT_NV21, rgb666_to_nv21},
> -+  {PIX_FMT_RGB666, PIX_FMT_YUV420P, rgb666_to_yuv420p},
> -+  {PIX_FMT_RGB666, PIX_FMT_RGBA32, rgb666_to_rgba32},
> -+  {PIX_FMT_RGB666, PIX_FMT_RGB24, rgb666_to_rgb24},
> -+
> -   {PIX_FMT_GRAY8, PIX_FMT_RGB555, gray_to_rgb555},
> -   {PIX_FMT_GRAY8, PIX_FMT_RGB565, gray_to_rgb565},
> -   {PIX_FMT_GRAY8, PIX_FMT_RGB24, gray_to_rgb24},
> -   {PIX_FMT_GRAY8, PIX_FMT_BGR24, gray_to_bgr24},
> -+  {PIX_FMT_GRAY8, PIX_FMT_RGB666, gray_to_rgb666},
> -   {PIX_FMT_GRAY8, PIX_FMT_RGB32, gray_to_rgb32},
> -   {PIX_FMT_GRAY8, PIX_FMT_BGR32, gray_to_bgr32},
> -   {PIX_FMT_GRAY8, PIX_FMT_xRGB32, gray_to_xrgb32},
> -@@ -2292,6 +2350,7 @@ static ConvertEntry convert_table[] = {
> -   {PIX_FMT_PAL8, PIX_FMT_RGB565, pal8_to_rgb565},
> -   {PIX_FMT_PAL8, PIX_FMT_BGR24, pal8_to_bgr24},
> -   {PIX_FMT_PAL8, PIX_FMT_RGB24, pal8_to_rgb24},
> -+  {PIX_FMT_PAL8, PIX_FMT_RGB666, pal8_to_rgb666},
> -   {PIX_FMT_PAL8, PIX_FMT_RGB32, pal8_to_rgb32},
> -   {PIX_FMT_PAL8, PIX_FMT_BGR32, pal8_to_bgr32},
> -   {PIX_FMT_PAL8, PIX_FMT_xRGB32, pal8_to_xrgb32},
> -@@ -2656,6 +2715,9 @@ img_get_alpha_info (const AVPicture * sr
> -     case PIX_FMT_ABGR32:
> -       ret = get_alpha_info_abgr32 (src, width, height);
> -       break;
> -+    case PIX_FMT_RGB666:
> -+      ret = get_alpha_info_rgb666 (src, width, height);
> -+      break;
> -     case PIX_FMT_RGB555:
> -       ret = get_alpha_info_rgb555 (src, width, height);
> -       break;
> -Index: gst/ffmpegcolorspace/gstffmpegcodecmap.c
> -===================================================================
> ---- gst/ffmpegcolorspace/gstffmpegcodecmap.c.orig
> -+++ gst/ffmpegcolorspace/gstffmpegcodecmap.c
> -@@ -219,6 +219,14 @@ gst_ffmpeg_pixfmt_to_caps (enum PixelFor
> -       b_mask = 0xff000000;
> - #endif
> -       break;
> -+    case PIX_FMT_RGB666:
> -+      bpp = 32;
> -+      depth = 18;
> -+      endianness = G_BIG_ENDIAN;
> -+      r_mask = 0x0003f000;
> -+      g_mask = 0x00000fc0;
> -+      b_mask = 0x0000003f;
> -+      break;
> -     case PIX_FMT_BGR32:
> -       bpp = 32;
> -       depth = 24;
> -@@ -630,7 +638,6 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps
> -     }
> -   } else if (gst_structure_has_name (structure, "video/x-raw-rgb")) {
> -     gint bpp = 0, rmask = 0, endianness = 0, amask = 0, depth = 0;
> --
> -     if (gst_structure_get_int (structure, "bpp", &bpp) &&
> -         gst_structure_get_int (structure, "endianness", &endianness)) {
> -       if (gst_structure_get_int (structure, "red_mask", &rmask)) {
> -@@ -642,6 +649,8 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps
> -                 context->pix_fmt = PIX_FMT_BGRA32;
> -               else if (rmask == 0x00ff0000)
> -                 context->pix_fmt = PIX_FMT_RGBA32;
> -+              else if (rmask == 0x0003f000)
> -+                context->pix_fmt = PIX_FMT_RGB666;
> -               else if (rmask == 0xff000000)
> -                 context->pix_fmt = PIX_FMT_ARGB32;
> -               else              // if (r_mask = 0x000000ff)
> -@@ -651,6 +660,11 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps
> -                 context->pix_fmt = PIX_FMT_BGRA32;
> -               else if (rmask == 0x0000ff00)
> -                 context->pix_fmt = PIX_FMT_RGBA32;
> -+          /* XXX: Hack here, gstreamer seems not to treat endianess in a
> -+           * consistent way between plugins. Since we only have RGB666 for
> -+           * now, We have to hack it around here */
> -+              else if (rmask == 0x0003f000)
> -+                context->pix_fmt = PIX_FMT_RGB666;
> -               else if (rmask == 0x000000ff)
> -                 context->pix_fmt = PIX_FMT_ARGB32;
> -               else              // if (rmask == 0xff000000)
> -@@ -662,7 +676,9 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps
> -                 context->pix_fmt = PIX_FMT_RGB32;
> -               else if (rmask == 0x0000ff00)
> -                 context->pix_fmt = PIX_FMT_BGR32;
> --              else if (rmask == 0xff000000)
> -+          else if (rmask == 0x0003f000)
> -+            context->pix_fmt = PIX_FMT_RGB666;
> -+          else if (rmask == 0xff000000)
> -                 context->pix_fmt = PIX_FMT_xRGB32;
> -               else              // if (rmask == 0x000000ff)
> -                 context->pix_fmt = PIX_FMT_BGRx32;
> -@@ -671,7 +687,10 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps
> -                 context->pix_fmt = PIX_FMT_RGB32;
> -               else if (rmask == 0x00ff0000)
> -                 context->pix_fmt = PIX_FMT_BGR32;
> --              else if (rmask == 0x000000ff)
> -+          /* XXX: Hack here, see XXX section above for more details */
> -+          else if (rmask == 0x0003f000)
> -+            context->pix_fmt = PIX_FMT_RGB666;
> -+          else if (rmask == 0x000000ff)
> -                 context->pix_fmt = PIX_FMT_xRGB32;
> -               else              // if (rmask == 0xff000000)
> -                 context->pix_fmt = PIX_FMT_BGRx32;
> -@@ -837,6 +856,7 @@ gst_ffmpegcsp_avpicture_fill (AVPicture 
> -       picture->linesize[0] = stride;
> -       return size;
> -     case PIX_FMT_AYUV4444:
> -+    case PIX_FMT_RGB666:
> -     case PIX_FMT_RGB32:
> -     case PIX_FMT_RGBA32:
> -     case PIX_FMT_ARGB32:
> diff --git 
> a/patches/gst-plugins-base-0.10.25/add-rgb666-support-to-videotestsrc.patch 
> b/patches/gst-plugins-base-0.10.25/add-rgb666-support-to-videotestsrc.patch
> deleted file mode 100644
> index 74fd685..0000000
> --- 
> a/patches/gst-plugins-base-0.10.25/add-rgb666-support-to-videotestsrc.patch
> +++ /dev/null
> @@ -1,82 +0,0 @@
> -From b03b40150cb7755d3bcdb1a42883a5543779e1dc Mon Sep 17 00:00:00 2001
> -From: Luotao Fu <l...@pengutronix.de>
> -Date: Thu, 11 Dec 2008 15:17:36 +0100
> -Subject: [PATCH]  add rgb666 support
> -
> - This one adds RGB666 support to videotestsrc.
> -
> -Signed-off-by: Luotao Fu <l...@pengutronix.de>
> ----
> - gst/videotestsrc/videotestsrc.c |   28 ++++++++++++++++++++++++++++
> - 1 files changed, 28 insertions(+), 0 deletions(-)
> -
> -diff --git a/gst/videotestsrc/videotestsrc.c 
> b/gst/videotestsrc/videotestsrc.c
> -index b9f29fb..e6fb9e5 100644
> ---- gst/videotestsrc/videotestsrc.c
> -+++ gst/videotestsrc/videotestsrc.c
> -@@ -329,6 +329,7 @@ static void paint_setup_xRGB8888 (paintinfo * p, 
> unsigned char *dest);
> - static void paint_setup_xBGR8888 (paintinfo * p, unsigned char *dest);
> - static void paint_setup_RGBx8888 (paintinfo * p, unsigned char *dest);
> - static void paint_setup_BGRx8888 (paintinfo * p, unsigned char *dest);
> -+static void paint_setup_RGB666 (paintinfo * p, unsigned char *dest);
> - static void paint_setup_RGB888 (paintinfo * p, unsigned char *dest);
> - static void paint_setup_BGR888 (paintinfo * p, unsigned char *dest);
> - static void paint_setup_RGB565 (paintinfo * p, unsigned char *dest);
> -@@ -351,6 +352,7 @@ static void paint_hline_IMC1 (paintinfo * p, int x, int 
> y, int w);
> - static void paint_hline_YUV9 (paintinfo * p, int x, int y, int w);
> - static void paint_hline_str4 (paintinfo * p, int x, int y, int w);
> - static void paint_hline_str3 (paintinfo * p, int x, int y, int w);
> -+static void paint_hline_RGB666 (paintinfo * p, int x, int y, int w);
> - static void paint_hline_RGB565 (paintinfo * p, int x, int y, int w);
> - static void paint_hline_xRGB1555 (paintinfo * p, int x, int y, int w);
> - 
> -@@ -432,6 +434,8 @@ struct fourcc_list_struct fourcc_list[] = {
> -       0xff000000, 0x00ff0000, 0x0000ff00, 0x000000ff},
> -   {VTS_RGB, "RGB ", "BGRA8888", 32, paint_setup_BGRA8888, paint_hline_str4, 
> 32,
> -       0x0000ff00, 0x00ff0000, 0xff000000, 0x000000ff},
> -+  {VTS_RGB, "RGB ", "RGB666", 32, paint_setup_RGB666, paint_hline_RGB666, 
> 18,
> -+      0x0003f000, 0x00000fc0, 0x0000003f},
> -   {VTS_RGB, "RGB ", "RGB888", 24, paint_setup_RGB888, paint_hline_str3, 24,
> -       0x00ff0000, 0x0000ff00, 0x000000ff},
> -   {VTS_RGB, "RGB ", "BGR888", 24, paint_setup_BGR888, paint_hline_str3, 24,
> -@@ -1700,6 +1704,16 @@ paint_setup_BGRx8888 (paintinfo * p, unsigned char 
> *dest)
> - }
> - 
> - static void
> -+paint_setup_RGB666 (paintinfo * p, unsigned char *dest)
> -+{
> -+  p->yp = dest + 0;
> -+  p->up = dest + 1;
> -+  p->vp = dest + 2;
> -+  p->ystride = p->width * 4;
> -+  p->endptr = p->dest + p->ystride * p->height;
> -+}
> -+
> -+static void
> - paint_setup_RGB888 (paintinfo * p, unsigned char *dest)
> - {
> -   p->yp = dest + 0;
> -@@ -1735,6 +1749,20 @@ paint_hline_str4 (paintinfo * p, int x, int y, int w)
> - }
> - 
> - static void
> -+paint_hline_RGB666  (paintinfo * p, int x, int y, int w)
> -+{
> -+  int offset = y * p->ystride;
> -+  guint8 a, b, c;
> -+  a = (p->color->R & 0xC0) >> 6;
> -+  b = ((p->color->R & 0xf0) << 2) | ((p->color->G & 0xf0) >> 4);
> -+  c = ((p->color->G & 0x0c) << 4) | (p->color->B >> 2);
> -+
> -+  oil_splat_u8 (p->yp + offset + x * 4, 4, &c, w);
> -+  oil_splat_u8 (p->up + offset + x * 4, 4, &b, w);
> -+  oil_splat_u8 (p->vp + offset + x * 4, 4, &a, w);
> -+}
> -+
> -+static void
> - paint_hline_str3 (paintinfo * p, int x, int y, int w)
> - {
> -   int offset = y * p->ystride;
> --- 
> -1.5.6.5
> -
> diff --git a/patches/gst-plugins-base-0.10.25/series 
> b/patches/gst-plugins-base-0.10.25/series
> deleted file mode 100644
> index 97aff6e..0000000
> --- a/patches/gst-plugins-base-0.10.25/series
> +++ /dev/null
> @@ -1 +0,0 @@
> -add-RGB666-Support-to-ffmpegcolorspace.patch -p0
> diff --git 
> a/patches/gst-plugins-base-0.10.29/add-RGB666-Support-to-ffmpegcolorspace.patch
>  
> b/patches/gst-plugins-base-0.10.29/add-RGB666-Support-to-ffmpegcolorspace.patch
> new file mode 100644
> index 0000000..b8e2b47
> --- /dev/null
> +++ 
> b/patches/gst-plugins-base-0.10.29/add-RGB666-Support-to-ffmpegcolorspace.patch
> @@ -0,0 +1,296 @@
> +From: Luotao Fu <l...@pengutronix.de>
> +Date: Thu, 11 Dec 2008 17:02:52 +0100
> +Subject: [PATCH] added RGB666 Support to ffmpegcolorspace
> +
> +This one adds RGB666 Support to ffmpegcolorspace
> +Still very hacky, need to be enhanced before submitting to mainline
> +
> +Signed-off-by: Luotao Fu <l...@pengutronix.de>
> +---
> + gst/ffmpegcolorspace/avcodec.h           |    1 
> + gst/ffmpegcolorspace/gstffmpegcodecmap.c |   26 ++++++++++-
> + gst/ffmpegcolorspace/imgconvert.c        |   70 
> +++++++++++++++++++++++++++++--
> + 3 files changed, 90 insertions(+), 7 deletions(-)
> +
> +Index: gst/ffmpegcolorspace/avcodec.h
> +===================================================================
> +--- gst/ffmpegcolorspace/avcodec.h.orig
> ++++ gst/ffmpegcolorspace/avcodec.h
> +@@ -87,6 +87,7 @@ enum PixelFormat {
> +     PIX_FMT_UYVY411,   ///< Packed pixel, Cb Y0 Y1 Cr Y2 Y3
> + 
> +     PIX_FMT_AYUV4444,  ///< Packed pixel, A0 Y0 Cb Cr
> ++    PIX_FMT_RGB666,
> +     PIX_FMT_NB
> + };
> + 
> +Index: gst/ffmpegcolorspace/imgconvert.c
> +===================================================================
> +--- gst/ffmpegcolorspace/imgconvert.c.orig
> ++++ gst/ffmpegcolorspace/imgconvert.c
> +@@ -409,8 +409,18 @@ static PixFmtInfo pix_fmt_info[PIX_FMT_N
> +         /* .x_chroma_shift = */ 0,
> +         /* .y_chroma_shift = */ 0,
> +         /*.depth = */ 8
> ++      },
> ++  /* [PIX_FMT_RGB666] = */ {
> ++        /* .format         = */ PIX_FMT_RGB666,
> ++        /* .name           = */ "rgb666",
> ++        /* .nb_channels    = */ 4,
> ++        /* .color_type     = */ FF_COLOR_RGB,
> ++        /* .pixel_type     = */ FF_PIXEL_PLANAR,
> ++        /* .is_alpha       = */ 0,
> ++        /* .x_chroma_shift = */ 0,
> ++        /* .y_chroma_shift = */ 0,
> ++        /* .depth          = */ 6,
> +       }
> +-
> + };
> + 
> + /* returns NULL if not found */
> +@@ -419,7 +429,6 @@ PixFmtInfo *
> + get_pix_fmt_info (enum PixelFormat format)
> + {
> +   int i;
> +-
> +   for (i = 0; i < sizeof (pix_fmt_info) / sizeof (pix_fmt_info[0]); i++) {
> +     if (pix_fmt_info[i].format == format) {
> +       return pix_fmt_info + i;
> +@@ -594,6 +603,8 @@ avg_bits_per_pixel (int pix_fmt)
> +         case PIX_FMT_RGB555:
> +           bits = 16;
> +           break;
> ++    case PIX_FMT_RGB666:
> ++      bits = 8 *  pf->nb_channels;
> +         case PIX_FMT_UYVY411:
> +           bits = 12;
> +           break;
> +@@ -603,7 +614,9 @@ avg_bits_per_pixel (int pix_fmt)
> +       }
> +       break;
> +     case FF_PIXEL_PLANAR:
> +-      if (pf->x_chroma_shift == 0 && pf->y_chroma_shift == 0) {
> ++      if(pix_fmt == PIX_FMT_RGB666) {
> ++    bits =  8 *  pf->nb_channels;
> ++      } else if (pf->x_chroma_shift == 0 && pf->y_chroma_shift == 0) {
> +         bits = pf->depth * pf->nb_channels;
> +       } else {
> +         bits = pf->depth + ((2 * pf->depth) >>
> +@@ -661,7 +674,6 @@ avcodec_find_best_pix_fmt (int pix_fmt_m
> +     ~FF_LOSS_DEPTH,
> +     0,
> +   };
> +-
> +   /* try with successive loss */
> +   i = 0;
> +   for (;;) {
> +@@ -1768,6 +1780,37 @@ bitcopy_n (unsigned int a, int n)
> + 
> + #include "imgconvert_template.h"
> + 
> ++/* rgb666 handling */
> ++
> ++#define RGB_NAME rgb666
> ++#define FMT_RGB666
> ++
> ++#define RGB_IN(r, g, b, s)\
> ++{\
> ++    unsigned int v = ((const uint32_t *)(s))[0];\
> ++    r = (v >> 12) & 0x3f;\
> ++    g = (v >> 6) & 0x3f;\
> ++    b = v & 0x3f;\
> ++}
> ++
> ++#define RGBA_IN(r, g, b, a, s)\
> ++{\
> ++    unsigned int v = ((const uint32_t *)(s))[0];\
> ++    a = 0xff;\
> ++    r = (v >> 12) & 0x3f;\
> ++    g = (v >> 6) & 0x3f;\
> ++    b = v & 0x3f;\
> ++}
> ++
> ++#define RGBA_OUT(d, r, g, b, a)\
> ++{\
> ++    ((uint32_t *)(d))[0] = ((r >> 2) << 12) | ((g >> 2) << 6) | (b >> 2);\
> ++}
> ++
> ++#define BPP 4
> ++
> ++#include "imgconvert_template.h"
> ++
> + /* xrgb32 handling */
> + 
> + #define RGB_NAME xrgb32
> +@@ -2099,6 +2142,7 @@ static ConvertEntry convert_table[] = {
> +   {PIX_FMT_YUV420P, PIX_FMT_RGB565, yuv420p_to_rgb565},
> +   {PIX_FMT_YUV420P, PIX_FMT_BGR24, yuv420p_to_bgr24},
> +   {PIX_FMT_YUV420P, PIX_FMT_RGB24, yuv420p_to_rgb24},
> ++  {PIX_FMT_YUV420P, PIX_FMT_RGB666, yuv420p_to_rgb666},
> +   {PIX_FMT_YUV420P, PIX_FMT_RGB32, yuv420p_to_rgb32},
> +   {PIX_FMT_YUV420P, PIX_FMT_BGR32, yuv420p_to_bgr32},
> +   {PIX_FMT_YUV420P, PIX_FMT_xRGB32, yuv420p_to_xrgb32},
> +@@ -2112,6 +2156,7 @@ static ConvertEntry convert_table[] = {
> +   {PIX_FMT_NV12, PIX_FMT_RGB565, nv12_to_rgb565},
> +   {PIX_FMT_NV12, PIX_FMT_BGR24, nv12_to_bgr24},
> +   {PIX_FMT_NV12, PIX_FMT_RGB24, nv12_to_rgb24},
> ++  {PIX_FMT_NV12, PIX_FMT_RGB666, nv12_to_rgb666},
> +   {PIX_FMT_NV12, PIX_FMT_RGB32, nv12_to_rgb32},
> +   {PIX_FMT_NV12, PIX_FMT_BGR32, nv12_to_bgr32},
> +   {PIX_FMT_NV12, PIX_FMT_xRGB32, nv12_to_xrgb32},
> +@@ -2126,6 +2171,7 @@ static ConvertEntry convert_table[] = {
> +   {PIX_FMT_NV21, PIX_FMT_RGB565, nv21_to_rgb565},
> +   {PIX_FMT_NV21, PIX_FMT_BGR24, nv21_to_bgr24},
> +   {PIX_FMT_NV21, PIX_FMT_RGB24, nv21_to_rgb24},
> ++  {PIX_FMT_NV21, PIX_FMT_RGB666, nv21_to_rgb666},
> +   {PIX_FMT_NV21, PIX_FMT_RGB32, nv21_to_rgb32},
> +   {PIX_FMT_NV21, PIX_FMT_BGR32, nv21_to_bgr32},
> +   {PIX_FMT_NV21, PIX_FMT_xRGB32, nv21_to_xrgb32},
> +@@ -2145,6 +2191,7 @@ static ConvertEntry convert_table[] = {
> +   {PIX_FMT_YUVJ420P, PIX_FMT_RGB565, yuvj420p_to_rgb565},
> +   {PIX_FMT_YUVJ420P, PIX_FMT_BGR24, yuvj420p_to_bgr24},
> +   {PIX_FMT_YUVJ420P, PIX_FMT_RGB24, yuvj420p_to_rgb24},
> ++  {PIX_FMT_YUVJ420P, PIX_FMT_RGB666, yuvj420p_to_rgb666},
> +   {PIX_FMT_YUVJ420P, PIX_FMT_RGB32, yuvj420p_to_rgb32},
> +   {PIX_FMT_YUVJ420P, PIX_FMT_BGR32, yuvj420p_to_bgr32},
> +   {PIX_FMT_YUVJ420P, PIX_FMT_RGB32, yuvj420p_to_xrgb32},
> +@@ -2167,6 +2214,7 @@ static ConvertEntry convert_table[] = {
> +   {PIX_FMT_RGB24, PIX_FMT_NV21, rgb24_to_nv21},
> +   {PIX_FMT_RGB24, PIX_FMT_RGB565, rgb24_to_rgb565},
> +   {PIX_FMT_RGB24, PIX_FMT_RGB555, rgb24_to_rgb555},
> ++  {PIX_FMT_RGB24, PIX_FMT_RGB666, rgb24_to_rgb666},
> +   {PIX_FMT_RGB24, PIX_FMT_RGB32, rgb24_to_rgb32},
> +   {PIX_FMT_RGB24, PIX_FMT_BGR32, rgb24_to_bgr32},
> +   {PIX_FMT_RGB24, PIX_FMT_xRGB32, rgb24_to_xrgb32},
> +@@ -2185,6 +2233,7 @@ static ConvertEntry convert_table[] = {
> + 
> +   {PIX_FMT_RGB32, PIX_FMT_RGB24, rgb32_to_rgb24},
> +   {PIX_FMT_RGB32, PIX_FMT_RGB555, rgba32_to_rgb555},
> ++  {PIX_FMT_RGB32, PIX_FMT_RGB666, rgba32_to_rgb666},
> +   {PIX_FMT_RGB32, PIX_FMT_PAL8, rgb32_to_pal8},
> +   {PIX_FMT_RGB32, PIX_FMT_YUV420P, rgb32_to_yuv420p},
> +   {PIX_FMT_RGB32, PIX_FMT_NV12, rgb32_to_nv12},
> +@@ -2205,6 +2254,7 @@ static ConvertEntry convert_table[] = {
> +   {PIX_FMT_RGBA32, PIX_FMT_BGRx32, rgba32_to_bgrx32},
> +   {PIX_FMT_RGBA32, PIX_FMT_ABGR32, rgba32_to_abgr32},
> +   {PIX_FMT_RGBA32, PIX_FMT_RGB24, rgba32_to_rgb24},
> ++  {PIX_FMT_RGBA32, PIX_FMT_RGB666, rgba32_to_rgb666},
> +   {PIX_FMT_RGBA32, PIX_FMT_RGB555, rgba32_to_rgb555},
> +   {PIX_FMT_RGBA32, PIX_FMT_PAL8, rgba32_to_pal8},
> +   {PIX_FMT_RGBA32, PIX_FMT_YUV420P, rgba32_to_yuv420p},
> +@@ -2269,10 +2319,18 @@ static ConvertEntry convert_table[] = {
> +   {PIX_FMT_RGB565, PIX_FMT_NV21, rgb565_to_nv21},
> +   {PIX_FMT_RGB565, PIX_FMT_GRAY8, rgb565_to_gray},
> + 
> ++  {PIX_FMT_RGB666, PIX_FMT_GRAY8, rgb666_to_gray},
> ++  {PIX_FMT_RGB666, PIX_FMT_NV12, rgb666_to_nv12},
> ++  {PIX_FMT_RGB666, PIX_FMT_NV21, rgb666_to_nv21},
> ++  {PIX_FMT_RGB666, PIX_FMT_YUV420P, rgb666_to_yuv420p},
> ++  {PIX_FMT_RGB666, PIX_FMT_RGBA32, rgb666_to_rgba32},
> ++  {PIX_FMT_RGB666, PIX_FMT_RGB24, rgb666_to_rgb24},
> ++
> +   {PIX_FMT_GRAY8, PIX_FMT_RGB555, gray_to_rgb555},
> +   {PIX_FMT_GRAY8, PIX_FMT_RGB565, gray_to_rgb565},
> +   {PIX_FMT_GRAY8, PIX_FMT_RGB24, gray_to_rgb24},
> +   {PIX_FMT_GRAY8, PIX_FMT_BGR24, gray_to_bgr24},
> ++  {PIX_FMT_GRAY8, PIX_FMT_RGB666, gray_to_rgb666},
> +   {PIX_FMT_GRAY8, PIX_FMT_RGB32, gray_to_rgb32},
> +   {PIX_FMT_GRAY8, PIX_FMT_BGR32, gray_to_bgr32},
> +   {PIX_FMT_GRAY8, PIX_FMT_xRGB32, gray_to_xrgb32},
> +@@ -2292,6 +2350,7 @@ static ConvertEntry convert_table[] = {
> +   {PIX_FMT_PAL8, PIX_FMT_RGB565, pal8_to_rgb565},
> +   {PIX_FMT_PAL8, PIX_FMT_BGR24, pal8_to_bgr24},
> +   {PIX_FMT_PAL8, PIX_FMT_RGB24, pal8_to_rgb24},
> ++  {PIX_FMT_PAL8, PIX_FMT_RGB666, pal8_to_rgb666},
> +   {PIX_FMT_PAL8, PIX_FMT_RGB32, pal8_to_rgb32},
> +   {PIX_FMT_PAL8, PIX_FMT_BGR32, pal8_to_bgr32},
> +   {PIX_FMT_PAL8, PIX_FMT_xRGB32, pal8_to_xrgb32},
> +@@ -2656,6 +2715,9 @@ img_get_alpha_info (const AVPicture * sr
> +     case PIX_FMT_ABGR32:
> +       ret = get_alpha_info_abgr32 (src, width, height);
> +       break;
> ++    case PIX_FMT_RGB666:
> ++      ret = get_alpha_info_rgb666 (src, width, height);
> ++      break;
> +     case PIX_FMT_RGB555:
> +       ret = get_alpha_info_rgb555 (src, width, height);
> +       break;
> +Index: gst/ffmpegcolorspace/gstffmpegcodecmap.c
> +===================================================================
> +--- gst/ffmpegcolorspace/gstffmpegcodecmap.c.orig
> ++++ gst/ffmpegcolorspace/gstffmpegcodecmap.c
> +@@ -219,6 +219,14 @@ gst_ffmpeg_pixfmt_to_caps (enum PixelFor
> +       b_mask = 0xff000000;
> + #endif
> +       break;
> ++    case PIX_FMT_RGB666:
> ++      bpp = 32;
> ++      depth = 18;
> ++      endianness = G_BIG_ENDIAN;
> ++      r_mask = 0x0003f000;
> ++      g_mask = 0x00000fc0;
> ++      b_mask = 0x0000003f;
> ++      break;
> +     case PIX_FMT_BGR32:
> +       bpp = 32;
> +       depth = 24;
> +@@ -630,7 +638,6 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps
> +     }
> +   } else if (gst_structure_has_name (structure, "video/x-raw-rgb")) {
> +     gint bpp = 0, rmask = 0, endianness = 0, amask = 0, depth = 0;
> +-
> +     if (gst_structure_get_int (structure, "bpp", &bpp) &&
> +         gst_structure_get_int (structure, "endianness", &endianness)) {
> +       if (gst_structure_get_int (structure, "red_mask", &rmask)) {
> +@@ -642,6 +649,8 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps
> +                 context->pix_fmt = PIX_FMT_BGRA32;
> +               else if (rmask == 0x00ff0000)
> +                 context->pix_fmt = PIX_FMT_RGBA32;
> ++              else if (rmask == 0x0003f000)
> ++                context->pix_fmt = PIX_FMT_RGB666;
> +               else if (rmask == 0xff000000)
> +                 context->pix_fmt = PIX_FMT_ARGB32;
> +               else              // if (r_mask = 0x000000ff)
> +@@ -651,6 +660,11 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps
> +                 context->pix_fmt = PIX_FMT_BGRA32;
> +               else if (rmask == 0x0000ff00)
> +                 context->pix_fmt = PIX_FMT_RGBA32;
> ++          /* XXX: Hack here, gstreamer seems not to treat endianess in a
> ++           * consistent way between plugins. Since we only have RGB666 for
> ++           * now, We have to hack it around here */
> ++              else if (rmask == 0x0003f000)
> ++                context->pix_fmt = PIX_FMT_RGB666;
> +               else if (rmask == 0x000000ff)
> +                 context->pix_fmt = PIX_FMT_ARGB32;
> +               else              // if (rmask == 0xff000000)
> +@@ -662,7 +676,9 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps
> +                 context->pix_fmt = PIX_FMT_RGB32;
> +               else if (rmask == 0x0000ff00)
> +                 context->pix_fmt = PIX_FMT_BGR32;
> +-              else if (rmask == 0xff000000)
> ++          else if (rmask == 0x0003f000)
> ++            context->pix_fmt = PIX_FMT_RGB666;
> ++          else if (rmask == 0xff000000)
> +                 context->pix_fmt = PIX_FMT_xRGB32;
> +               else              // if (rmask == 0x000000ff)
> +                 context->pix_fmt = PIX_FMT_BGRx32;
> +@@ -671,7 +687,10 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps
> +                 context->pix_fmt = PIX_FMT_RGB32;
> +               else if (rmask == 0x00ff0000)
> +                 context->pix_fmt = PIX_FMT_BGR32;
> +-              else if (rmask == 0x000000ff)
> ++          /* XXX: Hack here, see XXX section above for more details */
> ++          else if (rmask == 0x0003f000)
> ++            context->pix_fmt = PIX_FMT_RGB666;
> ++          else if (rmask == 0x000000ff)
> +                 context->pix_fmt = PIX_FMT_xRGB32;
> +               else              // if (rmask == 0xff000000)
> +                 context->pix_fmt = PIX_FMT_BGRx32;
> +@@ -837,6 +856,7 @@ gst_ffmpegcsp_avpicture_fill (AVPicture 
> +       picture->linesize[0] = stride;
> +       return size;
> +     case PIX_FMT_AYUV4444:
> ++    case PIX_FMT_RGB666:
> +     case PIX_FMT_RGB32:
> +     case PIX_FMT_RGBA32:
> +     case PIX_FMT_ARGB32:
> diff --git 
> a/patches/gst-plugins-base-0.10.29/add-rgb666-support-to-videotestsrc.patch 
> b/patches/gst-plugins-base-0.10.29/add-rgb666-support-to-videotestsrc.patch
> new file mode 100644
> index 0000000..74fd685
> --- /dev/null
> +++ 
> b/patches/gst-plugins-base-0.10.29/add-rgb666-support-to-videotestsrc.patch
> @@ -0,0 +1,82 @@
> +From b03b40150cb7755d3bcdb1a42883a5543779e1dc Mon Sep 17 00:00:00 2001
> +From: Luotao Fu <l...@pengutronix.de>
> +Date: Thu, 11 Dec 2008 15:17:36 +0100
> +Subject: [PATCH]  add rgb666 support
> +
> + This one adds RGB666 support to videotestsrc.
> +
> +Signed-off-by: Luotao Fu <l...@pengutronix.de>
> +---
> + gst/videotestsrc/videotestsrc.c |   28 ++++++++++++++++++++++++++++
> + 1 files changed, 28 insertions(+), 0 deletions(-)
> +
> +diff --git a/gst/videotestsrc/videotestsrc.c 
> b/gst/videotestsrc/videotestsrc.c
> +index b9f29fb..e6fb9e5 100644
> +--- gst/videotestsrc/videotestsrc.c
> ++++ gst/videotestsrc/videotestsrc.c
> +@@ -329,6 +329,7 @@ static void paint_setup_xRGB8888 (paintinfo * p, 
> unsigned char *dest);
> + static void paint_setup_xBGR8888 (paintinfo * p, unsigned char *dest);
> + static void paint_setup_RGBx8888 (paintinfo * p, unsigned char *dest);
> + static void paint_setup_BGRx8888 (paintinfo * p, unsigned char *dest);
> ++static void paint_setup_RGB666 (paintinfo * p, unsigned char *dest);
> + static void paint_setup_RGB888 (paintinfo * p, unsigned char *dest);
> + static void paint_setup_BGR888 (paintinfo * p, unsigned char *dest);
> + static void paint_setup_RGB565 (paintinfo * p, unsigned char *dest);
> +@@ -351,6 +352,7 @@ static void paint_hline_IMC1 (paintinfo * p, int x, int 
> y, int w);
> + static void paint_hline_YUV9 (paintinfo * p, int x, int y, int w);
> + static void paint_hline_str4 (paintinfo * p, int x, int y, int w);
> + static void paint_hline_str3 (paintinfo * p, int x, int y, int w);
> ++static void paint_hline_RGB666 (paintinfo * p, int x, int y, int w);
> + static void paint_hline_RGB565 (paintinfo * p, int x, int y, int w);
> + static void paint_hline_xRGB1555 (paintinfo * p, int x, int y, int w);
> + 
> +@@ -432,6 +434,8 @@ struct fourcc_list_struct fourcc_list[] = {
> +       0xff000000, 0x00ff0000, 0x0000ff00, 0x000000ff},
> +   {VTS_RGB, "RGB ", "BGRA8888", 32, paint_setup_BGRA8888, paint_hline_str4, 
> 32,
> +       0x0000ff00, 0x00ff0000, 0xff000000, 0x000000ff},
> ++  {VTS_RGB, "RGB ", "RGB666", 32, paint_setup_RGB666, paint_hline_RGB666, 
> 18,
> ++      0x0003f000, 0x00000fc0, 0x0000003f},
> +   {VTS_RGB, "RGB ", "RGB888", 24, paint_setup_RGB888, paint_hline_str3, 24,
> +       0x00ff0000, 0x0000ff00, 0x000000ff},
> +   {VTS_RGB, "RGB ", "BGR888", 24, paint_setup_BGR888, paint_hline_str3, 24,
> +@@ -1700,6 +1704,16 @@ paint_setup_BGRx8888 (paintinfo * p, unsigned char 
> *dest)
> + }
> + 
> + static void
> ++paint_setup_RGB666 (paintinfo * p, unsigned char *dest)
> ++{
> ++  p->yp = dest + 0;
> ++  p->up = dest + 1;
> ++  p->vp = dest + 2;
> ++  p->ystride = p->width * 4;
> ++  p->endptr = p->dest + p->ystride * p->height;
> ++}
> ++
> ++static void
> + paint_setup_RGB888 (paintinfo * p, unsigned char *dest)
> + {
> +   p->yp = dest + 0;
> +@@ -1735,6 +1749,20 @@ paint_hline_str4 (paintinfo * p, int x, int y, int w)
> + }
> + 
> + static void
> ++paint_hline_RGB666  (paintinfo * p, int x, int y, int w)
> ++{
> ++  int offset = y * p->ystride;
> ++  guint8 a, b, c;
> ++  a = (p->color->R & 0xC0) >> 6;
> ++  b = ((p->color->R & 0xf0) << 2) | ((p->color->G & 0xf0) >> 4);
> ++  c = ((p->color->G & 0x0c) << 4) | (p->color->B >> 2);
> ++
> ++  oil_splat_u8 (p->yp + offset + x * 4, 4, &c, w);
> ++  oil_splat_u8 (p->up + offset + x * 4, 4, &b, w);
> ++  oil_splat_u8 (p->vp + offset + x * 4, 4, &a, w);
> ++}
> ++
> ++static void
> + paint_hline_str3 (paintinfo * p, int x, int y, int w)
> + {
> +   int offset = y * p->ystride;
> +-- 
> +1.5.6.5
> +
> diff --git a/patches/gst-plugins-base-0.10.29/series 
> b/patches/gst-plugins-base-0.10.29/series
> new file mode 100644
> index 0000000..97aff6e
> --- /dev/null
> +++ b/patches/gst-plugins-base-0.10.29/series
> @@ -0,0 +1 @@
> +add-RGB666-Support-to-ffmpegcolorspace.patch -p0
> diff --git a/rules/gst-plugins-base.in b/rules/gst-plugins-base.in
> index 81aadbc..c7a8b86 100644
> --- a/rules/gst-plugins-base.in
> +++ b/rules/gst-plugins-base.in
> @@ -35,14 +35,14 @@ if GST_PLUGINS_BASE
>       comment "dependency less plugins"
>       # -------------------------------
>  
> -     config GST_PLUGINS_BASE_APP
> -             bool
> -             prompt "app"
> -
>       config GST_PLUGINS_BASE_ADDER
>               bool
>               prompt "adder"
>  
> +     config GST_PLUGINS_BASE_APP
> +             bool
> +             prompt "app"
> +
>       config GST_PLUGINS_BASE_AUDIOCONVERT
>               bool
>               prompt "audioconvert"
> @@ -51,22 +51,10 @@ if GST_PLUGINS_BASE
>               bool
>               prompt "audiorate"
>  
> -     config GST_PLUGINS_BASE_AUDIORESAMPLE
> -             bool
> -             prompt "audioresample"
> -
>       config GST_PLUGINS_BASE_AUDIOTESTSRC
>               bool
>               prompt "audiotestsrc"
>  
> -     config GST_PLUGINS_BASE_DECODEBIN
> -             bool
> -             prompt "decodebin"
> -
> -     config GST_PLUGINS_BASE_DECODEBIN_2
> -             bool
> -             prompt "decodebin2"
> -

You forgot to remove the stuff from gst-plugins-base.make for these.

>       config GST_PLUGINS_BASE_FFMPEGCOLORSPACE
>               bool
>               prompt "ffmpegcolorspace"
> @@ -75,9 +63,13 @@ if GST_PLUGINS_BASE
>               bool
>               prompt "gdp"
>  
> -     config GST_PLUGINS_BASE_PLAYBIN

dito

> +     config GST_PLUGINS_BASE_PLAYBACK
> +             bool
> +             prompt "playback"
> +

this was not added to gst-plugins-base.make targetinstall

> +     config GST_PLUGINS_BASE_AUDIORESAMPLE
>               bool
> -             prompt "playbin"
> +             prompt "audioresample"
>  
>       config GST_PLUGINS_BASE_SUBPARSE
>               bool
> @@ -107,6 +99,10 @@ if GST_PLUGINS_BASE
>               bool
>               prompt "volume"
>  
> +     config GST_PLUGINS_BASE_ISO_CODES
> +             bool
> +             prompt "iso codes"
> +

dito

>       comment "plugins with dependencies"
>  
>       config GST_PLUGINS_BASE_X
> @@ -143,6 +139,10 @@ if GST_PLUGINS_BASE
>               depends on BROKEN
>               prompt "gnome_vfs [BROKEN]"
>  
> +     config GST_PLUGINS_BASE_IVORBIS
> +             bool
> +             prompt "ivorbis"
> +
>       config GST_PLUGINS_BASE_GIO
>               bool
>               prompt "gio"
> diff --git a/rules/gst-plugins-base.make b/rules/gst-plugins-base.make
> index 85d253d..5fff40b 100644
> --- a/rules/gst-plugins-base.make
> +++ b/rules/gst-plugins-base.make
> @@ -16,7 +16,7 @@ PACKAGES-$(PTXCONF_GST_PLUGINS_BASE) += gst-plugins-base
>  #
>  # Paths and names
>  #
> -GST_PLUGINS_BASE_VERSION     := 0.10.25
> +GST_PLUGINS_BASE_VERSION     := 0.10.29
>  GST_PLUGINS_BASE             := gst-plugins-base-$(GST_PLUGINS_BASE_VERSION)
>  GST_PLUGINS_BASE_SUFFIX              := tar.bz2
>  GST_PLUGINS_BASE_URL         := 
> http://gstreamer.freedesktop.org/src/gst-plugins-base/$(GST_PLUGINS_BASE).$(GST_PLUGINS_BASE_SUFFIX)
> @@ -40,42 +40,39 @@ $(GST_PLUGINS_BASE_SOURCE):
>  #
>  GST_PLUGINS_BASE_AUTOCONF := \
>       $(CROSS_AUTOCONF_USR) \
> -     --disable-rpath \
> +     --enable-option-checking \
> +     --enable-silent-rules \
>       --disable-nls \
> +     --disable-rpath \
>       --disable-debug \
>       --disable-profiling \
>       --disable-valgrind \
>       --disable-gcov \
>       --disable-examples \
> -     --disable-largefile \
> -     --disable-gtk-doc \
>       --enable-external \
>       --disable-experimental \
> +     --disable-largefile \
> +     --disable-gtk-doc \
> +     --disable-gobject-cast-checks \
>       --disable-oggtest \
>       --disable-vorbistest \
>       --disable-freetypetest \
>       --without-libiconv-prefix \
> -     --without-libintl-prefix \
> -     --enable-shave
> +     --without-libintl-prefix
>  
>  # --with-plugins=foo,bar,baz only works for depencyless plugins and
>  # when no plugins are given it falls back to its default which is
>  # to enable all plugins, so --with-plugins is useless for us.
>  
> -ifdef PTXCONF_GST_PLUGINS_BASE_APP
> -GST_PLUGINS_BASE_AUTOCONF += --enable-app
> -else
> -GST_PLUGINS_BASE_AUTOCONF += --disable-app
> -endif
>  ifdef PTXCONF_GST_PLUGINS_BASE_ADDER
>  GST_PLUGINS_BASE_AUTOCONF += --enable-adder
>  else
>  GST_PLUGINS_BASE_AUTOCONF += --disable-adder
>  endif
> -ifdef PTXCONF_GST_PLUGINS_BASE_AUDIOCONVERT
> -GST_PLUGINS_BASE_AUTOCONF += --enable-audioconvert
> +ifdef PTXCONF_GST_PLUGINS_BASE_APP
> +GST_PLUGINS_BASE_AUTOCONF += --enable-app
>  else
> -GST_PLUGINS_BASE_AUTOCONF += --disable-audioconvert
> +GST_PLUGINS_BASE_AUTOCONF += --disable-app
>  endif
>  ifdef PTXCONF_GST_PLUGINS_BASE_AUDIOCONVERT
>  GST_PLUGINS_BASE_AUTOCONF += --enable-audioconvert
> @@ -87,11 +84,6 @@ GST_PLUGINS_BASE_AUTOCONF += --enable-audiorate
>  else
>  GST_PLUGINS_BASE_AUTOCONF += --disable-audiorate
>  endif
> -ifdef PTXCONF_GST_PLUGINS_BASE_AUDIORESAMPLE
> -GST_PLUGINS_BASE_AUTOCONF += --enable-audioresample
> -else
> -GST_PLUGINS_BASE_AUTOCONF += --disable-audioresample
> -endif
>  ifdef PTXCONF_GST_PLUGINS_BASE_AUDIOTESTSRC
>  GST_PLUGINS_BASE_AUTOCONF += --enable-audiotestsrc
>  else
> @@ -107,11 +99,16 @@ GST_PLUGINS_BASE_AUTOCONF += --enable-gdp
>  else
>  GST_PLUGINS_BASE_AUTOCONF += --disable-gdp
>  endif
> -ifneq 
> ($(PTXCONF_GST_PLUGINS_BASE_PLAYBIN)$(PTXCONF_GST_PLUGINS_BASE_DECODEBIN)$(PTXCONF_GST_PLUGINS_BASE_DECODEBIN2),)
> +ifdef PTXCONF_GST_PLUGINS_PLAYBACK

ifdef PTXCONF_GST_PLUGINS_BASE_PLAYBACK

>  GST_PLUGINS_BASE_AUTOCONF += --enable-playback
>  else
>  GST_PLUGINS_BASE_AUTOCONF += --disable-playback
>  endif
> +ifdef PTXCONF_GST_PLUGINS_BASE_AUDIORESAMPLE
> +GST_PLUGINS_BASE_AUTOCONF += --enable-audioresample
> +else
> +GST_PLUGINS_BASE_AUTOCONF += --disable-audioresample
> +endif
>  ifdef PTXCONF_GST_PLUGINS_BASE_SUBPARSE
>  GST_PLUGINS_BASE_AUTOCONF += --enable-subparse
>  else
> @@ -147,6 +144,11 @@ GST_PLUGINS_BASE_AUTOCONF += --enable-volume
>  else
>  GST_PLUGINS_BASE_AUTOCONF += --disable-volume
>  endif
> +ifdef PTXCONF_GST_PLUGINS_BASE_ISO_CODES
> +GST_PLUGINS_BASE_AUTOCONF += --enable-iso-codes
> +else
> +GST_PLUGINS_BASE_AUTOCONF += --disable-iso-codes
> +endif
>  ifdef PTXCONF_GST_PLUGINS_BASE_X
>  GST_PLUGINS_BASE_AUTOCONF += --enable-x
>  GST_PLUGINS_BASE_AUTOCONF += --with-x=$(SYSROOT)/usr
> @@ -184,6 +186,11 @@ GST_PLUGINS_BASE_AUTOCONF += --enable-gnome_vfs
>  else
>  GST_PLUGINS_BASE_AUTOCONF += --disable-gnome_vfs
>  endif
> +ifdef PTXCONF_GST_PLUGINS_BASE_IVORBIS
> +GST_PLUGINS_BASE_AUTOCONF += --enable-ivorbis
> +else
> +GST_PLUGINS_BASE_AUTOCONF += --disable-ivorbis
> +endif
>  ifdef PTXCONF_GST_PLUGINS_BASE_GIO
>  GST_PLUGINS_BASE_AUTOCONF += --enable-gio
>  else
> @@ -215,10 +222,15 @@ else
>  GST_PLUGINS_BASE_AUTOCONF += --disable-vorbis
>  endif
>  
> +# --enable-introspection=[no/auto/yes] Enable introspection for this build
> +# --with-plugins          comma-separated list of dependencyless plug-ins to 
> compile
> +
>  # 
> ----------------------------------------------------------------------------
>  # Target-Install
>  # 
> ----------------------------------------------------------------------------
>  
> +GST_PLUGINS_BASE_LIB_VERSION := 0.20.0
> +
>  $(STATEDIR)/gst-plugins-base.targetinstall:
>       @$(call targetinfo)
>  
> @@ -237,9 +249,9 @@ $(STATEDIR)/gst-plugins-base.targetinstall:
>  
>       # install all activated libs
>       @cd $(GST_PLUGINS_BASE_PKGDIR)/usr/lib/ && for libs in `find -name 
> "*-0.10.so"`; do \
> -             $(call install_copy, gst-plugins-base, 0, 0, 0644, -, 
> /usr/lib/$$libs.0.18.0); \
> -             $(call install_link, gst-plugins-base, $$libs.0.18.0, 
> /usr/lib/$$libs.0); \
> -             $(call install_link, gst-plugins-base, $$libs.0.18.0, 
> /usr/lib/$$libs); \
> +             $(call install_copy, gst-plugins-base, 0, 0, 0644, -, 
> /usr/lib/$$libs.$(GST_PLUGINS_BASE_LIB_VERSION)); \
> +             $(call install_link, gst-plugins-base, 
> $$libs.$(GST_PLUGINS_BASE_LIB_VERSION), /usr/lib/$$libs.0); \
> +             $(call install_link, gst-plugins-base, 
> $$libs.$(GST_PLUGINS_BASE_LIB_VERSION), /usr/lib/$$libs); \
>       done
>  
>  ifdef PTXCONF_GST_PLUGINS_BASE_APP
> diff --git a/rules/qt4.in b/rules/qt4.in
> index 21f37d8..13cd585 100644
> --- a/rules/qt4.in
> +++ b/rules/qt4.in
> @@ -13,7 +13,6 @@ menuconfig QT4
>       select DIRECTFB         if QT4_GFX_DIRECTFB_PLUGIN
>       select GSTREAMER        if QT4_BUILD_PHONON
>       select GST_PLUGINS_BASE if QT4_BUILD_PHONON
> -     select GST_PLUGINS_BASE_DECODEBIN if QT4_BUILD_PHONON
>       select OPENSSL          if QT4_OPENSSL
>  # libsvga is currently not in ptxdist
>  #    select LIBSVGA          if QT4_GFX_SVGA_PLUGIN
> -- 
> 1.7.1
> 
> 
> -- 
> ptxdist mailing list
> ptxdist@pengutronix.de
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

-- 
ptxdist mailing list
ptxdist@pengutronix.de

Reply via email to