diff options
author | Niklas Haas <git@nand.wakku.to> | 2015-02-28 20:15:12 +0100 |
---|---|---|
committer | Niklas Haas <git@nand.wakku.to> | 2015-02-28 20:23:47 +0100 |
commit | a76cc1dafcf948cce93f6d258e33444206a83c45 (patch) | |
tree | 89e3bb2afb4192ee1e8f54aa9943927535845269 /video/csputils.c | |
parent | 8d24e9d9b8ad1b5d82139980eca148dc0f4a1eab (diff) | |
download | mpv-a76cc1dafcf948cce93f6d258e33444206a83c45.tar.bz2 mpv-a76cc1dafcf948cce93f6d258e33444206a83c45.tar.xz |
Revert "Revert recent vo_opengl related commits"
Omitted a simple, but devastasting check. Fixed the relevant commits
now.
This reverts commit 8d24e9d9b8ad1b5d82139980eca148dc0f4a1eab.
diff --git a/video/out/gl_video.c b/video/out/gl_video.c
index 9c8a643..f1ea03e 100644
--- a/video/out/gl_video.c
+++ b/video/out/gl_video.c
@@ -1034,9 +1034,9 @@ static void compile_shaders(struct gl_video *p)
shader_def_opt(&header_conv, "USE_CONV_GAMMA", use_conv_gamma);
shader_def_opt(&header_conv, "USE_CONST_LUMA", use_const_luma);
shader_def_opt(&header_conv, "USE_LINEAR_LIGHT_BT1886",
- gamma_fun == MP_CSP_TRC_BT_1886);
+ use_linear_light && gamma_fun == MP_CSP_TRC_BT_1886);
shader_def_opt(&header_conv, "USE_LINEAR_LIGHT_SRGB",
- gamma_fun == MP_CSP_TRC_SRGB);
+ use_linear_light && gamma_fun == MP_CSP_TRC_SRGB);
shader_def_opt(&header_conv, "USE_SIGMOID", use_sigmoid);
if (p->opts.alpha_mode > 0 && p->has_alpha && p->plane_count > 3)
shader_def(&header_conv, "USE_ALPHA_PLANE", "3");
Diffstat (limited to 'video/csputils.c')
-rw-r--r-- | video/csputils.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/video/csputils.c b/video/csputils.c index 90eec39d36..cbd9734819 100644 --- a/video/csputils.c +++ b/video/csputils.c @@ -65,6 +65,13 @@ const char *const mp_csp_prim_names[MP_CSP_PRIM_COUNT] = { "BT.470 M", }; +const char *const mp_csp_trc_names[MP_CSP_TRC_COUNT] = { + "Autoselect", + "BT.1886 (SD, HD, UHD)", + "sRGB (IEC 61966-2-1)", + "Linear light", +}; + const char *const mp_csp_equalizer_names[MP_CSP_EQ_COUNT] = { "brightness", "contrast", @@ -142,6 +149,21 @@ enum mp_csp_prim avcol_pri_to_mp_csp_prim(int avpri) } } +enum mp_csp_trc avcol_trc_to_mp_csp_trc(int avtrc) +{ + switch (avtrc) { + case AVCOL_TRC_BT709: + case AVCOL_TRC_SMPTE170M: + case AVCOL_TRC_SMPTE240M: + case AVCOL_TRC_BT1361_ECG: + case AVCOL_TRC_BT2020_10: + case AVCOL_TRC_BT2020_12: return MP_CSP_TRC_BT_1886; + case AVCOL_TRC_IEC61966_2_1: return MP_CSP_TRC_SRGB; + case AVCOL_TRC_LINEAR: return MP_CSP_TRC_LINEAR; + default: return MP_CSP_TRC_AUTO; + } +} + int mp_csp_to_avcol_spc(enum mp_csp colorspace) { switch (colorspace) { @@ -181,6 +203,17 @@ int mp_csp_prim_to_avcol_pri(enum mp_csp_prim prim) } } +int mp_csp_trc_to_avcol_trc(enum mp_csp_trc trc) +{ + switch (trc) { + // We just call it BT.1886 since we're decoding, but it's still BT.709 + case MP_CSP_TRC_BT_1886: return AVCOL_TRC_BT709; + case MP_CSP_TRC_SRGB: return AVCOL_TRC_IEC61966_2_1; + case MP_CSP_TRC_LINEAR: return AVCOL_TRC_LINEAR; + default: return AVCOL_TRC_UNSPECIFIED; + } +} + enum mp_csp mp_csp_guess_colorspace(int width, int height) { return width >= 1280 || height > 576 ? MP_CSP_BT_709 : MP_CSP_BT_601; |