diff options
author | wm4 <wm4@nowhere> | 2020-04-10 01:33:38 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2020-04-10 01:33:38 +0200 |
commit | 0c9ac5835be70ae26e4aa875e833fe2c7b3b3bf3 (patch) | |
tree | 1b1e0cb5445240bafd2985b77af8013a05c844c2 /video/out/vo.h | |
parent | a1771ed0d451a0af75529429fee2c370671950e4 (diff) | |
download | mpv-0c9ac5835be70ae26e4aa875e833fe2c7b3b3bf3.tar.bz2 mpv-0c9ac5835be70ae26e4aa875e833fe2c7b3b3bf3.tar.xz |
video: remove another redundant wakeup
The wakeup at the end of VO frame rendering seems redundant, because
after rendering almost no state changes. The player core can queue a new
frame once frame rendering begins, and there's a separate wakeup for
this. The only thing that actually changes is in->rendering. The only
thing that seems to depend on it and can trigger a wakeup is the
vo_still_displaying() function. Change it so that it needs an explicit
call to a new API function, so we can avoid wakeups in the common case.
The vo_still_displaying() code is mostly just moved around due to
locking and for avoiding forward declarations.
Also a somewhat risky change (tasty new bugs).
Diffstat (limited to 'video/out/vo.h')
-rw-r--r-- | video/out/vo.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/video/out/vo.h b/video/out/vo.h index c983667725..1b7a239798 100644 --- a/video/out/vo.h +++ b/video/out/vo.h @@ -485,6 +485,7 @@ bool vo_is_ready_for_frame(struct vo *vo, int64_t next_pts); void vo_queue_frame(struct vo *vo, struct vo_frame *frame); void vo_wait_frame(struct vo *vo); bool vo_still_displaying(struct vo *vo); +void vo_request_wakeup_on_done(struct vo *vo); bool vo_has_frame(struct vo *vo); void vo_redraw(struct vo *vo); bool vo_want_redraw(struct vo *vo); |