rhythmbox r5703 - in trunk: . backends/gstreamer
- From: jmatthew svn gnome org
- To: svn-commits-list gnome org
- Subject: rhythmbox r5703 - in trunk: . backends/gstreamer
- Date: Wed, 14 May 2008 09:30:01 +0100 (BST)
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]