mirror of
https://github.com/mpv-player/mpv
synced 2025-04-10 11:41:37 +00:00
vo_opengl: Ignore approx-gamma for BT.2020-CL
The details of the non-linear transformation from/to BT.2020's constant luminance system don't really make sense with any other gamma curve, since changing the gamma curve completely breaks the chroma channels.
This commit is contained in:
parent
1a6dc9ae44
commit
016bb14804
@ -1021,8 +1021,8 @@ static void compile_shaders(struct gl_video *p)
|
||||
|
||||
// Linear light scaling is only enabled when either color correction
|
||||
// option (3dlut or srgb) is enabled, otherwise scaling is done in the
|
||||
// source space. We also need to linearize for constant luminance systems.
|
||||
if ((!p->is_linear_rgb && use_cms) || use_const_luma) {
|
||||
// source space.
|
||||
if (!p->is_linear_rgb && use_cms) {
|
||||
// We just use the color level range to distinguish between PC
|
||||
// content like images, which are most likely sRGB, and TV content
|
||||
// like movies, which are most likely BT.2020
|
||||
@ -1037,6 +1037,13 @@ static void compile_shaders(struct gl_video *p)
|
||||
}
|
||||
}
|
||||
|
||||
// We also need to linearize for the constant luminance system. This
|
||||
// transformation really makes no sense with anything other than the
|
||||
// official gamma curves, though. This overrides approx-gamma.
|
||||
if (use_const_luma) {
|
||||
gamma_fun = MP_CSP_TRC_BT_2020_EXACT;
|
||||
}
|
||||
|
||||
// Figure out the right color spaces we need to convert, if any
|
||||
enum mp_csp_prim prim_src = p->image_params.primaries, prim_dest;
|
||||
if (use_cms) {
|
||||
|
Loading…
Reference in New Issue
Block a user