video: API: Add GST_VIDEO_FORMAT_v308 for packed 4:4:4 YUV
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Fri, 23 Apr 2010 13:22:07 +0000 (15:22 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 29 Apr 2010 16:21:21 +0000 (18:21 +0200)
gst-libs/gst/video/video.c
gst-libs/gst/video/video.h

index 2041a47..3bb6f62 100644 (file)
@@ -733,6 +733,8 @@ gst_video_format_from_fourcc (guint32 fourcc)
       return GST_VIDEO_FORMAT_NV12;
     case GST_MAKE_FOURCC ('N', 'V', '2', '1'):
       return GST_VIDEO_FORMAT_NV21;
+    case GST_MAKE_FOURCC ('v', '3', '0', '8'):
+      return GST_VIDEO_FORMAT_v308;
     default:
       return GST_VIDEO_FORMAT_UNKNOWN;
   }
@@ -782,6 +784,8 @@ gst_video_format_to_fourcc (GstVideoFormat format)
       return GST_MAKE_FOURCC ('N', 'V', '1', '2');
     case GST_VIDEO_FORMAT_NV21:
       return GST_MAKE_FOURCC ('N', 'V', '2', '1');
+    case GST_VIDEO_FORMAT_v308:
+      return GST_MAKE_FOURCC ('v', '3', '0', '8');
     default:
       return 0;
   }
@@ -887,6 +891,7 @@ gst_video_format_is_rgb (GstVideoFormat format)
     case GST_VIDEO_FORMAT_v216:
     case GST_VIDEO_FORMAT_NV12:
     case GST_VIDEO_FORMAT_NV21:
+    case GST_VIDEO_FORMAT_v308:
       return FALSE;
     case GST_VIDEO_FORMAT_RGBx:
     case GST_VIDEO_FORMAT_BGRx:
@@ -931,6 +936,7 @@ gst_video_format_is_yuv (GstVideoFormat format)
     case GST_VIDEO_FORMAT_v216:
     case GST_VIDEO_FORMAT_NV12:
     case GST_VIDEO_FORMAT_NV21:
+    case GST_VIDEO_FORMAT_v308:
       return TRUE;
     case GST_VIDEO_FORMAT_RGBx:
     case GST_VIDEO_FORMAT_BGRx:
@@ -998,6 +1004,7 @@ gst_video_format_has_alpha (GstVideoFormat format)
     case GST_VIDEO_FORMAT_v216:
     case GST_VIDEO_FORMAT_NV12:
     case GST_VIDEO_FORMAT_NV21:
+    case GST_VIDEO_FORMAT_v308:
       return FALSE;
     case GST_VIDEO_FORMAT_AYUV:
     case GST_VIDEO_FORMAT_RGBA:
@@ -1067,6 +1074,7 @@ gst_video_format_get_row_stride (GstVideoFormat format, int component,
       return width * 4;
     case GST_VIDEO_FORMAT_RGB:
     case GST_VIDEO_FORMAT_BGR:
+    case GST_VIDEO_FORMAT_v308:
       return GST_ROUND_UP_4 (width * 3);
     case GST_VIDEO_FORMAT_Y41B:
       if (component == 0) {
@@ -1146,6 +1154,7 @@ gst_video_format_get_pixel_stride (GstVideoFormat format, int component)
       return 4;
     case GST_VIDEO_FORMAT_RGB:
     case GST_VIDEO_FORMAT_BGR:
+    case GST_VIDEO_FORMAT_v308:
       return 3;
     case GST_VIDEO_FORMAT_v210:
       /* v210 is packed at the bit level, so pixel stride doesn't make sense */
@@ -1227,6 +1236,7 @@ gst_video_format_get_component_width (GstVideoFormat format, int component,
     case GST_VIDEO_FORMAT_RGB:
     case GST_VIDEO_FORMAT_BGR:
     case GST_VIDEO_FORMAT_Y444:
+    case GST_VIDEO_FORMAT_v308:
     case GST_VIDEO_FORMAT_NV12:
     case GST_VIDEO_FORMAT_NV21:
     case GST_VIDEO_FORMAT_GRAY8:
@@ -1289,6 +1299,7 @@ gst_video_format_get_component_height (GstVideoFormat format, int component,
     case GST_VIDEO_FORMAT_Y444:
     case GST_VIDEO_FORMAT_v210:
     case GST_VIDEO_FORMAT_v216:
+    case GST_VIDEO_FORMAT_v308:
     case GST_VIDEO_FORMAT_GRAY8:
     case GST_VIDEO_FORMAT_GRAY16_BE:
     case GST_VIDEO_FORMAT_GRAY16_LE:
@@ -1426,6 +1437,7 @@ gst_video_format_get_component_offset (GstVideoFormat format, int component,
         return 0;
       return 0;
     case GST_VIDEO_FORMAT_RGB:
+    case GST_VIDEO_FORMAT_v308:
       if (component == 0)
         return 0;
       if (component == 1)
@@ -1538,6 +1550,7 @@ gst_video_format_get_size (GstVideoFormat format, int width, int height)
       return width * 4 * height;
     case GST_VIDEO_FORMAT_RGB:
     case GST_VIDEO_FORMAT_BGR:
+    case GST_VIDEO_FORMAT_v308:
       return GST_ROUND_UP_4 (width * 3) * height;
     case GST_VIDEO_FORMAT_Y41B:
       /* simplification of ROUNDUP4(w)*h + 2*((ROUNDUP16(w)/4)*h */
index 809a0a7..ebf20b9 100644 (file)
@@ -56,6 +56,7 @@ G_BEGIN_DECLS
  * @GST_VIDEO_FORMAT_GRAY8: 8-bit grayscale (Since: 0.10.29)
  * @GST_VIDEO_FORMAT_GRAY16_BE: 16-bit grayscale, most significant byte first (Since: 0.10.29)
  * @GST_VIDEO_FORMAT_GRAY16_LE: 16-bit grayscale, least significant byte first (Since: 0.10.29)
+ * @GST_VIDEO_FORMAT_v308: packed 4:4:4 YUV (Since: 0.10.29)
  *
  * Enum value describing the most common video formats.
  */
@@ -86,7 +87,8 @@ typedef enum {
   GST_VIDEO_FORMAT_NV21,
   GST_VIDEO_FORMAT_GRAY8,
   GST_VIDEO_FORMAT_GRAY16_BE,
-  GST_VIDEO_FORMAT_GRAY16_LE
+  GST_VIDEO_FORMAT_GRAY16_LE,
+  GST_VIDEO_FORMAT_v308
 } GstVideoFormat;
 
 #define GST_VIDEO_BYTE1_MASK_32  "0xFF000000"