v4l2: Set pixel-aspect-ratio to 1/1
authorSjoerd Simons <sjoerd.simons@collabora.co.uk>
Mon, 7 Nov 2011 18:43:26 +0000 (18:43 +0000)
committerSjoerd Simons <sjoerd.simons@collabora.co.uk>
Mon, 14 Nov 2011 10:43:41 +0000 (11:43 +0100)
We don't currently support setting the pixel-aspect-ratio from V4L2. So
simply set it to be 1/1 in the caps to prevent negotiation failures when
fixating to weird values (e.g. when the downstream caps has
pixel-aspect-ratio = [ MIN, MAX ] )

https://bugzilla.gnome.org/show_bug.cgi?id=663580

sys/v4l2/gstv4l2object.c

index 903e63a..76ac677 100644 (file)
@@ -1719,7 +1719,8 @@ return_data:
   s = gst_structure_copy (template);
   gst_structure_set (s, "width", G_TYPE_INT, (gint) width,
       "height", G_TYPE_INT, (gint) height,
-      "interlaced", G_TYPE_BOOLEAN, interlaced, NULL);
+      "interlaced", G_TYPE_BOOLEAN, interlaced,
+      "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1, NULL);
 
   if (G_IS_VALUE (&rates)) {
     /* only change the framerate on the template when we have a valid probed new
@@ -1980,6 +1981,8 @@ default_frame_sizes:
       gst_structure_set (tmp, "height", GST_TYPE_INT_RANGE, min_h, max_h, NULL);
 
     gst_structure_set (tmp, "interlaced", G_TYPE_BOOLEAN, interlaced, NULL);
+    gst_structure_set (tmp, "pixel-aspect-ratio",
+        GST_TYPE_FRACTION, 1, 1, NULL);
 
     gst_caps_append_structure (ret, tmp);