From 6bb26264985d01a49b9d2b5f1251fc80fbaa2860 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 18 Sep 2013 16:32:28 +0200 Subject: [PATCH] rtpjitterbuffer: reevaluate the current timer after timeout When we trigger the timeout logic of a timer, reevaluate it because it is possible that it still has the lowest timeout. --- gst/rtpmanager/gstrtpjitterbuffer.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/gst/rtpmanager/gstrtpjitterbuffer.c b/gst/rtpmanager/gstrtpjitterbuffer.c index 4fcfb3c..bf676e6 100644 --- a/gst/rtpmanager/gstrtpjitterbuffer.c +++ b/gst/rtpmanager/gstrtpjitterbuffer.c @@ -2446,16 +2446,13 @@ wait_next_timeout (GstRtpJitterBuffer * jitterbuffer) /* no timestamp, timeout immeditately */ if (test_timeout == -1 || test_timeout <= now) { - if (do_timeout (jitterbuffer, test, now)) { - i--; + if (do_timeout (jitterbuffer, test, now)) len--; - } - } else { + i--; + } else if (timer == NULL || test_timeout < timer_timeout) { /* find the smallest timeout */ - if (timer == NULL || test_timeout < timer_timeout) { - timer = test; - timer_timeout = test_timeout; - } + timer = test; + timer_timeout = test_timeout; } } if (timer) { -- 2.7.4