summaryrefslogtreecommitdiffstats
path: root/video/out/gl_video.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/out/gl_video.c')
-rw-r--r--video/out/gl_video.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/video/out/gl_video.c b/video/out/gl_video.c
index 56a56cb1ae..0866474d27 100644
--- a/video/out/gl_video.c
+++ b/video/out/gl_video.c
@@ -190,7 +190,6 @@ struct gl_video {
// state for luma (0) and chroma (1) scalers
struct scaler scalers[2];
- struct mp_csp_details colorspace;
struct mp_csp_equalizer video_eq;
struct mp_image_params image_params;
@@ -535,8 +534,13 @@ static void update_uniforms(struct gl_video *p, GLuint program)
gl->UseProgram(program);
+ struct mp_csp_details csp = MP_CSP_DETAILS_DEFAULTS;
+ csp.levels_in = p->image_params.colorlevels;
+ csp.levels_out = p->image_params.outputlevels;
+ csp.format = p->image_params.colorspace;
+
struct mp_csp_params cparams = {
- .colorspace = p->colorspace,
+ .colorspace = csp,
.input_bits = p->plane_bits,
.texture_bits = (p->plane_bits + 7) & ~7,
};
@@ -1301,12 +1305,6 @@ static void init_video(struct gl_video *p, const struct mp_image_params *params)
p->image_dh = params->d_h;
p->image_params = *params;
- struct mp_csp_details csp = MP_CSP_DETAILS_DEFAULTS;
- csp.levels_in = params->colorlevels;
- csp.levels_out = params->outputlevels;
- csp.format = params->colorspace;
- p->colorspace = csp;
-
if (p->is_rgb && (p->opts.srgb || p->use_lut_3d)) {
// If we're opening an RGB source like a png file or similar,
// we just sample it using GL_SRGB which treats it as an sRGB source
@@ -2215,10 +2213,9 @@ void gl_video_set_options(struct gl_video *p, struct gl_video_opts *opts)
reinit_rendering(p);
}
-bool gl_video_get_csp_override(struct gl_video *p, struct mp_csp_details *csp)
+void gl_video_get_colorspace(struct gl_video *p, struct mp_image_params *params)
{
- *csp = p->colorspace;
- return true;
+ *params = p->image_params; // supports everything
}
bool gl_video_set_equalizer(struct gl_video *p, const char *name, int val)