diff options
author | Havard Graff <havard.graff@tandberg.com> | 2009-08-31 18:46:51 +0200 |
---|---|---|
committer | Wim Taymans <wim.taymans@collabora.co.uk> | 2009-09-08 12:41:52 +0200 |
commit | e08e610db0d5e9f7e4d5d5c42b026b2853b1321d (patch) | |
tree | 2d75956d7fcf614575bbf09f82dd094da4572b70 /gst | |
parent | 796dec59209445cd9a19f1bd5844bb3b5e419d60 (diff) |
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
Diffstat (limited to 'gst')
-rw-r--r-- | gst/rtpmanager/gstrtpbin.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gst/rtpmanager/gstrtpbin.c b/gst/rtpmanager/gstrtpbin.c index 0c00e5c8..d5448147 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); |