Merge branch 'master' into 0.11
authorWim Taymans <wim.taymans@collabora.co.uk>
Fri, 10 Feb 2012 14:41:06 +0000 (15:41 +0100)
committerWim Taymans <wim.taymans@collabora.co.uk>
Fri, 10 Feb 2012 14:41:06 +0000 (15:41 +0100)
Conflicts:
ext/vorbis/gstvorbisparse.c
gst-libs/gst/video/video.c
gst/videoscale/gstvideoscale.c
sys/v4l/gstv4lxoverlay.c
sys/v4l/v4l_calls.c
sys/v4l/v4lsrc_calls.c
tests/check/libs/video.c

1  2 
ext/ogg/gstoggdemux.c
ext/ogg/gstoggstream.c
ext/theora/gsttheoraenc.c
ext/vorbis/gstvorbisparse.c
gst/typefind/gsttypefindfunctions.c
gst/videoscale/gstvideoscale.c
tests/check/libs/video.c

Simple merge
Simple merge
Simple merge
@@@ -398,12 -397,13 +398,12 @@@ vorbis_parse_parse_packet (GstVorbisPar
    parse->packetno++;
  
    have_header = FALSE;
 -  if (size >= 1) {
 -    if (data[0] & 1)
 +  gst_buffer_map (buf, &map, GST_MAP_READ);
 +  if (map.size >= 1) {
-     if (map.data[0] >= 0x01 && map.data[0] <= 0x05)
++    if (map.data[0] & 1)
        have_header = TRUE;
    }
 +  gst_buffer_unmap (buf, &map);
  
    if (have_header) {
      if (!parse->streamheader_sent) {
Simple merge
@@@ -112,14 -110,38 +112,14 @@@ enu
  #undef GST_VIDEO_SIZE_RANGE
  #define GST_VIDEO_SIZE_RANGE "(int) [ 1, 32767]"
  
- #define GST_VIDEO_FORMATS "{ \"I420\", \"YV12\", \"YUY2\", \"UYVY\", \"AYUV\", \"RGBx\", " \
-     "\"BGRx\", \"xRGB\", \"xBGR\", \"RGBA\", \"BGRA\", \"ARGB\", \"ABGR\", \"RGB\", " \
-     "\"BGR\", \"Y41B\", \"Y42B\", \"YVYU\", \"Y444\", \"GRAY8\", \"GRAY16_BE\", \"GRAY16_LE\", " \
-     "\"v308\", \"Y800\", \"Y16\", \"RGB16\", \"RGB15\", \"ARGB64\", \"AYUV64\" } "
++#define GST_VIDEO_FORMATS "{ I420, YV12, YUY2, UYVY, AYUV, RGBx, " \
++    "BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, " \
++    "BGR, Y41B, Y42B, YVYU, Y444, GRAY8, GRAY16_BE, GRAY16_LE, " \
++    "v308, Y800, Y16, RGB16, RGB15, ARGB64, AYUV64, NV12 } "
 +
 +
  static GstStaticCaps gst_video_scale_format_caps[] = {
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_RGBA),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_ARGB),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_BGRA),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_ABGR),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("AYUV")),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_RGBx),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_xRGB),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_BGRx),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_xBGR),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("Y444")),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("v308")),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_RGB),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_BGR),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("Y42B")),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("YUY2")),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("YVYU")),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("UYVY")),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("I420")),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("YV12")),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("Y41B")),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_RGB_16),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_RGB_15),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_GRAY16 ("BYTE_ORDER")),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("Y16 ")),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_GRAY8),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("Y800")),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("Y8  ")),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("GREY")),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("AY64")),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_ARGB_64),
 -  GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("NV12"))
 +  GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS))
  };
  
  #define GST_TYPE_VIDEO_SCALE_METHOD (gst_video_scale_method_get_type())
@@@ -1124,18 -1199,22 +1125,23 @@@ gst_video_scale_transform_frame (GstVid
      case GST_VIDEO_FORMAT_ARGB64:
      case GST_VIDEO_FORMAT_AYUV64:
        if (add_borders)
 -        vs_fill_borders_AYUV64 (&dest, black);
 +        vs_fill_borders_AYUV64 (&dest[0], black);
        switch (method) {
          case GST_VIDEO_SCALE_NEAREST:
 -          vs_image_scale_nearest_AYUV64 (&dest, &src, videoscale->tmp_buf);
 +          vs_image_scale_nearest_AYUV64 (&dest[0], &src[0],
 +              videoscale->tmp_buf);
            break;
          case GST_VIDEO_SCALE_BILINEAR:
 -          vs_image_scale_linear_AYUV64 (&dest, &src, videoscale->tmp_buf);
 +          vs_image_scale_linear_AYUV64 (&dest[0], &src[0], videoscale->tmp_buf);
            break;
          case GST_VIDEO_SCALE_4TAP:
 -          vs_image_scale_4tap_AYUV64 (&dest, &src, videoscale->tmp_buf);
 +          vs_image_scale_4tap_AYUV64 (&dest[0], &src[0], videoscale->tmp_buf);
            break;
 -          vs_image_scale_lanczos_AYUV64 (&dest, &src, videoscale->tmp_buf,
+         case GST_VIDEO_SCALE_LANCZOS:
++          vs_image_scale_lanczos_AYUV64 (&dest[0], &src[0], videoscale->tmp_buf,
+               videoscale->sharpness, videoscale->dither, videoscale->submethod,
+               videoscale->envelope, videoscale->sharpen);
+           break;
          default:
            goto unknown_mode;
        }
            goto unknown_mode;
        }
        break;
 -          vs_image_scale_nearest_Y (&dest, &src, videoscale->tmp_buf);
 -          vs_image_scale_nearest_NV12 (&dest_u, &src_u, videoscale->tmp_buf);
+     case GST_VIDEO_FORMAT_NV12:
+       switch (method) {
+         case GST_VIDEO_SCALE_NEAREST:
 -          vs_image_scale_linear_Y (&dest, &src, videoscale->tmp_buf);
 -          vs_image_scale_linear_NV12 (&dest_u, &src_u, videoscale->tmp_buf);
++          vs_image_scale_nearest_Y (&dest[0], &src[0], videoscale->tmp_buf);
++          vs_image_scale_nearest_NV12 (&dest[1], &src[1], videoscale->tmp_buf);
+           break;
+         case GST_VIDEO_SCALE_BILINEAR:
++          vs_image_scale_linear_Y (&dest[0], &src[0], videoscale->tmp_buf);
++          vs_image_scale_linear_NV12 (&dest[1], &src[1], videoscale->tmp_buf);
+           break;
+         default:
+           goto unknown_mode;
+       }
+       break;
      case GST_VIDEO_FORMAT_RGB16:
        if (add_borders)
 -        vs_fill_borders_RGB565 (&dest, black);
 +        vs_fill_borders_RGB565 (&dest[0], black);
        switch (method) {
          case GST_VIDEO_SCALE_NEAREST:
 -          vs_image_scale_nearest_RGB565 (&dest, &src, videoscale->tmp_buf);
 +          vs_image_scale_nearest_RGB565 (&dest[0], &src[0],
 +              videoscale->tmp_buf);
            break;
          case GST_VIDEO_SCALE_BILINEAR:
 -          vs_image_scale_linear_RGB565 (&dest, &src, videoscale->tmp_buf);
 +          vs_image_scale_linear_RGB565 (&dest[0], &src[0], videoscale->tmp_buf);
            break;
          case GST_VIDEO_SCALE_4TAP:
 -          vs_image_scale_4tap_RGB565 (&dest, &src, videoscale->tmp_buf);
 +          vs_image_scale_4tap_RGB565 (&dest[0], &src[0], videoscale->tmp_buf);
            break;
          default:
            goto unknown_mode;
@@@ -594,20 -547,26 +594,26 @@@ GST_START_TEST (test_parse_caps_rgb
    } formats[] = {
      /* 24 bit */
      {
 -    GST_VIDEO_CAPS_RGB, GST_VIDEO_FORMAT_RGB}, {
 -    GST_VIDEO_CAPS_BGR, GST_VIDEO_FORMAT_BGR},
 +    GST_VIDEO_CAPS_MAKE ("RGB"), GST_VIDEO_FORMAT_RGB}, {
 +    GST_VIDEO_CAPS_MAKE ("BGR"), GST_VIDEO_FORMAT_BGR},
          /* 32 bit (no alpha) */
      {
 -    GST_VIDEO_CAPS_RGBx, GST_VIDEO_FORMAT_RGBx}, {
 -    GST_VIDEO_CAPS_xRGB, GST_VIDEO_FORMAT_xRGB}, {
 -    GST_VIDEO_CAPS_BGRx, GST_VIDEO_FORMAT_BGRx}, {
 -    GST_VIDEO_CAPS_xBGR, GST_VIDEO_FORMAT_xBGR},
 +    GST_VIDEO_CAPS_MAKE ("RGBx"), GST_VIDEO_FORMAT_RGBx}, {
 +    GST_VIDEO_CAPS_MAKE ("xRGB"), GST_VIDEO_FORMAT_xRGB}, {
 +    GST_VIDEO_CAPS_MAKE ("BGRx"), GST_VIDEO_FORMAT_BGRx}, {
 +    GST_VIDEO_CAPS_MAKE ("xBGR"), GST_VIDEO_FORMAT_xBGR},
          /* 32 bit (with alpha) */
      {
 -    GST_VIDEO_CAPS_RGBA, GST_VIDEO_FORMAT_RGBA}, {
 -    GST_VIDEO_CAPS_ARGB, GST_VIDEO_FORMAT_ARGB}, {
 -    GST_VIDEO_CAPS_BGRA, GST_VIDEO_FORMAT_BGRA}, {
 -    GST_VIDEO_CAPS_ABGR, GST_VIDEO_FORMAT_ABGR},
 +    GST_VIDEO_CAPS_MAKE ("RGBA"), GST_VIDEO_FORMAT_RGBA}, {
 +    GST_VIDEO_CAPS_MAKE ("ARGB"), GST_VIDEO_FORMAT_ARGB}, {
 +    GST_VIDEO_CAPS_MAKE ("BGRA"), GST_VIDEO_FORMAT_BGRA}, {
-     GST_VIDEO_CAPS_MAKE ("ABGR"), GST_VIDEO_FORMAT_ABGR}
++    GST_VIDEO_CAPS_MAKE ("ABGR"), GST_VIDEO_FORMAT_ABGR},
+         /* 16 bit */
+     {
 -    GST_VIDEO_CAPS_RGB_16, GST_VIDEO_FORMAT_RGB16}, {
 -    GST_VIDEO_CAPS_BGR_16, GST_VIDEO_FORMAT_BGR16}, {
 -    GST_VIDEO_CAPS_RGB_15, GST_VIDEO_FORMAT_RGB15}, {
 -    GST_VIDEO_CAPS_BGR_15, GST_VIDEO_FORMAT_BGR15}
++    GST_VIDEO_CAPS_MAKE ("RGB16"), GST_VIDEO_FORMAT_RGB16}, {
++    GST_VIDEO_CAPS_MAKE ("BGR16"), GST_VIDEO_FORMAT_BGR16}, {
++    GST_VIDEO_CAPS_MAKE ("RGB15"), GST_VIDEO_FORMAT_RGB15}, {
++    GST_VIDEO_CAPS_MAKE ("BGR15"), GST_VIDEO_FORMAT_BGR15}
    };
    gint i;