summaryrefslogtreecommitdiffstats
path: root/video/out/gl_video.h
diff options
context:
space:
mode:
authorNiklas Haas <git@nand.wakku.to>2015-03-12 22:18:16 +0100
committerwm4 <wm4@nowhere>2015-03-12 23:20:21 +0100
commit3974a5ca5e55ce00e8177a672e0627bfabee4118 (patch)
tree382713c02863c460e5c9b4007bf4bf8b4d89e49e /video/out/gl_video.h
parente74a4d5bc0b101fbfb371942c00d3a77267dc4a6 (diff)
downloadmpv-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/out/gl_video.h')
-rw-r--r--video/out/gl_video.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/video/out/gl_video.h b/video/out/gl_video.h
index 1de619870f..9c70e9ba82 100644
--- a/video/out/gl_video.h
+++ b/video/out/gl_video.h
@@ -31,12 +31,13 @@ struct lut3d {
struct gl_video_opts {
char *scalers[2];
char *dscaler;
+ float gamma;
+ int gamma_auto;
+ int target_prim;
+ int target_trc;
float scaler_params[2][2];
float scaler_radius[2];
float scaler_antiring[2];
- float gamma;
- int gamma_auto;
- int srgb;
int linear_scaling;
int fancy_downscaling;
int sigmoid_upscaling;