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.
This commit is contained in:
Wim Taymans 2013-09-30 11:16:32 +02:00
parent 4a31aec513
commit 03d520eb69

View file

@ -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;