summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNiklas Haas <git@haasn.xyz>2017-07-07 21:00:21 +0200
committerNiklas Haas <git@haasn.xyz>2017-07-07 21:00:21 +0200
commit8c0162e7622fb60ea0971d27080bcd89caa5b20d (patch)
tree935c7ac70142558c5501af6d1d70c3f97637f3fc
parent03596ac551c67cf66c962b1533feec49de18626d (diff)
downloadmpv-8c0162e7622fb60ea0971d27080bcd89caa5b20d.tar.bz2
mpv-8c0162e7622fb60ea0971d27080bcd89caa5b20d.tar.xz
vo_opengl: support tone-mapping-param for `clip`
This just indicates a fixed linear coefficient to multiply into the signal, similar to the old option --target-brightness (but the inverse thereof). Good for testing purposes, which is why I added it. (This also corresponds somewhat to what zimg does)
-rw-r--r--DOCS/man/options.rst3
-rw-r--r--video/out/opengl/video_shaders.c2
2 files changed, 4 insertions, 1 deletions
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst
index bb0e9107fd..a70c091faa 100644
--- a/DOCS/man/options.rst
+++ b/DOCS/man/options.rst
@@ -4712,6 +4712,9 @@ The following video options are currently all specific to ``--vo=opengl`` and
Set tone mapping parameters. Ignored if the tone mapping algorithm is not
tunable. This affects the following tone mapping algorithms:
+ clip
+ Specifies an extra linear coefficient to multiply into the signal
+ before clipping. Defaults to 1.0.
mobius
Specifies the transition point from linear to mobius transform. Every
value below this point is guaranteed to be mapped 1:1. The higher the
diff --git a/video/out/opengl/video_shaders.c b/video/out/opengl/video_shaders.c
index d343111389..83b9f83143 100644
--- a/video/out/opengl/video_shaders.c
+++ b/video/out/opengl/video_shaders.c
@@ -538,7 +538,7 @@ static void pass_tone_map(struct gl_shader_cache *sc, float ref_peak,
switch (algo) {
case TONE_MAPPING_CLIP:
- GLSL(luma = clamp(luma, 0.0, 1.0);)
+ GLSLF("luma = clamp(%f * luma, 0.0, 1.0);\n", isnan(param) ? 1.0 : param);
break;
case TONE_MAPPING_MOBIUS: {