summaryrefslogtreecommitdiffstats
path: root/player/playloop.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2017-04-14 19:06:13 +0200
committerwm4 <wm4@nowhere>2017-04-14 19:06:31 +0200
commit3e8510d515e9446f7c1f2b4372e501a713bb2502 (patch)
tree1694d3d4bf27623b42394c47599f78f9428c8d81 /player/playloop.c
parentb586bc2dbec6495e65ef1a34045f6d66a7112d9d (diff)
downloadmpv-3e8510d515e9446f7c1f2b4372e501a713bb2502.tar.bz2
mpv-3e8510d515e9446f7c1f2b4372e501a713bb2502.tar.xz
player: fix a corner case in previous commit
The previous commit set "mpctx->playback_active = false;" before unload hooks were processed. This was intentional, but could in theory cause playback_active to be set to true again, and actually it's plain wrong if playback was exited in the middle it. There needs to be something else that forces playback_active to be set to false while in this unloading state.
Diffstat (limited to 'player/playloop.c')
-rw-r--r--player/playloop.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/player/playloop.c b/player/playloop.c
index 2c3143ab61..2e18025cc4 100644
--- a/player/playloop.c
+++ b/player/playloop.c
@@ -124,8 +124,8 @@ void update_core_idle_state(struct MPContext *mpctx)
{
bool eof = mpctx->video_status == STATUS_EOF &&
mpctx->audio_status == STATUS_EOF;
- bool active =
- !mpctx->paused && mpctx->restart_complete && mpctx->playing && !eof;
+ bool active = !mpctx->paused && mpctx->restart_complete && mpctx->playing &&
+ mpctx->in_playloop && !eof;
if (mpctx->playback_active != active) {
mpctx->playback_active = active;