video-format: add range extension to BGR_10XE format
authorWim Taymans <wtaymans@redhat.com>
Thu, 6 Nov 2014 08:38:06 +0000 (09:38 +0100)
committerWim Taymans <wtaymans@redhat.com>
Thu, 6 Nov 2014 09:45:13 +0000 (10:45 +0100)
gst-libs/gst/video/video-format.c

index 9fbc39d..bade222 100644 (file)
@@ -1667,6 +1667,12 @@ unpack_GBR_10LE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
     B = GST_READ_UINT16_LE (srcB + i) << 6;
     R = GST_READ_UINT16_LE (srcR + i) << 6;
 
+    if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
+      R |= (R >> 10);
+      G |= (G >> 10);
+      B |= (B >> 10);
+    }
+
     d[i * 4 + 0] = 0xffff;
     d[i * 4 + 1] = R;
     d[i * 4 + 2] = G;
@@ -1715,6 +1721,12 @@ unpack_GBR_10BE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
     B = GST_READ_UINT16_BE (srcB + i) << 6;
     R = GST_READ_UINT16_BE (srcR + i) << 6;
 
+    if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
+      R |= (R >> 10);
+      G |= (G >> 10);
+      B |= (B >> 10);
+    }
+
     d[i * 4 + 0] = 0xffff;
     d[i * 4 + 1] = R;
     d[i * 4 + 2] = G;