diff options
Diffstat (limited to 'player/playloop.c')
-rw-r--r-- | player/playloop.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/player/playloop.c b/player/playloop.c index d6451083ac..31bf58e722 100644 --- a/player/playloop.c +++ b/player/playloop.c @@ -973,18 +973,19 @@ void idle_loop(struct MPContext *mpctx) { if (need_reinit) { mp_notify(mpctx, MPV_EVENT_IDLE, NULL); + int uninit = INITIALIZED_AO; + if (!mpctx->opts->force_vo) + uninit |= INITIALIZED_VO; + uninit_player(mpctx, uninit); handle_force_window(mpctx, true); + mpctx->sleeptime = 0; + need_reinit = false; } - need_reinit = false; handle_dummy_ticks(mpctx); - int uninit = INITIALIZED_AO; - if (!mpctx->opts->force_vo) - uninit |= INITIALIZED_VO; - uninit_player(mpctx, uninit); - update_osd_msg(mpctx); - handle_osd_redraw(mpctx); - mp_process_input(mpctx); mp_wait_events(mpctx, mpctx->sleeptime); mpctx->sleeptime = 100.0; + mp_process_input(mpctx); + update_osd_msg(mpctx); + handle_osd_redraw(mpctx); } } |