diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst index dd69902ededf7..68a28c1b12478 100644 --- a/DOCS/man/options.rst +++ b/DOCS/man/options.rst @@ -7377,10 +7377,19 @@ them. ``yes``, it will be converted based on the available metadata. ``auto`` (default) behaves like ``no``, except when ``--target-trc`` is - explicitly set, in which case it behaves like ``yes``. + explicitly set, in which case it behaves like ``yes``. On macOS it + should always behave like ``yes``. Generally it's recommended to enable this option, if you can ensure that - both source and target metadata is correct. + both source and target metadata is correct. Besides, on color managed + platforms, the output metadata will most likely to be correct. For example, + macOS, Windows with ACM enabled, or Wayland that compositor has color + management protocol support are all globally color managed. + + However, your render API should also support passing output metadata to MPV, + or able to let MPV pick color space description for output surface. Setting + ``--gpu-api`` to ``d3d11`` or ``vulkan`` (``opengl`` won't work) would allow + this. (Only for ``--vo=gpu-next``) diff --git a/video/out/vo_gpu_next.c b/video/out/vo_gpu_next.c index 2d95eb85b8834..b95a142ebe9e6 100644 --- a/video/out/vo_gpu_next.c +++ b/video/out/vo_gpu_next.c @@ -1272,6 +1272,10 @@ static bool draw_frame(struct vo *vo, struct vo_frame *frame) case PL_COLOR_TRC_BT_1886: case PL_COLOR_TRC_GAMMA22: case PL_COLOR_TRC_SRGB: +#ifdef __APPLE__ + if (opts->sdr_adjust_gamma == 0) + break; +#endif target.color.transfer = frame->current->params.color.transfer; } }