v4l2transform: Expose BGRA and ARGB formats
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Wed, 19 Mar 2014 21:25:16 +0000 (17:25 -0400)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Thu, 8 May 2014 19:56:35 +0000 (15:56 -0400)
sys/v4l2/gstv4l2.c

index db1052d..d4871f8 100644 (file)
@@ -82,8 +82,26 @@ gst_v4l2_probe_template_caps (const gchar * device, gint video_fd,
 
     template = gst_v4l2_object_v4l2fourcc_to_structure (format.pixelformat);
 
-    if (template)
+    if (template) {
+      GstStructure *alt_t = NULL;
+
+      switch (format.pixelformat) {
+        case V4L2_PIX_FMT_RGB32:
+          alt_t = gst_structure_copy (template);
+          gst_structure_set (alt_t, "format", G_TYPE_STRING, "ARGB", NULL);
+          break;
+        case V4L2_PIX_FMT_BGR32:
+          alt_t = gst_structure_copy (template);
+          gst_structure_set (alt_t, "format", G_TYPE_STRING, "BGRA", NULL);
+        default:
+          break;
+      }
+
       gst_caps_append_structure (caps, template);
+
+      if (alt_t)
+        gst_caps_append_structure (caps, alt_t);
+    }
   }
 
   return gst_caps_simplify (caps);