aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2023-03-09 13:57:16 +0100
committerMichael Niedermayer <michael@niedermayer.cc>2023-04-18 01:31:38 +0200
commit4ea28554db5195a3981822f88e55262ed0429411 (patch)
tree462f9aedc731ff3ae9ff9b633505725832ced7ca
parent0cf1ac905d2d97355a389c3baa4e132824b29f21 (diff)
downloadffmpeg-4ea28554db5195a3981822f88e55262ed0429411.tar.gz
avcodec/lcldec: 420 seems missing 2 bytes, ignore that
Fixes: Ticket 10238 Fixes: mszh_306_306_yuv420.avi Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r--libavcodec/lcldec.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libavcodec/lcldec.c b/libavcodec/lcldec.c
index 0196460eb2..f9a0755e4d 100644
--- a/libavcodec/lcldec.c
+++ b/libavcodec/lcldec.c
@@ -219,7 +219,9 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *frame,
if (c->decomp_size != mszh_dlen) {
av_log(avctx, AV_LOG_ERROR, "Decoded size differs (%d != %d)\n",
c->decomp_size, mszh_dlen);
- return AVERROR_INVALIDDATA;
+ if (c->decomp_size != mszh_dlen &&
+ c->decomp_size != mszh_dlen + 2) // YUV420 306x306 is missing 2 bytes
+ return AVERROR_INVALIDDATA;
}
encoded = c->decomp_buf;
len = mszh_dlen;