From 5f0fc0e914e7bdf7ec536ff83638c8a416dfa6ac Mon Sep 17 00:00:00 2001 From: wm4 Date: Mon, 15 Jul 2013 00:50:01 +0200 Subject: mp_image: explicitly forbid using RGB colorspace with YUV formats This probably has more potential for breakage than it would be of use. --- video/mp_image.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/video/mp_image.c b/video/mp_image.c index 003ce4a0c7..c1e4ba18e7 100644 --- a/video/mp_image.c +++ b/video/mp_image.c @@ -453,6 +453,15 @@ void mp_image_params_guess_csp(struct mp_image_params *params) if (!fmt.id) return; if (fmt.flags & MP_IMGFLAG_YUV) { + if (params->colorspace != MP_CSP_BT_601 && + params->colorspace != MP_CSP_BT_709 && + params->colorspace != MP_CSP_SMPTE_240M && + params->colorspace != MP_CSP_YCGCO) + { + // Makes no sense, so guess instead + // YCGCO should be separate, but libavcodec disagrees + params->colorspace = MP_CSP_AUTO; + } if (params->colorspace == MP_CSP_AUTO) params->colorspace = mp_csp_guess_colorspace(params->w, params->h); if (params->colorlevels == MP_CSP_LEVELS_AUTO) -- cgit v1.2.3