From 623cffdce93458cc2247c47606dd9af6b88b7606 Mon Sep 17 00:00:00 2001 From: wm4 Date: Tue, 11 Feb 2014 20:09:44 +0100 Subject: player: fix --force-window on OSX The initialization code was split and refactored for the libmpv changes. One change, moving a part of cocoa initialization, accidentally broke --force-window on OSX, which creates a VO in a certain initialization stage. We still don't know how cocoa should behave with libmpv, so fix this with a hack to beat it back into working. Untested. --- player/core.h | 1 + player/main.c | 12 ++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) (limited to 'player') diff --git a/player/core.h b/player/core.h index b772f862f7..12f248dcc2 100644 --- a/player/core.h +++ b/player/core.h @@ -141,6 +141,7 @@ enum { typedef struct MPContext { bool initialized; + bool is_cplayer; struct mpv_global *global; struct MPOpts *opts; struct mp_log *log; diff --git a/player/main.c b/player/main.c index 99ba0becd2..af9ffe8c65 100644 --- a/player/main.c +++ b/player/main.c @@ -412,6 +412,12 @@ int mp_initialize(struct MPContext *mpctx) // From this point on, all mpctx members are initialized. mpctx->initialized = true; + +#if HAVE_COCOA + if (mpctx->is_cplayer) + cocoa_set_input_context(mpctx->input); +#endif + if (opts->force_vo) { opts->fixed_vo = 1; mpctx->video_out = init_best_video_out(mpctx->global, mpctx->input, @@ -456,6 +462,8 @@ int mpv_main(int argc, char *argv[]) struct MPContext *mpctx = mp_create(); struct MPOpts *opts = mpctx->opts; + mpctx->is_cplayer = true; + char *verbose_env = getenv("MPV_VERBOSE"); if (verbose_env) opts->verbose = atoi(verbose_env); @@ -509,10 +517,6 @@ int mpv_main(int argc, char *argv[]) if (mp_initialize(mpctx) < 0) exit_player(mpctx, EXIT_ERROR); -#if HAVE_COCOA - cocoa_set_input_context(mpctx->input); -#endif - mp_play_files(mpctx); exit_player(mpctx, mpctx->stop_play == PT_QUIT ? EXIT_QUIT : mpctx->quit_player_rc); -- cgit v1.2.3