summaryrefslogtreecommitdiffstats
path: root/video/out/vo.h
diff options
context:
space:
mode:
authorRostislav Pehlivanov <atomnuker@gmail.com>2017-12-05 08:26:24 +0000
committerRostislav Pehlivanov <atomnuker@gmail.com>2017-12-05 08:26:24 +0000
commita743fef837bcab206b1e576db7e7a64b02890449 (patch)
tree875105fee109e9e6604af5d117c84e8e883c9375 /video/out/vo.h
parent713668b99a201a3ca33780d64bd4072ed966f406 (diff)
downloadmpv-a743fef837bcab206b1e576db7e7a64b02890449.tar.bz2
mpv-a743fef837bcab206b1e576db7e7a64b02890449.tar.xz
vo: add support for externally driven renderloop and make wayland use it
Fixes display-sync (though if you change virtual desktops you'll need to seek to re-enable display-sync) partially under wayland. As an advantage, rendering is completely disabled if you change desktops or alt+tab so you lose no performance if you leave mpv running elsewhere as long as it isn't visible. This could also be ported to other VOs which supports it.
Diffstat (limited to 'video/out/vo.h')
-rw-r--r--video/out/vo.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/video/out/vo.h b/video/out/vo.h
index fc6cf394e4..995d6b97f5 100644
--- a/video/out/vo.h
+++ b/video/out/vo.h
@@ -433,6 +433,9 @@ void vo_query_formats(struct vo *vo, uint8_t *list);
void vo_event(struct vo *vo, int event);
int vo_query_and_reset_events(struct vo *vo, int events);
struct mp_image *vo_get_current_frame(struct vo *vo);
+void vo_enable_external_renderloop(struct vo *vo);
+void vo_disable_external_renderloop(struct vo *vo);
+bool vo_render_frame_external(struct vo *vo);
void vo_set_queue_params(struct vo *vo, int64_t offset_us, int num_req_frames);
int vo_get_num_req_frames(struct vo *vo);
int64_t vo_get_vsync_interval(struct vo *vo);