diff options
-rw-r--r-- | video/img_format.c | 7 |
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; } |