summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNiklas Haas <git@haasn.xyz>2018-09-05 19:48:50 +0200
committersfan5 <sfan5@live.de>2018-09-05 22:09:30 +0200
commit48c38f730d87b105716d9321a375175d2f01d401 (patch)
tree61704446058b1b27021542c8265718694f581091
parenta5b0d590845e30d3125b112865ab6d3859c5e836 (diff)
downloadmpv-48c38f730d87b105716d9321a375175d2f01d401.tar.bz2
mpv-48c38f730d87b105716d9321a375175d2f01d401.tar.xz
mp_image: strip all HDR peak information from SDR clips
By overriding it with 1.0 (aka SDR). This prevents blowing up on mistagged clips. Fixes #6111
-rw-r--r--video/mp_image.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/video/mp_image.c b/video/mp_image.c
index eadff83e5b..92c3e57b95 100644
--- a/video/mp_image.c
+++ b/video/mp_image.c
@@ -812,6 +812,12 @@ void mp_image_params_guess_csp(struct mp_image_params *params)
}
}
+ if (!mp_trc_is_hdr(params->color.gamma)) {
+ // Some clips have leftover HDR metadata after conversion to SDR, so to
+ // avoid blowing up the tone mapping code, strip/sanitize it
+ params->color.sig_peak = 1.0;
+ }
+
if (params->chroma_location == MP_CHROMA_AUTO) {
if (params->color.levels == MP_CSP_LEVELS_TV)
params->chroma_location = MP_CHROMA_LEFT;