From 40549278c31c601164ab29c28afbb463db907942 Mon Sep 17 00:00:00 2001 From: HÃ¥vard Graff Date: Tue, 8 Sep 2009 13:39:31 +0200 Subject: jitterbuffer: avoid throwing reordered buffers with same timestamps When we receive a reordered packet with the same timestamp as the previous one (which can happen for fragmented packets) don't consider the packet as lost but instead wait for the reordered packet to arrive. Switch the warning-level, so that a reordering does not get a warning, only an actual produced lost-packet. Fixes #594251 --- gst/rtpmanager/gstrtpjitterbuffer.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gst/rtpmanager') diff --git a/gst/rtpmanager/gstrtpjitterbuffer.c b/gst/rtpmanager/gstrtpjitterbuffer.c index 01b41a06..4ef449ba 100644 --- a/gst/rtpmanager/gstrtpjitterbuffer.c +++ b/gst/rtpmanager/gstrtpjitterbuffer.c @@ -1486,7 +1486,7 @@ again: if (gap > 0) { /* we have a gap */ - GST_WARNING_OBJECT (jitterbuffer, + GST_DEBUG_OBJECT (jitterbuffer, "Sequence number GAP detected: expected %d instead of %d (%d missing)", next_seqnum, seqnum, gap); @@ -1498,7 +1498,7 @@ again: * number of packets we are missing, this is the estimated duration * for the missing packet based on equidistant packet spacing. Also make * sure we never go negative. */ - if (out_time > priv->last_out_time) + if (out_time >= priv->last_out_time) duration = (out_time - priv->last_out_time) / (gap + 1); else goto lost; @@ -1567,7 +1567,7 @@ again: GstEvent *event; /* we had a gap and thus we lost a packet. Create an event for this. */ - GST_DEBUG_OBJECT (jitterbuffer, "Packet #%d lost", next_seqnum); + GST_WARNING_OBJECT (jitterbuffer, "Packet #%d lost", next_seqnum); priv->num_late++; discont = TRUE; -- cgit