From 03d520eb69b643b0039a69cd1d4942e9049b8d65 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 30 Sep 2013 11:16:32 +0200 Subject: [PATCH] rtpjitterbuffer: pause timer when PAUSED Also pause the timer when we go to the PAUSED state. It is possible that we don't have a clock or base-time in PAUSED to perform the timeouts. --- gst/rtpmanager/gstrtpjitterbuffer.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gst/rtpmanager/gstrtpjitterbuffer.c b/gst/rtpmanager/gstrtpjitterbuffer.c index bca916496f..2648899560 100644 --- a/gst/rtpmanager/gstrtpjitterbuffer.c +++ b/gst/rtpmanager/gstrtpjitterbuffer.c @@ -1199,6 +1199,7 @@ gst_rtp_jitter_buffer_change_state (GstElement * element, /* unblock to allow streaming in PLAYING */ priv->blocked = FALSE; JBUF_SIGNAL_EVENT (priv); + JBUF_SIGNAL_TIMER (priv); JBUF_UNLOCK (priv); break; default: @@ -1218,6 +1219,7 @@ gst_rtp_jitter_buffer_change_state (GstElement * element, JBUF_LOCK (priv); /* block to stop streaming when PAUSED */ priv->blocked = TRUE; + unschedule_current_timer (jitterbuffer); JBUF_UNLOCK (priv); if (ret != GST_STATE_CHANGE_FAILURE) ret = GST_STATE_CHANGE_NO_PREROLL; @@ -2640,7 +2642,7 @@ wait_next_timeout (GstRtpJitterBuffer * jitterbuffer) timer_timeout = test_timeout; } } - if (timer) { + if (timer && !priv->blocked) { GstClock *clock; GstClockTime sync_time; GstClockID id;