1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-21 06:14:32 +00:00

player: don't temporarily disable terminal handling when reloading files

There's no reason why we should do this. For some reason, the existing
code reset terminal handling to default after unloading a file, just to
initialize it again when loading a new file.

Might be related to github issue , although I don't think it helps,
since the default SIGTERM handler _should_ kill the mpv process.
(It's still a nice simplification, though.)
This commit is contained in:
wm4 2013-12-15 18:04:13 +01:00
parent 6dcebd9130
commit ff85afa537
3 changed files with 11 additions and 20 deletions

View File

@ -154,14 +154,6 @@ void uninit_player(struct MPContext *mpctx, unsigned int mask)
mpctx->video_out = NULL;
}
// Must be after libvo uninit, as few vo drivers (svgalib) have tty code.
if (mask & INITIALIZED_GETCH2) {
mpctx->initialized_flags &= ~INITIALIZED_GETCH2;
MP_DBG(mpctx, "\n[[[uninit getch2]]]\n");
// restore terminal:
getch2_disable();
}
if (mask & INITIALIZED_AO) {
struct ao *ao = mpctx->ao;
mpctx->initialized_flags &= ~INITIALIZED_AO;
@ -1024,16 +1016,8 @@ static void play_current_file(struct MPContext *mpctx)
load_per_file_options(mpctx->mconfig, mpctx->playlist->current->params,
mpctx->playlist->current->num_params);
// We must enable getch2 here to be able to interrupt network connection
// or cache filling
if (opts->consolecontrols && !opts->slave_mode) {
if (mpctx->initialized_flags & INITIALIZED_GETCH2)
MP_WARN(mpctx, "WARNING: getch2_init called twice!\n");
else
getch2_enable(); // prepare stdin for hotkeys...
mpctx->initialized_flags |= INITIALIZED_GETCH2;
MP_DBG(mpctx, "\n[[[init getch2]]]\n");
}
if (!opts->consolecontrols)
getch2_disable();
#if HAVE_LIBASS
if (opts->ass_style_override)
@ -1270,7 +1254,7 @@ goto_reopen_demuxer: ;
if (mpctx->stop_play == PT_RELOAD_DEMUXER) {
mpctx->stop_play = KEEP_PLAYING;
uninit_player(mpctx, INITIALIZED_ALL -
(INITIALIZED_PLAYBACK | INITIALIZED_STREAM | INITIALIZED_GETCH2 |
(INITIALIZED_PLAYBACK | INITIALIZED_STREAM |
(opts->fixed_vo ? INITIALIZED_VO : 0)));
goto goto_reopen_demuxer;
}
@ -1306,6 +1290,9 @@ terminate_playback: // don't jump here after ao/vo/getch initialization!
if (mpctx->stop_play != PT_RESTART)
m_config_restore_backups(mpctx->mconfig);
if (opts->consolecontrols)
getch2_enable();
mpctx->filename = NULL;
talloc_free(mpctx->resolve_result);
mpctx->resolve_result = NULL;

View File

@ -140,6 +140,8 @@ static MP_NORETURN void exit_player(struct MPContext *mpctx,
mpctx->ass_library = NULL;
#endif
getch2_disable();
if (how != EXIT_NONE) {
const char *reason;
switch (how) {
@ -390,6 +392,9 @@ static int mpv_main(int argc, char *argv[])
}
#endif
if (opts->consolecontrols)
getch2_enable();
#if HAVE_LIBASS
mpctx->ass_library = mp_ass_init(opts);
#else

View File

@ -28,7 +28,6 @@
#define INITIALIZED_VO 1
#define INITIALIZED_AO 2
#define INITIALIZED_GETCH2 8
#define INITIALIZED_PLAYBACK 16
#define INITIALIZED_LIBASS 32
#define INITIALIZED_STREAM 64