rhythmbox r5877 - in trunk: . backends/gstreamer



Author: jmatthew
Date: Tue Sep  2 22:22:10 2008
New Revision: 5877
URL: http://svn.gnome.org/viewvc/rhythmbox?rev=5877&view=rev

Log:
2008-09-03  Jonathan Matthew  <jonathan d14n org>

	* backends/gstreamer/rb-player-gst-xfade.c: (perform_seek_idle),
	(unlink_blocked_cb):
	Don't seek from pad block callbacks, it tends to cause crashes when
	playing mp3 streams using mad.


Modified:
   trunk/ChangeLog
   trunk/backends/gstreamer/rb-player-gst-xfade.c

Modified: trunk/backends/gstreamer/rb-player-gst-xfade.c
==============================================================================
--- trunk/backends/gstreamer/rb-player-gst-xfade.c	(original)
+++ trunk/backends/gstreamer/rb-player-gst-xfade.c	Tue Sep  2 22:22:10 2008
@@ -1219,6 +1219,14 @@
 	}
 }
 
+static gboolean
+perform_seek_idle (RBXFadeStream *stream)
+{
+	perform_seek (stream);
+	g_object_unref (stream);
+	return FALSE;
+}
+
 /*
  * called when a stream doing a post-EOS seek is blocked.  this indicates
  * that the seek has completed (that's the only way data can flow out of
@@ -1270,7 +1278,7 @@
 	/* handle unlinks for seeking and stream reuse */
 	switch (stream->state) {
 	case SEEKING:
-		perform_seek (stream);
+		g_idle_add ((GSourceFunc) perform_seek_idle, g_object_ref (stream));
 		break;
 
 	case REUSING:
@@ -1278,7 +1286,7 @@
 		break;
 
 	case SEEKING_PAUSED:
-		perform_seek (stream);
+		g_idle_add ((GSourceFunc) perform_seek_idle, g_object_ref (stream));
 		/* fall through.  this only happens when pausing, so it's OK
 		 * to stop the sink here.
 		 */



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