[Bug 725860] v4l2src: Fix using v4l2src with Hauppauge HDPVR video capture device

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Sat Mar 29 14:25:46 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=725860
  GStreamer | gst-plugins-good | 1.2.3

--- Comment #20 from Nicolas Dufresne <nicolas.dufresne at collabora.co.uk> 2014-03-29 21:51:51 UTC ---
Review of attachment 271151:
 --> (https://bugzilla.gnome.org/review?bug=725860&attachment=271151)

Here's more instruction, note that some changes has appeared upstream, so this
all need updating. Do you have time to rework it ?

::: sys/v4l2/gstv4l2object.c
@@ +2392,3 @@
   if (format.type != v4l2object->type ||
+      (width != 0 && format.fmt.pix.width != width) ||
+      (height != 0 && format.fmt.pix.height != height) ||

Ok, I know what to do instead. So instead of doing that, if size is not set the
caps then set:

format.fmt.pix.width = width;
format.mt.pix.height = height;

This way it less obfuscated, and should work.

@@ +2417,3 @@

+    if ((width != 0 && format.fmt.pix.width != width) ||
+        (height != 0 && format.fmt.pix.height != height))

Will then not be needed.

::: sys/v4l2/gstv4l2src.c
@@ +284,3 @@
+          G_MAXINT, 1);
+    if (gst_structure_has_field (structure, "format"))
+      gst_structure_fixate_field (structure, "format");

This though is totally needed, we should not introduce new field when fixating.

--- Comment #21 from Nicolas Dufresne <nicolas.dufresne at collabora.co.uk> 2014-03-29 21:51:52 UTC ---
Review of attachment 271151:
 --> (https://bugzilla.gnome.org/review?bug=725860&attachment=271151)

Here's more instruction, note that some changes has appeared upstream, so this
all need updating. Do you have time to rework it ?

::: sys/v4l2/gstv4l2object.c
@@ +2392,3 @@
   if (format.type != v4l2object->type ||
+      (width != 0 && format.fmt.pix.width != width) ||
+      (height != 0 && format.fmt.pix.height != height) ||

Ok, I know what to do instead. So instead of doing that, if size is not set the
caps then set:

format.fmt.pix.width = width;
format.mt.pix.height = height;

This way it less obfuscated, and should work.

@@ +2417,3 @@

+    if ((width != 0 && format.fmt.pix.width != width) ||
+        (height != 0 && format.fmt.pix.height != height))

Will then not be needed.

::: sys/v4l2/gstv4l2src.c
@@ +284,3 @@
+          G_MAXINT, 1);
+    if (gst_structure_has_field (structure, "format"))
+      gst_structure_fixate_field (structure, "format");

This though is totally needed, we should not introduce new field when fixating.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list