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
This commit is contained in:
Havard Graff 2009-08-31 18:46:51 +02:00 committed by Wim Taymans
parent 796dec5920
commit e08e610db0

View file

@ -577,6 +577,9 @@ free_session (GstRtpBinSession * sess, GstRtpBin * bin)
{ {
GST_DEBUG_OBJECT (bin, "freeing session %p", sess); 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->demux, GST_STATE_NULL);
gst_element_set_state (sess->session, 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_ptreq_sig);
g_signal_handler_disconnect (stream->buffer, stream->buffer_ntpstop_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->demux, GST_STATE_NULL);
gst_element_set_state (stream->buffer, GST_STATE_NULL); gst_element_set_state (stream->buffer, GST_STATE_NULL);