diff options
author | Jan Schmidt <jan@centricular.com> | 2015-03-10 15:46:40 +1100 |
---|---|---|
committer | Jan Schmidt <jan@centricular.com> | 2015-03-10 15:49:33 +1100 |
commit | d441140cd648e835d91855c21a46b655c0ae4991 (patch) | |
tree | 4d07cfffd776e722b0b2324fa99e5b8b363fa39d | |
parent | b528c527b75ac466a192ddc1cb9e874a09e9b86b (diff) |
splitmux: Shut down element before downward state change
Make sure the state change won't hang trying to shut down pads
by making sure the streaming has stopped before chaining up.
-rw-r--r-- | gst/multifile/gstsplitmuxsrc.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/gst/multifile/gstsplitmuxsrc.c b/gst/multifile/gstsplitmuxsrc.c index 61f0c0642..ea3ea7579 100644 --- a/gst/multifile/gstsplitmuxsrc.c +++ b/gst/multifile/gstsplitmuxsrc.c @@ -309,17 +309,7 @@ gst_splitmux_src_change_state (GstElement * element, GstStateChange transition) } case GST_STATE_CHANGE_PAUSED_TO_READY: case GST_STATE_CHANGE_READY_TO_NULL: - break; - default: - break; - } - - ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); - if (ret == GST_STATE_CHANGE_FAILURE) - goto beach; - - switch (transition) { - case GST_STATE_CHANGE_READY_TO_NULL: + /* Make sure the element will shut down */ if (!gst_splitmux_src_stop (splitmux)) return GST_STATE_CHANGE_FAILURE; break; @@ -327,7 +317,8 @@ gst_splitmux_src_change_state (GstElement * element, GstStateChange transition) break; } -beach: + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + return ret; } |