[MOVED FROM GST-P-FARSIGHT] Max latency should also be increased by our own latency
authorYouness Alaoui <youness.alaoui@collabora.co.uk>
Mon, 28 Apr 2008 23:28:51 +0000 (23:28 +0000)
committerEdward Hervey <bilboed@bilboed.com>
Tue, 17 Feb 2009 18:29:04 +0000 (19:29 +0100)
20080428232851-4f0f6-05f9a89403cd54211f2f4a6595704270eab9616f.gz

gst/liveadder/liveadder.c

index 54a7f47..5ab4565 100644 (file)
@@ -645,13 +645,17 @@ gst_live_adder_query (GstPad * pad, GstQuery * query)
       gst_iterator_free (iter);
 
       if (res) {
-
+        GstClockTime my_latency = adder->latency_ms * GST_MSECOND;
         GST_OBJECT_LOCK (adder);
         adder->peer_latency = min_latency;
-        min_latency += adder->latency_ms * GST_MSECOND;
+        min_latency += my_latency;
         GST_OBJECT_UNLOCK (adder);
 
-        max_latency = MAX (max_latency, min_latency);
+        /* Make sure we don't risk an overflow */
+        if (max_latency < G_MAXUINT64 - my_latency)
+          max_latency += my_latency;
+        else
+          max_latency = G_MAXUINT64
         gst_query_set_latency (query, TRUE, min_latency, max_latency);
         GST_DEBUG_OBJECT (adder, "Calculated total latency : min %"
             GST_TIME_FORMAT " max %" GST_TIME_FORMAT,