summaryrefslogtreecommitdiffstats
path: root/player/playloop.c
diff options
context:
space:
mode:
Diffstat (limited to 'player/playloop.c')
-rw-r--r--player/playloop.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/player/playloop.c b/player/playloop.c
index 90d46cc178..b1d3efeecf 100644
--- a/player/playloop.c
+++ b/player/playloop.c
@@ -541,6 +541,18 @@ static void handle_pause_on_low_cache(struct MPContext *mpctx)
opts->pause = prev_paused_user;
}
}
+ // Also update cache properties.
+ if (cache_kb > 0 || mpctx->next_cache_update > 0) {
+ double now = mp_time_sec();
+ if (mpctx->next_cache_update <= now) {
+ mpctx->next_cache_update = cache_kb > 0 ? now + 0.25 : 0;
+ mp_notify(mpctx, MP_EVENT_CACHE_UPDATE, NULL);
+ }
+ if (mpctx->next_cache_update > 0) {
+ mpctx->sleeptime =
+ MPMIN(mpctx->sleeptime, mpctx->next_cache_update - now);
+ }
+ }
}
static void handle_heartbeat_cmd(struct MPContext *mpctx)