[rhythmbox] xfade: improve handling of buffering during preroll



commit 3f3d79005bb9bfc3f777a068bac4947c94ba5f35
Author: Jonathan Matthew <jonathan d14n org>
Date:   Wed May 12 22:27:40 2021 +1000

    xfade: improve handling of buffering during preroll
    
    For streams that require buffering, don't start playback when
    buffering is complete if the stream isn't blocked yet.

 backends/gstreamer/rb-player-gst-xfade.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)
---
diff --git a/backends/gstreamer/rb-player-gst-xfade.c b/backends/gstreamer/rb-player-gst-xfade.c
index 61d1e3262..9d6bf0801 100644
--- a/backends/gstreamer/rb-player-gst-xfade.c
+++ b/backends/gstreamer/rb-player-gst-xfade.c
@@ -1927,10 +1927,13 @@ rb_player_gst_xfade_bus_cb (GstBus *bus, GstMessage *message, RBPlayerGstXFade *
                                        rb_debug ("stream %s buffered, but no decoded pad yet", stream->uri);
                                        break;
                                }
-
-                               rb_debug ("stream %s is buffered, now playing", stream->uri);
-                               if (actually_start_stream (stream, &error) == FALSE) {
-                                       emit_stream_error (stream, error);
+                               if (stream->src_blocked == TRUE) {
+                                       rb_debug ("stream %s is buffered, now playing", stream->uri);
+                                       if (actually_start_stream (stream, &error) == FALSE) {
+                                               emit_stream_error (stream, error);
+                                       }
+                               } else {
+                                       rb_debug ("stream %s is buffered, waiting for block callback to 
play", stream->uri);
                                }
                                break;
 


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