From 45c3e0f0d0c836158ab38db53156bb6461ad7437 Mon Sep 17 00:00:00 2001 From: Niklas Haas Date: Mon, 30 May 2016 19:56:58 +0200 Subject: vo_opengl: refactor HDR mechanism Instead of doing HDR tone mapping on an ad-hoc basis inside pass_colormanage, the reference peak of an image is now part of the image params (alongside colorspace, gamma, etc.) and tone mapping is done whenever peak_src != peak_dst. To get sensible behavior when mixing HDR and SDR content and displays, target-brightness is a generic filler for "the assumed brightness of SDR content". This gets rid of the weird display_scaled hack, sets the framework for multiple HDR functions with difference reference peaks, and allows us to (in a future commit) autodetect the right source peak from the HDR metadata. (Apart from metadata, the source peak can also be controlled via vf_format. For HDR content this adjusts the overall image brightness, for SDR content it's like simulating a different exposure) --- video/mp_image.h | 1 + 1 file changed, 1 insertion(+) (limited to 'video/mp_image.h') diff --git a/video/mp_image.h b/video/mp_image.h index 0a43093ecb..18d25968c0 100644 --- a/video/mp_image.h +++ b/video/mp_image.h @@ -47,6 +47,7 @@ struct mp_image_params { enum mp_csp_levels colorlevels; enum mp_csp_prim primaries; enum mp_csp_trc gamma; + float peak; // 0 = auto/unknown enum mp_chroma_location chroma_location; // The image should be rotated clockwise (0-359 degrees). int rotate; -- cgit v1.2.3