colorspace-hint does not signal the display to use HLG transfer function
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 37k
- Forks
- 3.5k
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 22
Description
Important Information
- mpv version: sourceforge latest as of Sep 21st 2023
- Windows Version: WIndows 11 Build 22623
- GPU: Nvidia GTX 1650 Super
- Source of the mpv binary: https://sourceforge.net/projects/mpv-player-windows/files/latest/download
- Screenshot or video: https://slow.pics/c/FApJBfXy - slightly exaggerated visualisation of ideal behavior vs actual behavior
Reproduction steps
When you run an HDR video with the following parameters, an HDR compatible display is signaled to switch to its HDR mode with PQ transfer, and the video is displayed correctly when in fullscreen. It does not trigger the Windows HDR toggle (making everything outside of mpv look off with the PQ trc, but no matter).
--vo=gpu-next
--target-colorspace-hint=yes
--gpu-api=vulkan
However, when playing an HLG video on a supported display, it would be optimal to signal the display to run with HLG trc, but it still runs in PQ. I'm using an LG C1, with support for HDR10, HLG and DV. By using --target-trc=hlg and then manually going into the display's HDMI override settings to switch to HLG TRC, I can get the intended look of the video, which is what you'll find the in comparison above.
Is this a bug? Or is HLG signaling avoided in favor of PQ for compatibility reasons?
Log file
Sample files
This is the sample used in the comparison https://files.fm/u/nu8tucfq7
But any HLG file will have the same results.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the issue with --vo=gpu-next, --target-colorspace-hint=yes, and --gpu-api=vulkan using an HLG sample, then inspect output.txt and the behavior described in the comparison. Trace how --target-trc=hlg and the display signaling are handled; done means HLG content produces the intended display transfer behavior, or the compatibility rationale is documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100