rhythmbox r6096 - in trunk: . backends/gstreamer



Author: jmatthew
Date: Tue Dec  9 13:14:56 2008
New Revision: 6096
URL: http://svn.gnome.org/viewvc/rhythmbox?rev=6096&view=rev

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

	* backends/gstreamer/rb-player-gst-xfade.c: (volume_changed_cb),
	(link_unblocked_cb):  Don't hold the stream lock for so long in
	streaming thread callbacks.  This (and contended waiting threads) was
	causing some interruptions in the output when changing tracks.


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 Dec  9 13:14:56 2008
@@ -964,6 +964,8 @@
 		/*rb_debug ("unexpectedly got a volume change for stream %s to %f (not fading)", stream->uri, (float)vol);*/
 		break;
 	}
+	
+	g_mutex_unlock (stream->lock);
 
 	if (message != NULL) {
 		GstMessage *msg;
@@ -975,8 +977,6 @@
 		gst_element_post_message (GST_ELEMENT (object), msg);
 	}
 
-	g_mutex_unlock (stream->lock);
-
 	g_object_unref (stream);
 }
 
@@ -1087,6 +1087,8 @@
 		stream->state = FADING_IN;
 	else
 		stream->state = PLAYING;
+	
+	g_mutex_unlock (stream->lock);
 
 	adjust_stream_base_time (stream);
 
@@ -1096,7 +1098,6 @@
 		  gst_element_state_change_return_get_name (state_ret));
 
 	post_stream_playing_message (stream, FALSE);
-	g_mutex_unlock (stream->lock);
 	g_object_unref (stream);
 }
 



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