avcodec/ljpegenc: Allow full range yuv420p, yuv422p, yuv444p by default

The documentation for AV_PIX_FMT_YUVJ420P reads:
"planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of
AV_PIX_FMT_YUV420P and setting color_range"
Yet the LJPEG encoder only accepts full scale yuv420p when strictness is
set to unofficial or lower; with default strictness it emits a nonsense
error message that says that limit range YUV is unofficial. This has
been changed to allow full range yuv420p, yuv422p and yuv444p irrespective
of the level of strictness.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt 2021-04-06 00:45:25 +02:00
parent 159bcb19b9
commit 48cda7d02b
1 changed files with 3 additions and 2 deletions

View File

@ -295,10 +295,11 @@ static av_cold int ljpeg_encode_init(AVCodecContext *avctx)
avctx->pix_fmt == AV_PIX_FMT_YUV422P ||
avctx->pix_fmt == AV_PIX_FMT_YUV444P ||
avctx->color_range == AVCOL_RANGE_MPEG) &&
avctx->color_range != AVCOL_RANGE_JPEG &&
avctx->strict_std_compliance > FF_COMPLIANCE_UNOFFICIAL) {
av_log(avctx, AV_LOG_ERROR,
"Limited range YUV is non-standard, set strict_std_compliance to "
"at least unofficial to use it.\n");
"Non full-range YUV is non-standard, set strict_std_compliance "
"to at most unofficial to use it.\n");
return AVERROR(EINVAL);
}