From 78fa766fcc61e7402ec3b2d0de842ebeb84b5639 Mon Sep 17 00:00:00 2001 From: wm4 Date: Mon, 25 Nov 2013 23:24:50 +0100 Subject: player: only pause for waiting on cache if it makes sense If the value for --cache-on-pause is larger than --cache-min, and the cache runs below --cache-on-pause, but above --cache-min, the logic would demand to pause the player and then unpause immediately again. This doesn't make much sense, and alternating the pause state in each playloop iteration has negative consequences. Add an explicit check to avoid this situation. --- mpvcore/player/playloop.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mpvcore/player/playloop.c b/mpvcore/player/playloop.c index 701443c8cb..56b2bc0bc5 100644 --- a/mpvcore/player/playloop.c +++ b/mpvcore/player/playloop.c @@ -677,7 +677,9 @@ static void handle_pause_on_low_cache(struct MPContext *mpctx) unpause_player(mpctx); } } else { - if (cache >= 0 && cache <= opts->stream_cache_pause && !idle) { + if (cache >= 0 && cache <= opts->stream_cache_pause && !idle && + opts->stream_cache_pause < opts->stream_cache_min_percent) + { bool prev_paused_user = opts->pause; pause_player(mpctx); mpctx->paused_for_cache = true; -- cgit v1.2.3