summaryrefslogtreecommitdiffstats
path: root/video/out/vo.c
diff options
context:
space:
mode:
authorNiklas Haas <git@haasn.dev>2022-02-15 12:47:53 +0100
committerNiklas Haas <github-daiK1o@haasn.dev>2022-02-21 12:01:44 +0100
commitfbe154831a8addfc18a4f81e1c4b9284c31acace (patch)
tree1aca46bd7926589269894ec0216b53f4807a4936 /video/out/vo.c
parent27c38eac1040cd781f39d977ce53adcd65ddcfb6 (diff)
downloadmpv-fbe154831a8addfc18a4f81e1c4b9284c31acace.tar.bz2
mpv-fbe154831a8addfc18a4f81e1c4b9284c31acace.tar.xz
vo_gpu_next: refactor subtitle rendering
Render subs at the output resolution, rather than the video resolution. Uses the new APIs found in libplacebo 197+, to allow controlling the OSD resolution even for image-attached overlays. Also fixes an issue where the overlay state did not get correctly updated while paused. To avoid regenerating the OSD / flushing the cache constantly, we keep track of OSD changes and only regenerate the OSD when the OSD state is expected to change in some way (e.g. resolution change). This requires introducing a new VOCTRL to inform the VO when the UPDATE_OSD-tagged options have changed. Fixes #9744, #9524, #9399 and #9398.
Diffstat (limited to 'video/out/vo.c')
-rw-r--r--video/out/vo.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/video/out/vo.c b/video/out/vo.c
index 253cb6274a..11ef596227 100644
--- a/video/out/vo.c
+++ b/video/out/vo.c
@@ -678,6 +678,7 @@ void vo_control_async(struct vo *vo, int request, void *data)
break;
case VOCTRL_KILL_SCREENSAVER:
case VOCTRL_RESTORE_SCREENSAVER:
+ case VOCTRL_OSD_CHANGED:
break;
default:
abort(); // requires explicit support