summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-07-15 00:50:01 +0200
committerwm4 <wm4@nowhere>2013-07-15 01:49:26 +0200
commit5f0fc0e914e7bdf7ec536ff83638c8a416dfa6ac (patch)
treee4d9f2984a9c63a5ee109aac7adc896350173e13 /video
parent5b01ef4572cb4490d5ee1800e3f2b34ef24da811 (diff)
downloadmpv-5f0fc0e914e7bdf7ec536ff83638c8a416dfa6ac.tar.bz2
mpv-5f0fc0e914e7bdf7ec536ff83638c8a416dfa6ac.tar.xz
mp_image: explicitly forbid using RGB colorspace with YUV formats
This probably has more potential for breakage than it would be of use.
Diffstat (limited to 'video')
-rw-r--r--video/mp_image.c9
1 files changed, 9 insertions, 0 deletions
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)