rhythmbox r6165 - in trunk: . backends/gstreamer



Author: jmatthew
Date: Thu Feb 26 05:12:49 2009
New Revision: 6165
URL: http://svn.gnome.org/viewvc/rhythmbox?rev=6165&view=rev

Log:
2009-02-26  Jonathan Matthew  <jonathan d14n org>

	* backends/gstreamer/rb-player-gst-xfade.c:
	(adjust_stream_base_time):
	Take the stream lock while adjusting the base time.  This can happen
	simultaneously from two threads when a new segment event arrives
	immediately after linking the stream.


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	Thu Feb 26 05:12:49 2009
@@ -866,8 +866,11 @@
 	gint64 output_pos = -1;
 	gint64 stream_pos = -1;
 
+	g_mutex_lock (stream->lock);
+
 	if (stream->adder_pad == NULL) {
 		rb_debug ("stream isn't linked, can't adjust base time");
+		g_mutex_unlock (stream->lock);
 		return;
 	}
 
@@ -904,6 +907,8 @@
 							  stream);
 		}
 	}
+		
+	g_mutex_unlock (stream->lock);
 }
 
 /* called on a streaming thread when the volume level for a stream changes. */



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