summaryrefslogtreecommitdiffstats
path: root/video/img_format.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/img_format.c')
-rw-r--r--video/img_format.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/video/img_format.c b/video/img_format.c
index 39bb751ddb..52319104df 100644
--- a/video/img_format.c
+++ b/video/img_format.c
@@ -321,8 +321,8 @@ static bool validate_regular_imgfmt(const struct mp_regular_imgfmt *fmt)
enum mp_csp mp_imgfmt_get_forced_csp(int imgfmt)
{
- const AVPixFmtDescriptor *pixdesc =
- av_pix_fmt_desc_get(imgfmt2pixfmt(imgfmt));
+ enum AVPixelFormat pixfmt = imgfmt2pixfmt(imgfmt);
+ const AVPixFmtDescriptor *pixdesc = av_pix_fmt_desc_get(pixfmt);
// FFmpeg does not provide a flag for XYZ, so this is the best we can do.
if (pixdesc && strncmp(pixdesc->name, "xyz", 3) == 0)
@@ -331,6 +331,9 @@ enum mp_csp mp_imgfmt_get_forced_csp(int imgfmt)
if (pixdesc && (pixdesc->flags & AV_PIX_FMT_FLAG_RGB))
return MP_CSP_RGB;
+ if (pixfmt == AV_PIX_FMT_PAL8 || pixfmt == AV_PIX_FMT_MONOBLACK)
+ return MP_CSP_RGB;
+
return MP_CSP_AUTO;
}