diff options
author | Wessel Dankers <wsl@uvt.nl> | 2018-08-22 14:39:40 +0200 |
---|---|---|
committer | wm4 <1387750+wm4@users.noreply.github.com> | 2019-09-27 13:21:41 +0200 |
commit | 643417dd175ebe3a1b90213f97acddaea7eaea80 (patch) | |
tree | ecd0f64845724490fc932aa28d643e850a208163 /video/out/gpu | |
parent | 919b7a55cdc837166bf831cdd1f01e4ad5b2cf89 (diff) | |
download | mpv-643417dd175ebe3a1b90213f97acddaea7eaea80.tar.bz2 mpv-643417dd175ebe3a1b90213f97acddaea7eaea80.tar.xz |
video: add pure gamma TRC curves for 2.0, 2.4 and 2.6.
Diffstat (limited to 'video/out/gpu')
-rw-r--r-- | video/out/gpu/lcms.c | 3 | ||||
-rw-r--r-- | video/out/gpu/video_shaders.c | 18 |
2 files changed, 21 insertions, 0 deletions
diff --git a/video/out/gpu/lcms.c b/video/out/gpu/lcms.c index a8f277d3f0..1d4e90d7af 100644 --- a/video/out/gpu/lcms.c +++ b/video/out/gpu/lcms.c @@ -253,7 +253,10 @@ static cmsHPROFILE get_vid_profile(struct gl_lcms *p, cmsContext cms, switch (trc) { case MP_CSP_TRC_LINEAR: tonecurve[0] = cmsBuildGamma(cms, 1.0); break; case MP_CSP_TRC_GAMMA18: tonecurve[0] = cmsBuildGamma(cms, 1.8); break; + case MP_CSP_TRC_GAMMA20: tonecurve[0] = cmsBuildGamma(cms, 2.0); break; case MP_CSP_TRC_GAMMA22: tonecurve[0] = cmsBuildGamma(cms, 2.2); break; + case MP_CSP_TRC_GAMMA24: tonecurve[0] = cmsBuildGamma(cms, 2.4); break; + case MP_CSP_TRC_GAMMA26: tonecurve[0] = cmsBuildGamma(cms, 2.6); break; case MP_CSP_TRC_GAMMA28: tonecurve[0] = cmsBuildGamma(cms, 2.8); break; case MP_CSP_TRC_SRGB: diff --git a/video/out/gpu/video_shaders.c b/video/out/gpu/video_shaders.c index e3021fdb9c..51b62ad7db 100644 --- a/video/out/gpu/video_shaders.c +++ b/video/out/gpu/video_shaders.c @@ -364,9 +364,18 @@ void pass_linearize(struct gl_shader_cache *sc, enum mp_csp_trc trc) case MP_CSP_TRC_GAMMA18: GLSL(color.rgb = pow(color.rgb, vec3(1.8));) break; + case MP_CSP_TRC_GAMMA20: + GLSL(color.rgb = pow(color.rgb, vec3(2.0));) + break; case MP_CSP_TRC_GAMMA22: GLSL(color.rgb = pow(color.rgb, vec3(2.2));) break; + case MP_CSP_TRC_GAMMA24: + GLSL(color.rgb = pow(color.rgb, vec3(2.4));) + break; + case MP_CSP_TRC_GAMMA26: + GLSL(color.rgb = pow(color.rgb, vec3(2.6));) + break; case MP_CSP_TRC_GAMMA28: GLSL(color.rgb = pow(color.rgb, vec3(2.8));) break; @@ -445,9 +454,18 @@ void pass_delinearize(struct gl_shader_cache *sc, enum mp_csp_trc trc) case MP_CSP_TRC_GAMMA18: GLSL(color.rgb = pow(color.rgb, vec3(1.0/1.8));) break; + case MP_CSP_TRC_GAMMA20: + GLSL(color.rgb = pow(color.rgb, vec3(1.0/2.0));) + break; case MP_CSP_TRC_GAMMA22: GLSL(color.rgb = pow(color.rgb, vec3(1.0/2.2));) break; + case MP_CSP_TRC_GAMMA24: + GLSL(color.rgb = pow(color.rgb, vec3(1.0/2.4));) + break; + case MP_CSP_TRC_GAMMA26: + GLSL(color.rgb = pow(color.rgb, vec3(1.0/2.6));) + break; case MP_CSP_TRC_GAMMA28: GLSL(color.rgb = pow(color.rgb, vec3(1.0/2.8));) break; |