sys/xvimage/xvimagesink.c: Make state change function thread safe.
authorTim-Philipp Müller <tim@centricular.net>
Tue, 15 Nov 2005 19:01:43 +0000 (19:01 +0000)
committerTim-Philipp Müller <tim@centricular.net>
Tue, 15 Nov 2005 19:01:43 +0000 (19:01 +0000)
Original commit message from CVS:
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_change_state):
Make state change function thread safe.

ChangeLog
sys/xvimage/xvimagesink.c

index c2acb172d7cd2e865fefa39c8b02d05a6d4e9fa1..e4da7bfdb7922cdc9ce3870f7eb6290f7fcb890b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-11-15  Tim-Philipp Müller  <tim at centricular dot net>
+
+       * sys/xvimage/xvimagesink.c: (gst_xvimagesink_change_state):
+         Make state change function thread safe.
+
 2005-11-15  Edward Hervey  <edward@fluendo.com>
 
        * ext/ogg/gstoggdemux.c: (gst_ogg_demux_receive_event),
index f7274e67a8e6f8d6d98bdba24fe1fbfa1ff94d20..8d8ab89d9d2ea23113eb1a5fefc2b84a6a5fc981 100644 (file)
@@ -1444,6 +1444,7 @@ gst_xvimagesink_setcaps (GstBaseSink * bsink, GstCaps * caps)
 static GstStateChangeReturn
 gst_xvimagesink_change_state (GstElement * element, GstStateChange transition)
 {
+  GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS;
   GstXvImageSink *xvimagesink;
 
   xvimagesink = GST_XVIMAGESINK (element);
@@ -1472,6 +1473,15 @@ gst_xvimagesink_change_state (GstElement * element, GstStateChange transition)
       break;
     case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
       break;
+    default:
+      break;
+  }
+
+  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+  if (ret == GST_STATE_CHANGE_FAILURE)
+    return ret;
+
+  switch (transition) {
     case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
       break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:
@@ -1498,9 +1508,11 @@ gst_xvimagesink_change_state (GstElement * element, GstStateChange transition)
         xvimagesink->xcontext = NULL;
       }
       break;
+    default:
+      break;
   }
 
-  return GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+  return ret;
 }
 
 static void