rhythmbox r5703 - in trunk: . backends/gstreamer



Author: jmatthew
Date: Wed May 14 08:30:00 2008
New Revision: 5703
URL: http://svn.gnome.org/viewvc/rhythmbox?rev=5703&view=rev

Log:
2008-05-14  Jonathan Matthew  <jmatthew clown>

	* backends/gstreamer/rb-player-gst-xfade.c (create_stream),
	(stream_src_blocked_cb):
	Increase the maximum buffer count of the preroll queue to 1000 (from
	200) while prerolling, as a tiny fraction of all ogg vorbis files produce
	more than 200 buffers in the first second of decoded output.  This
	allows prerolling to complete for these files.  From #484210.


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	Wed May 14 08:30:00 2008
@@ -2048,9 +2048,14 @@
 		return NULL;
 	}
 	/* decode at least a second during prerolling, to hopefully avoid underruns.
-	 * we clear this when prerolling is finished.
+	 * we clear this when prerolling is finished.  bump the max buffer count up
+	 * a bit (from 200) as with some formats it often takes more buffers to
+	 * make up a whole second.  don't really want to remove it altogether, though.
 	 */
-	g_object_set (stream->preroll, "min-threshold-time", GST_SECOND, NULL);
+	g_object_set (stream->preroll,
+		      "min-threshold-time", GST_SECOND,
+		      "max-size-buffers", 1000,
+		      NULL);
 
 	/* probably could stand to make this check a bit smarter..
 	 */
@@ -2314,7 +2319,10 @@
 	GError *error = NULL;
 	stream->src_blocked = TRUE;
 
-	g_object_set (stream->preroll, "min-threshold-time", G_GINT64_CONSTANT (0), NULL);
+	g_object_set (stream->preroll,
+		      "min-threshold-time", G_GINT64_CONSTANT (0),
+		      "max-size-buffers", 200,		/* back to normal value */
+		      NULL);
 
 	/* update stream state */
 	switch (stream->state) {



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