basesink: unset PLAYING transition flag when transition completed
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Wed, 13 Jul 2011 09:39:15 +0000 (11:39 +0200)
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Wed, 13 Jul 2011 09:40:26 +0000 (11:40 +0200)
libs/gst/base/gstbasesink.c

index b9f2f7c..4d4deae 100644 (file)
@@ -5044,6 +5044,12 @@ gst_base_sink_change_state (GstElement * element, GstStateChange transition)
   }
 
   switch (transition) {
+    case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
+      /* completed transition, so need not be marked any longer
+       * And it should be unmarked, since e.g. losing our position upon flush
+       * does not really change state to PAUSED ... */
+      g_atomic_int_set (&basesink->priv->to_playing, FALSE);
+      break;
     case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
       g_atomic_int_set (&basesink->priv->to_playing, FALSE);
       GST_DEBUG_OBJECT (basesink, "PLAYING to PAUSED");