diff options
-rw-r--r-- | DOCS/interface-changes.rst | 2 | ||||
-rw-r--r-- | player/command.c | 4 | ||||
-rw-r--r-- | player/core.h | 1 | ||||
-rw-r--r-- | player/loadfile.c | 10 |
4 files changed, 4 insertions, 13 deletions
diff --git a/DOCS/interface-changes.rst b/DOCS/interface-changes.rst index fa42b1dc81..7ef91c431e 100644 --- a/DOCS/interface-changes.rst +++ b/DOCS/interface-changes.rst @@ -103,6 +103,8 @@ Interface changes of 3D content doesn't justify such an option anyway. - change cycle-values command to use the current value, instead of an internal counter that remembered the current position. + - edition and disc title switching will now fully reload playback (may have + consequences for scripts, client API, or when using file-local options) --- mpv 0.28.0 --- - rename --hwdec=mediacodec option to mediacodec-copy, to reflect conventions followed by other hardware video decoding APIs diff --git a/player/command.c b/player/command.c index 60fb7447e1..87cd274d57 100644 --- a/player/command.c +++ b/player/command.c @@ -926,7 +926,7 @@ static int mp_property_disc_title(void *ctx, struct m_property *prop, if (demux_stream_control(d, STREAM_CTRL_SET_CURRENT_TITLE, &title) < 0) return M_PROPERTY_NOT_IMPLEMENTED; if (!mpctx->stop_play) - mpctx->stop_play = PT_RELOAD_FILE; + mpctx->stop_play = PT_CURRENT_ENTRY; return M_PROPERTY_OK; } return M_PROPERTY_NOT_IMPLEMENTED; @@ -1143,7 +1143,7 @@ static int mp_property_edition(void *ctx, struct m_property *prop, if (edition != demuxer->edition) { mpctx->opts->edition_id = edition; if (!mpctx->stop_play) - mpctx->stop_play = PT_RELOAD_FILE; + mpctx->stop_play = PT_CURRENT_ENTRY; mp_wakeup_core(mpctx); break; // make it accessible to the demuxer via option change notify } diff --git a/player/core.h b/player/core.h index 71c39dcaa5..5ccf35fd1a 100644 --- a/player/core.h +++ b/player/core.h @@ -43,7 +43,6 @@ enum stop_play_reason { PT_NEXT_ENTRY, // prepare to play next entry in playlist PT_CURRENT_ENTRY, // prepare to play mpctx->playlist->current PT_STOP, // stop playback, clear playlist - PT_RELOAD_FILE, // restart playback PT_QUIT, // stop playback, quit player PT_ERROR, // play next playlist entry (due to an error) }; diff --git a/player/loadfile.c b/player/loadfile.c index 65d693e264..56aca7d30c 100644 --- a/player/loadfile.c +++ b/player/loadfile.c @@ -1203,10 +1203,6 @@ static void play_current_file(struct MPContext *mpctx) MP_INFO(mpctx, "Playing: %s\n", mpctx->filename); -reopen_file: - - reset_playback_state(mpctx); - assert(mpctx->demuxer == NULL); process_hooks(mpctx, "on_load"); @@ -1398,12 +1394,6 @@ terminate_playback: mpctx->playback_initialized = false; - if (mpctx->stop_play == PT_RELOAD_FILE) { - mpctx->stop_play = KEEP_PLAYING; - mp_cancel_reset(mpctx->playback_abort); - goto reopen_file; - } - m_config_restore_backups(mpctx->mconfig); TA_FREEP(&mpctx->filter_root); |