tools: play: set playbin to NULL state on error to flush messages
authorTim-Philipp Müller <tim@centricular.net>
Sat, 7 Sep 2013 18:14:50 +0000 (19:14 +0100)
committerTim-Philipp Müller <tim@centricular.net>
Sat, 7 Sep 2013 18:14:50 +0000 (19:14 +0100)
Just flushing the bus doesn't work here for some reason, so set
playbin to NULL state, which seems to clear all error state and
makes sure we do play the next playable song and don't pick up
'ghost' error messages from previous files on the bus.

tools/gst-play.c

index 5958e1e..5fb03f8 100644 (file)
@@ -240,6 +240,9 @@ play_bus_msg (GstBus * bus, GstMessage * msg, gpointer user_data)
       g_error_free (err);
       g_free (dbg);
 
+      /* flush any other error messages from the bus and clean up */
+      gst_element_set_state (play->playbin, GST_STATE_NULL);
+
       if (play->missing != NULL && play_install_missing_plugins (play)) {
         g_print ("New plugins installed, trying again...\n");
         --play->cur_idx;