mpv-android / mpv-android

#mpv-android @ libera.chat
MIT License
1.81k stars 226 forks source link

Native HDR support #874

Open realFPS opened 2 months ago

realFPS commented 2 months ago

What I am requesting is playing HDR video properly on a HDR screen not HDR tone mapped as SDR.

Andarwinux commented 4 weeks ago

Just buy a Pixel 8 Pro and use androidvk branch.

ref: https://vulkan.gpuinfo.org/displayreport.php?id=29754#surfaceformats

A2B10G10R10_UNORM_PACK32    HDR10_ST2084_EXT
A2B10G10R10_UNORM_PACK32    HDR10_HLG_EXT
sfan5 commented 4 days ago

This is a good question because I barely have any idea about this.

In Android 8 support was added for "wide gamut", in practice that means DCI-P3 and it works on OpenGL/Vulkan too. But this is probably not what most people mean when they say "HDR".

According to Google's documentation for HDR playback, HDR video only works through a SurfaceView. This would suggest that it already works today if you use vo=mediacodec_embed.

What @Andarwinux mentioned is Vulkan support for HDR colorspaces. This sounds like it could be useful for mpv though I don't know if it's already supported or other platform specific support code is needed (HDR metadata???). @haasn would know, if he has time to reply here.

haasn commented 4 days ago

libplacebo already natively supports vulkan HDR when available (that's how we do HDR on windows, as well)