From e08e610db0d5e9f7e4d5d5c42b026b2853b1321d Mon Sep 17 00:00:00 2001 From: Havard Graff Date: Mon, 31 Aug 2009 18:46:51 +0200 Subject: [PATCH] rtpbin: use locked state on internal bins Set the locked state on internal elements to make sure that they don't change back to another state when shutting down. Fixes #594248 --- gst/rtpmanager/gstrtpbin.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gst/rtpmanager/gstrtpbin.c b/gst/rtpmanager/gstrtpbin.c index 0c00e5c83e..d5448147fa 100644 --- a/gst/rtpmanager/gstrtpbin.c +++ b/gst/rtpmanager/gstrtpbin.c @@ -577,6 +577,9 @@ free_session (GstRtpBinSession * sess, GstRtpBin * bin) { GST_DEBUG_OBJECT (bin, "freeing session %p", sess); + gst_element_set_locked_state (sess->demux, TRUE); + gst_element_set_locked_state (sess->session, TRUE); + gst_element_set_state (sess->demux, GST_STATE_NULL); gst_element_set_state (sess->session, GST_STATE_NULL); @@ -1160,6 +1163,9 @@ free_stream (GstRtpBinStream * stream) g_signal_handler_disconnect (stream->buffer, stream->buffer_ptreq_sig); g_signal_handler_disconnect (stream->buffer, stream->buffer_ntpstop_sig); + gst_element_set_locked_state (stream->demux, TRUE); + gst_element_set_locked_state (stream->buffer, TRUE); + gst_element_set_state (stream->demux, GST_STATE_NULL); gst_element_set_state (stream->buffer, GST_STATE_NULL);