From 7f08081016379dd163c2a1a0eb7251c5540b96f7 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Fri, 12 Feb 2010 19:32:27 +0100 Subject: [PATCH] jitterbuffer: don't resync to invalid timestamps If we detect backward timestamps on the server, don't try to resync when we don't have an input timestamp (such as when using RTSP over TCP) instead, do nothing but assume the timestamp was ok, it will correct itself when time goes forwards. --- gst/rtpmanager/rtpjitterbuffer.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gst/rtpmanager/rtpjitterbuffer.c b/gst/rtpmanager/rtpjitterbuffer.c index 7e018d2677..6601f5029b 100644 --- a/gst/rtpmanager/rtpjitterbuffer.c +++ b/gst/rtpmanager/rtpjitterbuffer.c @@ -381,12 +381,15 @@ calculate_skew (RTPJitterBuffer * jbuf, guint32 rtptime, GstClockTime time, if (G_LIKELY (gstrtptime >= jbuf->base_rtptime)) send_diff = gstrtptime - jbuf->base_rtptime; - else { + else if (time != -1) { /* elapsed time at sender, timestamps can go backwards and thus be smaller * than our base time, take a new base time in that case. */ GST_WARNING ("backward timestamps at server, taking new base time"); rtp_jitter_buffer_resync (jbuf, time, gstrtptime, ext_rtptime, FALSE); send_diff = 0; + } else { + GST_WARNING ("backward timestamps at server but no timestamps"); + send_diff = 0; } GST_DEBUG ("extrtp %" G_GUINT64_FORMAT ", gstrtp %" GST_TIME_FORMAT ", base %"