diff options
author | Niklas Haas <git@nand.wakku.to> | 2016-05-30 19:56:58 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2016-05-30 20:17:33 +0200 |
commit | 45c3e0f0d0c836158ab38db53156bb6461ad7437 (patch) | |
tree | fa74784173edcbc2771b045947e0d64ed1b44bd9 /video/mp_image.h | |
parent | 098ff4174c6c9cc59e65c6f09b23b3adaee03983 (diff) | |
download | mpv-45c3e0f0d0c836158ab38db53156bb6461ad7437.tar.bz2 mpv-45c3e0f0d0c836158ab38db53156bb6461ad7437.tar.xz |
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)
Diffstat (limited to 'video/mp_image.h')
-rw-r--r-- | video/mp_image.h | 1 |
1 files changed, 1 insertions, 0 deletions
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; |