diff mbox series

[FFmpeg-devel,5/9] avcodec/ljpegenc: Allow full range yuv420p, yuv422p, yuv444p by default

Message ID HE1PR0301MB215472BEDC90D88752A8ED088F769@HE1PR0301MB2154.eurprd03.prod.outlook.com
State Accepted
Commit 48cda7d02b768d965db6582271a2f8591f2a3a10
Headers show
Series [FFmpeg-devel,1/9] avcodec/encode: Fix check for allowed LJPEG pixel formats
Related show

Checks

Context Check Description
andriy/x86_make success Make finished
andriy/x86_make_fate success Make fate finished
andriy/PPC64_make success Make finished
andriy/PPC64_make_fate success Make fate finished

Commit Message

Andreas Rheinhardt April 6, 2021, 5:40 a.m. UTC
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>
---
 libavcodec/ljpegenc.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/libavcodec/ljpegenc.c b/libavcodec/ljpegenc.c
index 056b80b4b5..dd91c729d4 100644
--- a/libavcodec/ljpegenc.c
+++ b/libavcodec/ljpegenc.c
@@ -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);
     }