mirror of
https://github.com/mpv-player/mpv.git
synced 2024-09-20 03:52:22 +02:00
video: add pure gamma TRC curves for 2.0, 2.4 and 2.6.
This commit is contained in:
parent
919b7a55cd
commit
643417dd17
@ -5342,8 +5342,14 @@ The following video options are currently all specific to ``--vo=gpu`` and
|
||||
Linear light output
|
||||
gamma1.8
|
||||
Pure power curve (gamma 1.8), also used for Apple RGB
|
||||
gamma2.0
|
||||
Pure power curve (gamma 2.0)
|
||||
gamma2.2
|
||||
Pure power curve (gamma 2.2)
|
||||
gamma2.4
|
||||
Pure power curve (gamma 2.4)
|
||||
gamma2.6
|
||||
Pure power curve (gamma 2.6)
|
||||
gamma2.8
|
||||
Pure power curve (gamma 2.8), also used for BT.470-BG
|
||||
prophoto
|
||||
|
@ -216,7 +216,10 @@ Available mpv-only filters are:
|
||||
:srgb: IEC 61966-2-4 (sRGB)
|
||||
:linear: Linear light
|
||||
:gamma1.8: Pure power curve (gamma 1.8)
|
||||
:gamma2.0: Pure power curve (gamma 2.0)
|
||||
:gamma2.2: Pure power curve (gamma 2.2)
|
||||
:gamma2.4: Pure power curve (gamma 2.4)
|
||||
:gamma2.6: Pure power curve (gamma 2.6)
|
||||
:gamma2.8: Pure power curve (gamma 2.8)
|
||||
:prophoto: ProPhoto RGB (ROMM) curve
|
||||
:pq: ITU-R BT.2100 PQ (Perceptual quantizer) curve
|
||||
|
@ -78,7 +78,10 @@ const struct m_opt_choice_alternatives mp_csp_trc_names[] = {
|
||||
{"srgb", MP_CSP_TRC_SRGB},
|
||||
{"linear", MP_CSP_TRC_LINEAR},
|
||||
{"gamma1.8", MP_CSP_TRC_GAMMA18},
|
||||
{"gamma2.0", MP_CSP_TRC_GAMMA20},
|
||||
{"gamma2.2", MP_CSP_TRC_GAMMA22},
|
||||
{"gamma2.4", MP_CSP_TRC_GAMMA24},
|
||||
{"gamma2.6", MP_CSP_TRC_GAMMA26},
|
||||
{"gamma2.8", MP_CSP_TRC_GAMMA28},
|
||||
{"prophoto", MP_CSP_TRC_PRO_PHOTO},
|
||||
{"pq", MP_CSP_TRC_PQ},
|
||||
|
@ -78,7 +78,10 @@ enum mp_csp_trc {
|
||||
MP_CSP_TRC_SRGB,
|
||||
MP_CSP_TRC_LINEAR,
|
||||
MP_CSP_TRC_GAMMA18,
|
||||
MP_CSP_TRC_GAMMA20,
|
||||
MP_CSP_TRC_GAMMA22,
|
||||
MP_CSP_TRC_GAMMA24,
|
||||
MP_CSP_TRC_GAMMA26,
|
||||
MP_CSP_TRC_GAMMA28,
|
||||
MP_CSP_TRC_PRO_PHOTO,
|
||||
MP_CSP_TRC_PQ,
|
||||
|
@ -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:
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user