summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2017-06-30 18:27:35 +0200
committerwm4 <wm4@nowhere>2017-06-30 18:27:35 +0200
commit2ef0ff3ad593d99d644f1bb31093de026c89e634 (patch)
tree99f9a77012f736176e83df2bc9924c8f5451cec6 /video
parent2aff6f8c95b416a8da767c4ee2449b6d86d1d3b0 (diff)
downloadmpv-2ef0ff3ad593d99d644f1bb31093de026c89e634.tar.bz2
mpv-2ef0ff3ad593d99d644f1bb31093de026c89e634.tar.xz
mp_image: use new code for determining RGB/XYZ exceptions
Slightly cleaner, possibly slightly more correct. (The last case should be dead code now. In general, we can't know the implied colorspace from a AV_PIX_FMT, at least not if FFmpeg adds a new one.)
Diffstat (limited to 'video')
-rw-r--r--video/mp_image.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/video/mp_image.c b/video/mp_image.c
index c950af12ad..281376b5f1 100644
--- a/video/mp_image.c
+++ b/video/mp_image.c
@@ -611,7 +611,9 @@ void mp_image_params_guess_csp(struct mp_image_params *params)
struct mp_imgfmt_desc fmt = mp_imgfmt_get_desc(imgfmt);
if (!fmt.id)
return;
- if (fmt.flags & MP_IMGFLAG_YUV) {
+
+ enum mp_csp forced_csp = mp_imgfmt_get_forced_csp(imgfmt);
+ if (forced_csp == MP_CSP_AUTO) { // YUV/other
if (params->color.space != MP_CSP_BT_601 &&
params->color.space != MP_CSP_BT_709 &&
params->color.space != MP_CSP_BT_2020_NC &&
@@ -646,7 +648,7 @@ void mp_image_params_guess_csp(struct mp_image_params *params)
}
if (params->color.gamma == MP_CSP_TRC_AUTO)
params->color.gamma = MP_CSP_TRC_BT_1886;
- } else if (fmt.flags & MP_IMGFLAG_RGB) {
+ } else if (forced_csp == MP_CSP_RGB) {
params->color.space = MP_CSP_RGB;
params->color.levels = MP_CSP_LEVELS_PC;
@@ -659,7 +661,7 @@ void mp_image_params_guess_csp(struct mp_image_params *params)
params->color.primaries = MP_CSP_PRIM_BT_709;
if (params->color.gamma == MP_CSP_TRC_AUTO)
params->color.gamma = MP_CSP_TRC_SRGB;
- } else if (fmt.flags & MP_IMGFLAG_XYZ) {
+ } else if (forced_csp == MP_CSP_XYZ) {
params->color.space = MP_CSP_XYZ;
params->color.levels = MP_CSP_LEVELS_PC;