diff options
author | Wim Taymans <wim.taymans@collabora.co.uk> | 2009-03-23 11:22:08 +0100 |
---|---|---|
committer | Wim Taymans <wim.taymans@collabora.co.uk> | 2009-03-23 11:22:08 +0100 |
commit | 39f59ea4569cdc3aaba5d736442cb41031aeedaa (patch) | |
tree | 19f5f7387638710dab6cd57793abb4489f0d463a | |
parent | cc1a869a2c23bf740ad2fe18f2d01ea75072fec2 (diff) |
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.
-rw-r--r-- | ext/pulse/pulsesink.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/ext/pulse/pulsesink.c b/ext/pulse/pulsesink.c index 7d2af9d5..5064f6f4 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; } |