]> git.sesse.net Git - vlc/commitdiff
stream_filter/httplive.c: quiet down playback stalling warning.
authorJean-Paul Saman <jean-paul.saman@m2x.nl>
Tue, 4 Jan 2011 10:47:23 +0000 (11:47 +0100)
committerJean-Paul Saman <jean-paul.saman@m2x.nl>
Tue, 4 Jan 2011 15:33:56 +0000 (16:33 +0100)
The playback stalling warning was printed too often. Only print this message when
playback is in real danger and check only on segment boundaries.

modules/stream_filter/httplive.c

index e3cc443ef7f45dcb1b91574d145cc53c1de483a5..a50817cc25037f1733f0fb9f6b6525989c7df655 100644 (file)
@@ -1719,10 +1719,19 @@ static segment_t *GetSegment(stream_t *s)
 
 check:
     /* sanity check */
-    if (p_sys->download.segment - p_sys->playback.segment == 0)
-        msg_Err(s, "playback will stall");
-    else if (p_sys->download.segment - p_sys->playback.segment < 3)
-        msg_Warn(s, "playback in danger of stalling");
+    if (segment->data->i_buffer == 0)
+    {
+        vlc_mutex_lock(&hls->lock);
+        int count = vlc_array_count(hls->segments);
+        vlc_mutex_unlock(&hls->lock);
+
+        if ((p_sys->download.segment - p_sys->playback.segment == 0) &&
+            ((count != p_sys->download.segment) || p_sys->b_live))
+            msg_Err(s, "playback will stall");
+        else if ((p_sys->download.segment - p_sys->playback.segment < 3) &&
+                 ((count != p_sys->download.segment) || p_sys->b_live))
+            msg_Warn(s, "playback in danger of stalling");
+    }
     return segment;
 }