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 | expand |
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 |
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); }
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(-)