From 39f59ea4569cdc3aaba5d736442cb41031aeedaa Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 23 Mar 2009 11:22:08 +0100 Subject: [PATCH] pulsesink: clean up the state change function Make the state change function a bit more readable and only pause after the parent had a change to pause first. --- ext/pulse/pulsesink.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/ext/pulse/pulsesink.c b/ext/pulse/pulsesink.c index 7d2af9d5a5..5064f6f407 100644 --- a/ext/pulse/pulsesink.c +++ b/ext/pulse/pulsesink.c @@ -1243,23 +1243,25 @@ unlock: static GstStateChangeReturn gst_pulsesink_change_state (GstElement * element, GstStateChange transition) { + GstStateChangeReturn res; GstPulseSink *this = GST_PULSESINK (element); switch (transition) { - case GST_STATE_CHANGE_PAUSED_TO_PLAYING: - case GST_STATE_CHANGE_PLAYING_TO_PAUSED: - - gst_pulsesink_pause (this, - GST_STATE_TRANSITION_NEXT (transition) == GST_STATE_PAUSED); + gst_pulsesink_pause (this, FALSE); break; - default: - ; + break; } - if (GST_ELEMENT_CLASS (parent_class)->change_state) - return GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + res = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); - return GST_STATE_CHANGE_SUCCESS; + switch (transition) { + case GST_STATE_CHANGE_PLAYING_TO_PAUSED: + gst_pulsesink_pause (this, TRUE); + break; + default: + break; + } + return res; }