[totem] Flush playbin2's bus before reusing it



commit b25fd88cd2be2b3643f8aca4a5f83733d40c636c
Author: Sebastian Dröge <sebastian droege collabora co uk>
Date:   Sat Jan 23 21:43:13 2010 +0100

    Flush playbin2's bus before reusing it
    
    This makes sure that we don't get any messages from a previous URI.
    
    Fixes bug #607224.

 src/backend/bacon-video-widget-gst-0.10.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)
---
diff --git a/src/backend/bacon-video-widget-gst-0.10.c b/src/backend/bacon-video-widget-gst-0.10.c
index 205fc1d..01a03a3 100644
--- a/src/backend/bacon-video-widget-gst-0.10.c
+++ b/src/backend/bacon-video-widget-gst-0.10.c
@@ -3552,6 +3552,7 @@ bacon_video_widget_open (BaconVideoWidget * bvw,
   GFile *file;
   gboolean ret;
   char *path;
+  GstBus *bus;
 
   g_return_val_if_fail (bvw != NULL, FALSE);
   g_return_val_if_fail (mrl != NULL, FALSE);
@@ -3631,9 +3632,18 @@ bacon_video_widget_open (BaconVideoWidget * bvw,
     bvw->priv->ready_idle_id = 0;
   }
 
+  /* Flush the bus to make sure we don't get any messages
+   * from the previous URI, see bug #607224.
+   */
+  bus = gst_element_get_bus (bvw->priv->play);
+  gst_bus_set_flushing (bus, TRUE);
+
   bvw->priv->target_state = GST_STATE_READY;
   gst_element_set_state (bvw->priv->play, GST_STATE_READY);
 
+  gst_bus_set_flushing (bus, FALSE);
+  gst_object_unref (bus);
+
   g_object_set (bvw->priv->play, "uri", bvw->priv->mrl,
                 "suburi", subtitle_uri, NULL);
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]