diff options
author | Niklas Haas <git@nand.wakku.to> | 2015-03-12 22:18:16 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-03-12 23:20:21 +0100 |
commit | 3974a5ca5e55ce00e8177a672e0627bfabee4118 (patch) | |
tree | 382713c02863c460e5c9b4007bf4bf8b4d89e49e /video/csputils.c | |
parent | e74a4d5bc0b101fbfb371942c00d3a77267dc4a6 (diff) | |
download | mpv-3974a5ca5e55ce00e8177a672e0627bfabee4118.tar.bz2 mpv-3974a5ca5e55ce00e8177a672e0627bfabee4118.tar.xz |
vo_opengl: refactor shader generation (part 2)
This adds stuff related to gamma, linear light, sigmoid, BT.2020-CL,
etc, as well as color management. Also adds a new gamma function (gamma22).
This adds new parameters to configure the CMS settings, in particular
letting us target simple colorspaces without requiring usage of a 3DLUT.
This adds smoothmotion. Mostly working, but it's still sensitive to
timing issues. It's based on an actual queue now, but the queue size
is kept small to avoid larger amounts of latency.
Also makes “upscale before blending” the default strategy.
This is justified because the "render after blending" thing doesn't seme
to work consistently any way (introduces stutter due to the way vsync
timing works, or something), so this behavior is a bit closer to master
and makes pausing/unpausing less weird/jumpy.
This adds the remaining scalers, including bicubic_fast, sharpen3,
sharpen5, polar filters and antiringing. Apparently, sharpen3/5 also
consult scale-param1, which was undocumented in master.
This also implements cropping and chroma transformation, plus
rotation/flipping. These are inherently part of the same logic, although
it's a bit rough around the edges in some case, mainly due to the fallback
code paths (for bilinear scaling without indirection).
Diffstat (limited to 'video/csputils.c')
-rw-r--r-- | video/csputils.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/video/csputils.c b/video/csputils.c index cee33dbba9..06de4bb9e8 100644 --- a/video/csputils.c +++ b/video/csputils.c @@ -70,6 +70,7 @@ const char *const mp_csp_trc_names[MP_CSP_TRC_COUNT] = { "BT.1886 (SD, HD, UHD)", "sRGB (IEC 61966-2-1)", "Linear light", + "Pure power (gamma 2.2)", }; const char *const mp_csp_equalizer_names[MP_CSP_EQ_COUNT] = { @@ -156,6 +157,7 @@ enum mp_csp_trc avcol_trc_to_mp_csp_trc(int avtrc) 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; + case AVCOL_TRC_GAMMA22: return MP_CSP_TRC_GAMMA22; default: return MP_CSP_TRC_AUTO; } } @@ -202,6 +204,7 @@ int mp_csp_trc_to_avcol_trc(enum mp_csp_trc trc) 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; + case MP_CSP_TRC_GAMMA22: return AVCOL_TRC_GAMMA22; default: return AVCOL_TRC_UNSPECIFIED; } } |