rhythmbox r5737 - in trunk: . backends/gstreamer
- From: jmatthew svn gnome org
- To: svn-commits-list gnome org
- Subject: rhythmbox r5737 - in trunk: . backends/gstreamer
- Date: Tue, 10 Jun 2008 13:33:08 +0000 (UTC)
Author: jmatthew
Date: Tue Jun 10 13:33:08 2008
New Revision: 5737
URL: http://svn.gnome.org/viewvc/rhythmbox?rev=5737&view=rev
Log:
2008-06-10 Jonathan Matthew <jonathan d14n org>
* backends/gstreamer/rb-player-gst-xfade.c: (start_sink):
While waiting for the sink to start, pass messages that aren't related
to the sink back to the regular bus callback. Fixes buffering status
not being reported for streaming, and possibly other stuff.
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 Jun 10 13:33:08 2008
@@ -2556,6 +2556,8 @@
GstStateChangeReturn sr;
gboolean waiting;
GError *generic_error = NULL;
+ GstBus *bus;
+
g_set_error (&generic_error,
RB_PLAYER_ERROR,
RB_PLAYER_ERROR_INTERNAL, /* ? */
@@ -2596,14 +2598,14 @@
/* now wait for everything to finish */
waiting = TRUE;
+ bus = gst_element_get_bus (GST_ELEMENT (player->priv->pipeline));
while (waiting) {
GstMessage *message;
GstState oldstate;
GstState newstate;
GstState pending;
- message = gst_bus_timed_pop (gst_element_get_bus (GST_ELEMENT (player->priv->pipeline)),
- GST_SECOND * 5);
+ message = gst_bus_timed_pop (bus, GST_SECOND * 5);
if (message == NULL) {
rb_debug ("sink is taking too long to start..");
g_propagate_error (error, generic_error);
@@ -2655,6 +2657,8 @@
break;
default:
+ rb_debug ("passing message to bus callback");
+ rb_player_gst_xfade_bus_cb (bus, message, player);
break;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]