summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorEdward Hervey <bilboed@bilboed.com>2008-08-13 08:33:57 +0000
committerEdward Hervey <bilboed@bilboed.com>2008-08-13 08:33:57 +0000
commit5cf61c6a80f3da587e08371f1f1000f17e482298 (patch)
tree0a7eee1e885e2097f5053f1b1b9f7f4f89d7836c /sys
parent27e20eadc012c1426dd2044b58f8fc0950b77058 (diff)
sys/v4l2/gstv4l2src.c: Properly set the maximum latency value, in the same way it is done in v4lsrc.
Original commit message from CVS: * sys/v4l2/gstv4l2src.c: (gst_v4l2src_query): Properly set the maximum latency value, in the same way it is done in v4lsrc. * sys/v4l2/v4l2src_calls.c: Simplify fraction equality check, no need to use GValues for this.
Diffstat (limited to 'sys')
-rw-r--r--sys/v4l2/gstv4l2src.c3
-rw-r--r--sys/v4l2/v4l2src_calls.c17
2 files changed, 5 insertions, 15 deletions
diff --git a/sys/v4l2/gstv4l2src.c b/sys/v4l2/gstv4l2src.c
index 26e8ddfa..fd612428 100644
--- a/sys/v4l2/gstv4l2src.c
+++ b/sys/v4l2/gstv4l2src.c
@@ -1089,8 +1089,7 @@ gst_v4l2src_query (GstBaseSrc * bsrc, GstQuery * query)
gst_util_uint64_scale_int (GST_SECOND, src->fps_d, src->fps_n);
/* max latency is total duration of the frame buffer */
- /* FIXME: what to use here? */
- max_latency = 1 * min_latency;
+ max_latency = src->num_buffers * min_latency;
GST_DEBUG_OBJECT (bsrc,
"report latency min %" GST_TIME_FORMAT " max %" GST_TIME_FORMAT,
diff --git a/sys/v4l2/v4l2src_calls.c b/sys/v4l2/v4l2src_calls.c
index 02bb8d94..035c80dc 100644
--- a/sys/v4l2/v4l2src_calls.c
+++ b/sys/v4l2/v4l2src_calls.c
@@ -1132,19 +1132,10 @@ qbuf_failed:
*/
}
-static gboolean
-fractions_are_equal (gint num1, gint den1, gint num2, gint den2)
-{
- GValue fraction1 = { 0, }, fraction2 = {
- 0,};
-
- g_value_init (&fraction1, GST_TYPE_FRACTION);
- g_value_init (&fraction2, GST_TYPE_FRACTION);
- gst_value_set_fraction (&fraction1, num1, den1);
- gst_value_set_fraction (&fraction2, num2, den2);
- /* we know we don't have to unset the values in this case */
- return (gst_value_compare (&fraction1, &fraction2) == GST_VALUE_EQUAL);
-}
+/* Note about fraction simplification
+ * n1/d1 == n2/d2 is also written as n1 == ( n2 * d1 ) / d2
+ */
+#define fractions_are_equal(n1,d1,n2,d2) ((n1) == gst_util_uint64_scale_int((n2), (d1), (d2)))
/******************************************************
* gst_v4l2src_set_capture():