[gst-cvs] gst-plugins-good: pulsesink: clean up the state change function

Wim Taymans wtay at kemper.freedesktop.org
Mon Mar 23 03:23:41 PDT 2009


Module: gst-plugins-good
Branch: master
Commit: 39f59ea4569cdc3aaba5d736442cb41031aeedaa
URL:    http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=39f59ea4569cdc3aaba5d736442cb41031aeedaa

Author: Wim Taymans <wim.taymans at collabora.co.uk>
Date:   Mon Mar 23 11:22:08 2009 +0100

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 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/ext/pulse/pulsesink.c b/ext/pulse/pulsesink.c
index 7d2af9d..5064f6f 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;
 }





More information about the Gstreamer-commits mailing list