sys/v4l2/gstv4l2src.c: Add warning messages stating exactly why the latency query...
authorEdward Hervey <bilboed@bilboed.com>
Tue, 12 Aug 2008 12:04:24 +0000 (12:04 +0000)
committerEdward Hervey <bilboed@bilboed.com>
Tue, 12 Aug 2008 12:04:24 +0000 (12:04 +0000)
Original commit message from CVS:
* sys/v4l2/gstv4l2src.c: (gst_v4l2src_query):
Add warning messages stating exactly why the latency query failed.
* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_set_capture):
In some cases, the negotiated framerate might be the default one which
is already set internally. But we still need to mark it down in fps_n
and fps_d so that the latency query can happen properly.

ChangeLog
sys/v4l2/gstv4l2src.c
sys/v4l2/v4l2src_calls.c

index 47545a83ac6065d1f6b0f3197d8dc03458ea8101..efb736ddfcc9df7f0b1713111ebab1b96dabf948 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-08-12  Edward Hervey  <edward.hervey@collabora.co.uk>
+
+       * sys/v4l2/gstv4l2src.c: (gst_v4l2src_query):
+       Add warning messages stating exactly why the latency query failed.
+       * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_set_capture):
+       In some cases, the negotiated framerate might be the default one which
+       is already set internally. But we still need to mark it down in fps_n
+       and fps_d so that the latency query can happen properly.
+
 2008-08-12  Edward Hervey  <edward.hervey@collabora.co.uk>
 
        * docs/plugins/inspect/plugin-1394.xml:
index ce4b22376f0844cac8e1e32a010e70e02501871e..26e8ddfaf2c3d5d709a9853b4aa6329530bfcd63 100644 (file)
@@ -1071,12 +1071,18 @@ gst_v4l2src_query (GstBaseSrc * bsrc, GstQuery * query)
       GstClockTime min_latency, max_latency;
 
       /* device must be open */
-      if (!GST_V4L2_IS_OPEN (src->v4l2object))
+      if (!GST_V4L2_IS_OPEN (src->v4l2object)) {
+        GST_WARNING_OBJECT (src,
+            "Can't give latency since device isn't open !");
         goto done;
+      }
 
       /* we must have a framerate */
-      if (src->fps_n <= 0 || src->fps_d <= 0)
+      if (src->fps_n <= 0 || src->fps_d <= 0) {
+        GST_WARNING_OBJECT (src,
+            "Can't give latency since framerate isn't fixated !");
         goto done;
+      }
 
       /* min latency is the time to capture one frame */
       min_latency =
index c35d3ee272fcbc7348f366967beb20d9f3bfadf9..02bb8d94064226debc7cfd3cbcd8d03fcd6f3e62 100644 (file)
@@ -1214,7 +1214,9 @@ gst_v4l2src_set_capture (GstV4l2Src * v4l2src, guint32 pixelformat,
   /* Note: V4L2 provides the frame interval, we have the frame rate */
   if (fractions_are_equal (stream.parm.capture.timeperframe.numerator,
           stream.parm.capture.timeperframe.denominator, fps_d, fps_n)) {
-    GST_LOG_OBJECT (v4l2src, "Desired framerate already set, nothing to do");
+    GST_LOG_OBJECT (v4l2src, "Desired framerate already set");
+    v4l2src->fps_n = fps_n;
+    v4l2src->fps_d = fps_d;
     goto done;
   }