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" - config GST_PLUGINS_BASE_FFMPEGCOLORSPACE bool prompt "ffmpegcolorspace" @@ -75,9 +63,13 @@ if GST_PLUGINS_BASE bool prompt "gdp" - config GST_PLUGINS_BASE_PLAYBIN + config GST_PLUGINS_BASE_PLAYBACK + bool + prompt "playback" + + 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" + 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 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