aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-04-06 00:32:39 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-04-08 11:58:59 +0200
commitfb7cd459778d6ae8975bf26766109ad82859c0e8 (patch)
tree7c379b26caa9571315e471d0a7d9ad2fc9883866
parent44d218e99aba4cbcbbed06bc5065380636623a36 (diff)
downloadffmpeg-fb7cd459778d6ae8975bf26766109ad82859c0e8.tar.gz
avcodec/encode: Fix check for allowed LJPEG pixel formats
The pix_fmts of the LJPEG encoder already contain all supported pixel formats (including the ones only supported when strictness is unofficial or less); yet the check in ff_encode_preinit() ignored this list in case strictness is unofficial or less. But the encoder presumed that it is always applied and blacklists some of the entries in pix_fmts when strictness is > unofficial. The result is that if one uses an entry not on that list and sets strictness to unofficial, said entry passes both checks and this can lead to segfaults lateron (e.g. when using gray). Fix this by removing the exception for LJPEG in ff_encode_preinit(). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> (cherry picked from commit 6e8e9b7633d8b755e7a464a10ba5047f31cbd84d)
-rw-r--r--libavcodec/encode.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavcodec/encode.c b/libavcodec/encode.c
index a93bb3ccf7..89df5235da 100644
--- a/libavcodec/encode.c
+++ b/libavcodec/encode.c
@@ -565,7 +565,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
if (avctx->pix_fmt == avctx->codec->pix_fmts[i])
break;
if (avctx->codec->pix_fmts[i] == AV_PIX_FMT_NONE
- && !((avctx->codec_id == AV_CODEC_ID_MJPEG || avctx->codec_id == AV_CODEC_ID_LJPEG)
+ && !(avctx->codec_id == AV_CODEC_ID_MJPEG
&& avctx->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL)) {
char buf[128];
snprintf(buf, sizeof(buf), "%d", avctx->pix_fmt);