From ec82e4ab7c45bcdbcdf35bb056aa0431cc5bbc10 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 19 Aug 2013 14:58:01 +0200 Subject: [PATCH] jitterbuffer: remove lost timer when we get the packet When we receive a packet, also remove the LOST timer for it. --- gst/rtpmanager/gstrtpjitterbuffer.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/gst/rtpmanager/gstrtpjitterbuffer.c b/gst/rtpmanager/gstrtpjitterbuffer.c index 3c1e23f..044ffff 100644 --- a/gst/rtpmanager/gstrtpjitterbuffer.c +++ b/gst/rtpmanager/gstrtpjitterbuffer.c @@ -1584,14 +1584,21 @@ update_timers (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum, TimerData *test = &g_array_index (priv->timers, TimerData, i); gint gap; - if (test->type != TIMER_TYPE_EXPECTED) - continue; - gap = gst_rtp_buffer_compare_seqnum (test->seqnum, seqnum); GST_DEBUG_OBJECT (jitterbuffer, "%d, #%d<->#%d gap %d", i, test->seqnum, seqnum, gap); + if (test->type == TIMER_TYPE_LOST) { + if (gap == 0) { + remove_timer (jitterbuffer, test); + len--; + i--; + } + continue; + } else if (test->type != TIMER_TYPE_EXPECTED) + continue; + if (gap == 0) { /* the timer for the current seqnum */ timer = test; -- 2.7.4