summaryrefslogtreecommitdiffstats
path: root/ext/pulse/pulsesink.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/pulse/pulsesink.c')
-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 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;
}