summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-12-07 14:49:39 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-12-10 21:14:48 +0100
commit9cdecba3bdf39c3b3eec8048196328a058108f8a (patch)
treee277826a2728730535013d77be4bc704de13a964
parent442bbdb3c53201daac81d53f9a15b846d760f2b3 (diff)
avcodec/mjpegdec: Restrict AVID MJPEG to non-SMVJPEG
AVID content is not supposed to be SMVJPEG; given that both these codecs involve manipulating image dimensions and cropping dimensions, it makes sense to restrict the AVID codepaths to non-SMVJPEG codecs in order not to have to think about what if SMVJPEG happens to have a codec tag indicating AVID. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r--libavcodec/mjpegdec.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
index 228d3077b9..6f601c3f55 100644
--- a/libavcodec/mjpegdec.c
+++ b/libavcodec/mjpegdec.c
@@ -452,7 +452,8 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s)
if (ret < 0)
return ret;
- if ((s->avctx->codec_tag == MKTAG('A', 'V', 'R', 'n') ||
+ if (s->avctx->codec_id != AV_CODEC_ID_SMVJPEG &&
+ (s->avctx->codec_tag == MKTAG('A', 'V', 'R', 'n') ||
s->avctx->codec_tag == MKTAG('A', 'V', 'D', 'J')) &&
s->orig_height < height)
s->avctx->height = AV_CEIL_RSHIFT(s->orig_height, s->avctx->lowres);
@@ -2927,7 +2928,8 @@ the_end:
return ret;
}
}
- if ((avctx->codec_tag == MKTAG('A', 'V', 'R', 'n') ||
+ if (avctx->codec_id != AV_CODEC_ID_SMVJPEG &&
+ (avctx->codec_tag == MKTAG('A', 'V', 'R', 'n') ||
avctx->codec_tag == MKTAG('A', 'V', 'D', 'J')) &&
avctx->coded_height > s->orig_height) {
frame->height = AV_CEIL_RSHIFT(avctx->coded_height, avctx->lowres);