cocoa: don't init displaylink on reconfig

everytime we switched to a new video file a new displaylink was
initialised and started, but the old one was not stopped and released
beforehand. this lead to several displaylink callback calls per swap,
depending on how many files were switched beforehand. moving the
displaylink init call to the cocoa init functions will ever only init
one displaylink.

Fixes #4031
This commit is contained in:
Akemi 2017-01-18 17:22:32 +01:00
parent fe02e5023c
commit 9490b628c5
1 changed files with 1 additions and 1 deletions

View File

@ -350,6 +350,7 @@ void vo_cocoa_init(struct vo *vo)
pthread_cond_init(&s->sync_wakeup, NULL); pthread_cond_init(&s->sync_wakeup, NULL);
vo->cocoa = s; vo->cocoa = s;
vo_cocoa_update_screen_info(vo); vo_cocoa_update_screen_info(vo);
vo_cocoa_init_displaylink(vo);
cocoa_init_light_sensor(vo); cocoa_init_light_sensor(vo);
cocoa_add_screen_reconfiguration_observer(vo); cocoa_add_screen_reconfiguration_observer(vo);
if (!s->embedded) { if (!s->embedded) {
@ -637,7 +638,6 @@ int vo_cocoa_config_window(struct vo *vo)
struct mp_vo_opts *opts = vo->opts; struct mp_vo_opts *opts = vo->opts;
run_on_main_thread(vo, ^{ run_on_main_thread(vo, ^{
vo_cocoa_init_displaylink(vo);
vo_cocoa_update_screen_fps(vo); vo_cocoa_update_screen_fps(vo);
NSRect r = [s->current_screen frame]; NSRect r = [s->current_screen frame];