From 27e20eadc012c1426dd2044b58f8fc0950b77058 Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Tue, 12 Aug 2008 12:04:24 +0000 Subject: [PATCH] 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. --- ChangeLog | 9 +++++++++ sys/v4l2/gstv4l2src.c | 10 ++++++++-- sys/v4l2/v4l2src_calls.c | 4 +++- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 47545a8..efb736d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,14 @@ 2008-08-12 Edward Hervey + * 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 + * docs/plugins/inspect/plugin-1394.xml: Whoops, forgot one doc file for people who can't/don't build the raw1394 plugin. diff --git a/sys/v4l2/gstv4l2src.c b/sys/v4l2/gstv4l2src.c index ce4b223..26e8ddf 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 c35d3ee..02bb8d9 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; } -- 2.7.4