1
0
mirror of https://github.com/mpv-player/mpv synced 2025-02-16 04:07:08 +00:00
mpv/video/out
Dudemanguy 187fffd0f5 wayland: add support for xx-color-management-v4 for vo_dmabuf_wayland
Although this protocol isn't official yet, several compositors are known
to support it to some extent and this lets users actually view HDR with
less hacks/workarounds. The actual protocol here is simply copy and
pasted from the upstream fork* where these are developed. There is also
icc profile support in the protocol, but this is omitted for now in
favor of setting colorspaces and signalling hdr metadata. However for
mpv, this only actually has any practical use with vo_dmabuf_wayland so
this is the only VO that will make use of the protocol. When using
vulkan, this is already handled via vulkan extensions by compositors and
vo_gpu_next. So actually we don't want to use the wayland protocol in
that case since it will just get in the way. The only known limitation
on that front is driver support for hdr vulkan surfaces but as soon as
that is available it should just work with no code changes. For opengl,
hdr support there is a whole other mess with a lot of unknowns but
simply using this protocol isn't good enough and would require changes
elsewhere. vo_wlshm is currently too stupid to pick any format besides
bgr0 or 0rgb, so any color management there is meaningless at this
stage.

So this means that only vo_dmabuf_wayland can actually use this
protocol. But that's perfectly fine. Without this, vo_dmabuf_wayland has
a very bad limitation in that it cannot communicate colorspaces at all
and compositors have to guess. Using xx-color-management-v4 fixes this.
For the other VOs, merely having the common protocol setup stuff in the
common code does no harm and later if they get smarter, it's easy for
them to use the stuff since it is written generically anyway.

*: https://gitlab.freedesktop.org/swick/wayland-protocols/-/tree/color-xx/staging/color-management
2024-10-15 00:15:40 +00:00
..
d3d11 win32: remove dxgi debug checks 2024-09-24 00:21:19 +02:00
gpu d3d11_helpers: remove leftover variables 2024-10-06 18:24:33 +02:00
gpu_next vo_gpu_next: fix -Wembedded-directive warning 2024-03-19 08:58:18 +01:00
hwdec hwdec_vaapi: try format upload lazily 2024-10-12 01:36:44 +02:00
mac mac/common: fix usage of vo struct after vo uninit race 2024-10-15 00:48:43 +02:00
opengl various: remove global.h inclusion where not needed 2024-10-01 12:23:44 +02:00
placebo video/out/placebo/utils: fix -Wignored-qualifiers warning 2024-03-19 08:58:18 +01:00
protocols wayland: add support for xx-color-management-v4 for vo_dmabuf_wayland 2024-10-15 00:15:40 +00:00
vulkan vulkan/context: make use of VK_EXT_shader_object only if available 2024-10-10 18:37:22 +02:00
win32 win32: make context menu items accessible from the window menu 2024-05-03 16:36:02 +02:00
wldmabuf wayland: support multiple devices and tranches when querying formats 2024-10-02 21:27:01 +00:00
android_common.c
android_common.h
aspect.c aspect: remove unused multiplication 2023-10-23 00:10:42 +00:00
aspect.h
bitmap_packer.c
bitmap_packer.h
cocoa_cb_common.swift mac/common: fix usage of vo struct after vo uninit race 2024-10-15 00:48:43 +02:00
dither.c dither: removed some unused code 2023-10-16 15:38:59 +00:00
dither.h
dr_helper.c mp_thread: prefer tracking threads with id 2023-11-05 17:36:17 +00:00
dr_helper.h mp_thread: prefer tracking threads with id 2023-11-05 17:36:17 +00:00
drm_atomic.c various: fix indentation 2024-05-07 11:23:08 +02:00
drm_atomic.h
drm_common.c build: detect VT_GETMODE on OpenBSD 2024-07-29 15:09:49 +00:00
drm_common.h vo_drm: add support for YUYV format 2024-03-16 13:27:34 +01:00
drm_prime.c drm_prime: fix use of formats with modifiers 2024-08-11 08:22:59 -07:00
drm_prime.h
filter_kernels.c vo_gpu{,_next}: convert scale options to type choice 2024-09-14 17:06:07 +02:00
filter_kernels.h vo_gpu{,_next}: convert scale options to type choice 2024-09-14 17:06:07 +02:00
libmpv_sw.c
libmpv.h
mac_common.swift mac/common: fix usage of vo struct after vo uninit race 2024-10-15 00:48:43 +02:00
meson.build wayland: add support for xx-color-management-v4 for vo_dmabuf_wayland 2024-10-15 00:15:40 +00:00
present_sync.c present_sync: remove unneeded clear_values function 2023-11-07 00:52:46 +00:00
present_sync.h present_sync: remove unneeded clear_values function 2023-11-07 00:52:46 +00:00
vo_caca.c vo: fully replace draw_image with draw_frame 2023-10-01 14:48:38 +00:00
vo_direct3d.c vo_direct3d: support video-target-params 2024-03-27 22:08:56 +01:00
vo_dmabuf_wayland.c wayland: add support for xx-color-management-v4 for vo_dmabuf_wayland 2024-10-15 00:15:40 +00:00
vo_drm.c vo_{drm,wlshm}: make query_format checks more correct 2024-03-16 13:27:34 +01:00
vo_gpu_next.c vo_gpu_next: suppress tone_mapping_param deprecation warning 2024-10-12 01:08:36 +02:00
vo_gpu.c various: remove global.h inclusion where not needed 2024-10-01 12:23:44 +02:00
vo_image.c image_writer: fix TOCTOU in screenshot filename generation 2024-03-19 19:30:27 +01:00
vo_kitty.c terminal: add terminal_set_mouse_input function 2024-04-18 01:03:33 +02:00
vo_lavc.c csputils: replace mp_colorspace with pl_color_space 2024-01-22 14:54:55 +00:00
vo_libmpv.c mac/apphub: migrate remaining events functionality to new AppHub 2024-03-24 23:03:48 +01:00
vo_mediacodec_embed.c
vo_null.c timer: change mp_sleep_us to mp_sleep_ns 2023-10-10 19:10:55 +00:00
vo_sdl.c win_state: move window centering to vo_calc_window_geometry 2024-10-05 18:40:11 +00:00
vo_sixel.c options: remove some deprecated OPT_REPLACED option mapping 2024-06-25 02:18:58 +00:00
vo_tct.c vo_tct: clear backbuffer on reconfig 2024-06-22 00:50:38 +02:00
vo_vaapi.c vo_vaapi: remove redundant function call 2024-05-28 21:29:07 +02:00
vo_vdpau.c vo: remove VOCTRL_SET_EQUALIZER and simplify into UPDATE_VIDEO 2024-02-17 18:56:20 +00:00
vo_wlshm.c vo_{dmabuf_wayland,wlshm}: use proper values with MP_ALIGN_{UP,DOWN} 2024-10-02 02:32:49 +00:00
vo_x11.c vo_{drm,wlshm,x11}: add support for video-target-params 2024-03-16 13:27:34 +01:00
vo_xv.c various: fix indentation 2024-05-07 11:23:08 +02:00
vo.c vo: move target_params into responsibility of VO 2024-03-16 13:27:34 +01:00
vo.h win32: quantize taskbar playback position into uint8 range 2024-06-03 19:16:35 +02:00
w32_common.c win32: always fit to the screen on initial positioning 2024-10-11 13:26:31 +02:00
w32_common.h w32_common: add function to control window transparency state 2024-02-17 16:06:33 +00:00
wayland_common.c wayland: add support for xx-color-management-v4 for vo_dmabuf_wayland 2024-10-15 00:15:40 +00:00
wayland_common.h wayland: add support for xx-color-management-v4 for vo_dmabuf_wayland 2024-10-15 00:15:40 +00:00
win_state.c win_state: move window centering to vo_calc_window_geometry 2024-10-05 18:40:11 +00:00
win_state.h win_state: move window centering to vo_calc_window_geometry 2024-10-05 18:40:11 +00:00
x11_common.c video/out/x11_common: make IME work (for libmpv usage) 2024-10-14 02:05:17 +02:00
x11_common.h x11: correct position coordinates if mpv was launched with --fs 2024-05-29 13:39:20 +00:00