summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@collabora.co.uk>2009-03-23 11:22:08 +0100
committerWim Taymans <wim.taymans@collabora.co.uk>2009-03-23 11:22:08 +0100
commit39f59ea4569cdc3aaba5d736442cb41031aeedaa (patch)
tree19f5f7387638710dab6cd57793abb4489f0d463a
parentcc1a869a2c23bf740ad2fe18f2d01ea75072fec2 (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.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/ext/pulse/pulsesink.c b/ext/pulse/pulsesink.c
index 7d2af9d5a..5064f6f40 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;
}