From 27e20eadc012c1426dd2044b58f8fc0950b77058 Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Tue, 12 Aug 2008 12:04:24 +0000 Subject: sys/v4l2/gstv4l2src.c: Add warning messages stating exactly why the latency query failed. 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. --- sys/v4l2/gstv4l2src.c | 10 ++++++++-- sys/v4l2/v4l2src_calls.c | 4 +++- 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'sys') diff --git a/sys/v4l2/gstv4l2src.c b/sys/v4l2/gstv4l2src.c index ce4b2237..26e8ddfa 100644 --- a/sys/v4l2/gstv4l2src.c +++ b/sys/v4l2/gstv4l2src.c @@ -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 = diff --git a/sys/v4l2/v4l2src_calls.c b/sys/v4l2/v4l2src_calls.c index c35d3ee2..02bb8d94 100644 --- a/sys/v4l2/v4l2src_calls.c +++ b/sys/v4l2/v4l2src_calls.c @@ -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; } -- cgit