From 47e92b2f884d4dd831e3e59ae9c692b460ef8dc3 Mon Sep 17 00:00:00 2001 From: wm4 Date: Sat, 24 Aug 2013 19:37:34 +0200 Subject: video: handle video output levels with mp_image_params Until now, video output levels (obscure feature, like using TV screens that require RGB output in limited range, similar to YUY) still required handling of VOCTRL_SET_YUV_COLORSPACE. Simplify this, and use the new mp_image_params code. This gets rid of some code. VOCTRL_SET_YUV_COLORSPACE is not needed at all anymore in VOs that use the reconfig callback. The result of VOCTRL_GET_YUV_COLORSPACE is now used only used for the colormatrix related properties (basically, for display on OSD). For other VOs, VOCTRL_SET_YUV_COLORSPACE will be sent only once after config instead of twice. --- video/decode/vd.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'video/decode/vd.c') diff --git a/video/decode/vd.c b/video/decode/vd.c index 1518d78695..fad9adbdf7 100644 --- a/video/decode/vd.c +++ b/video/decode/vd.c @@ -157,6 +157,7 @@ int mpcodecs_reconfig_vo(sh_video_t *sh, const struct mp_image_params *params) p.colorspace = opts->requested_colorspace; if (opts->requested_input_range != MP_CSP_LEVELS_AUTO) p.colorlevels = opts->requested_input_range; + p.outputlevels = opts->requested_output_range; // Detect colorspace from resolution. // Make sure the user-overrides are consistent (no RGB csp for YUV, etc.). @@ -184,8 +185,6 @@ int mpcodecs_reconfig_vo(sh_video_t *sh, const struct mp_image_params *params) sh->vf_input = talloc(sh, struct mp_image_params); *sh->vf_input = p; - set_video_output_levels(sh); - if (opts->gamma_gamma != 1000) set_video_colors(sh, "gamma", opts->gamma_gamma); if (opts->gamma_brightness != 1000) -- cgit v1.2.3