From fd6cd6f545c6a7733d16c6c2f9ba62b0dd2e29b7 Mon Sep 17 00:00:00 2001 From: Nicolas Dufresne Date: Thu, 14 Nov 2019 17:20:51 -0500 Subject: [PATCH] rtpjitterbuffer: Check exit condition immediately after JBUF_WAIT JBUF_WAIT_QUEUE drops the JBUF_LOCK, which means the stop condition for the chain function may have changed (change_state to NULL). Check this immediately after the wait so that we don't delay shutting down. --- gst/rtpmanager/gstrtpjitterbuffer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gst/rtpmanager/gstrtpjitterbuffer.c b/gst/rtpmanager/gstrtpjitterbuffer.c index 54feee9c95..d20207b271 100644 --- a/gst/rtpmanager/gstrtpjitterbuffer.c +++ b/gst/rtpmanager/gstrtpjitterbuffer.c @@ -3078,9 +3078,9 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent, update_current_timer (jitterbuffer); JBUF_WAIT_QUEUE (priv); + if (priv->srcresult != GST_FLOW_OK) + goto out_flushing; } - if (priv->srcresult != GST_FLOW_OK) - goto out_flushing; /* let's check if this buffer is too late, we can only accept packets with * bigger seqnum than the one we last pushed. */