mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
mpegvideoenc: check color_range
Rework the comparison into something simpler to understand.
This commit is contained in:
parent
27860819d5
commit
d7705be961
@ -229,7 +229,7 @@ static void MPV_encode_defaults(MpegEncContext *s)
|
||||
av_cold int ff_MPV_encode_init(AVCodecContext *avctx)
|
||||
{
|
||||
MpegEncContext *s = avctx->priv_data;
|
||||
int i, ret;
|
||||
int i, ret, format_supported;
|
||||
|
||||
MPV_encode_defaults(s);
|
||||
|
||||
@ -243,11 +243,21 @@ av_cold int ff_MPV_encode_init(AVCodecContext *avctx)
|
||||
}
|
||||
break;
|
||||
case AV_CODEC_ID_MJPEG:
|
||||
if (avctx->pix_fmt != AV_PIX_FMT_YUVJ420P &&
|
||||
avctx->pix_fmt != AV_PIX_FMT_YUVJ422P &&
|
||||
((avctx->pix_fmt != AV_PIX_FMT_YUV420P &&
|
||||
avctx->pix_fmt != AV_PIX_FMT_YUV422P) ||
|
||||
avctx->strict_std_compliance > FF_COMPLIANCE_UNOFFICIAL)) {
|
||||
format_supported = 0;
|
||||
/* JPEG color space */
|
||||
if (avctx->pix_fmt == AV_PIX_FMT_YUVJ420P ||
|
||||
avctx->pix_fmt == AV_PIX_FMT_YUVJ422P ||
|
||||
(avctx->color_range == AVCOL_RANGE_JPEG &&
|
||||
(avctx->pix_fmt == AV_PIX_FMT_YUV420P ||
|
||||
avctx->pix_fmt == AV_PIX_FMT_YUV422P)))
|
||||
format_supported = 1;
|
||||
/* MPEG color space */
|
||||
else if (avctx->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL &&
|
||||
(avctx->pix_fmt == AV_PIX_FMT_YUV420P ||
|
||||
avctx->pix_fmt == AV_PIX_FMT_YUV422P))
|
||||
format_supported = 1;
|
||||
|
||||
if (!format_supported) {
|
||||
av_log(avctx, AV_LOG_ERROR, "colorspace not supported in jpeg\n");
|
||||
return -1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user