diff options
author | wm4 <wm4@nowhere> | 2018-03-03 00:07:06 +0100 |
---|---|---|
committer | Jan Ekström <jeebjp@gmail.com> | 2018-03-03 02:38:01 +0200 |
commit | f706076dd1ca48327378ea6c35e41fe905049bc5 (patch) | |
tree | 9b44944c2898690d5f8674bd5266ad48a1c615bc | |
parent | 0200a71e2f40b26cbd9bd956089857205e72c6e5 (diff) | |
download | mpv-f706076dd1ca48327378ea6c35e41fe905049bc5.tar.bz2 mpv-f706076dd1ca48327378ea6c35e41fe905049bc5.tar.xz |
player: don't free root filter while it's still needed
Sometimes, playback needs to be fully uninitialized and reinitialized
without "officially" closing and reopening the playlist entry. This
happens with PT_RELOAD_FILE, which is triggered by edition switching and
also DVD/BD title switching. (Not really sure why it goes through so
much pain for such obscure cases. All it gains is not resetting "local"
options, and not signaling a reload to the client API. Whatever.)
The recent filter change freed filter_root too early without recreating
it, so it crashed on edition switching.
Fixes #5587.
-rw-r--r-- | player/loadfile.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/player/loadfile.c b/player/loadfile.c index fa72a079ef..b8fc854cc7 100644 --- a/player/loadfile.c +++ b/player/loadfile.c @@ -1420,7 +1420,6 @@ terminate_playback: uninit_demuxer(mpctx); if (!opts->gapless_audio && !mpctx->encode_lavc_ctx) uninit_audio_out(mpctx); - TA_FREEP(&mpctx->filter_root); mpctx->playback_initialized = false; @@ -1432,6 +1431,7 @@ terminate_playback: m_config_restore_backups(mpctx->mconfig); + TA_FREEP(&mpctx->filter_root); talloc_free(mpctx->filtered_tags); mpctx->filtered_tags = NULL; |