summaryrefslogtreecommitdiffstats
path: root/player/playloop.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2018-05-19 18:25:54 +0200
committerwm4 <wm4@nowhere>2018-05-24 19:56:35 +0200
commit8816e1117ee65039dbb5700219ba3537d3e5290e (patch)
tree346500d09a27d91a1cd5c4e987b052e635e64978 /player/playloop.c
parentc24520b7f3651dbd4cbdffe93a187c3d213ff845 (diff)
downloadmpv-8816e1117ee65039dbb5700219ba3537d3e5290e.tar.bz2
mpv-8816e1117ee65039dbb5700219ba3537d3e5290e.tar.xz
player: change the role of the "stop_play" and "playing" variable
Before this, mpctx->playing was often used to determine whether certain new state could be added to the playback state. In particular this affected external files (which added tracks and demuxers). The variable was checked to prevent that they were added before the corresponding uninit code. We want to make a small part of uninit asynchronous, but mpctx->playing needs to stay in the place where it is. It can't be used for this purpose anymore. Use mpctx->stop_play instead. Make it never have the value 0 outside of loading/playback. On unloading, it obviously has to be non-0. Change some other code in playloop.c to use this, because it seems slightly more correct. But mostly this is preparation for the following commit.
Diffstat (limited to 'player/playloop.c')
-rw-r--r--player/playloop.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/player/playloop.c b/player/playloop.c
index f51ddb5e5c..65086b2965 100644
--- a/player/playloop.c
+++ b/player/playloop.c
@@ -127,8 +127,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 &&
- mpctx->in_playloop && !eof;
+ bool active = !mpctx->paused && mpctx->restart_complete &&
+ mpctx->stop_play && mpctx->in_playloop && !eof;
if (mpctx->playback_active != active) {
mpctx->playback_active = active;
@@ -873,7 +873,7 @@ int handle_force_window(struct MPContext *mpctx, bool force)
{
// True if we're either in idle mode, or loading of the file has finished.
// It's also set via force in some stages during file loading.
- bool act = !mpctx->playing || mpctx->playback_initialized || force;
+ bool act = mpctx->stop_play || mpctx->playback_initialized || force;
// On the other hand, if a video track is selected, but no video is ever
// decoded on it, then create the window.