From d441140cd648e835d91855c21a46b655c0ae4991 Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Tue, 10 Mar 2015 15:46:40 +1100 Subject: [PATCH] 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. --- gst/multifile/gstsplitmuxsrc.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/gst/multifile/gstsplitmuxsrc.c b/gst/multifile/gstsplitmuxsrc.c index 61f0c0642b..ea3ea7579d 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; }