mirror of https://github.com/mpv-player/mpv
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:
parent
fe02e5023c
commit
9490b628c5
|
@ -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];
|
||||||
|
|
Loading…
Reference in New Issue