[FFmpeg-devel] [PATCH v4 2/2] libavcodec/jpeg2000dec.c: Handle non EOC streams
Carl Eugen Hoyos
ceffmpeg at gmail.com
Sat Mar 28 14:52:06 EET 2020
Am Sa., 28. März 2020 um 13:28 Uhr schrieb <gautamramk at gmail.com>:
>
> From: Gautam Ramakrishnan <gautamramk at gmail.com>
>
> This patch allows decoding of j2k streams which do
> not have an EOC marker. OpenJPEG implements a similar
> check.
> ---
> libavcodec/jpeg2000dec.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
> index 44b3e7e41b..eb877d499d 100644
> --- a/libavcodec/jpeg2000dec.c
> +++ b/libavcodec/jpeg2000dec.c
> @@ -2076,8 +2076,11 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
>
> len = bytestream2_get_be16(&s->g);
> if (len < 2 || bytestream2_get_bytes_left(&s->g) < len - 2) {
> - av_log(s->avctx, AV_LOG_ERROR, "Invalid len %d left=%d\n", len, bytestream2_get_bytes_left(&s->g));
> - return AVERROR_INVALIDDATA;
> + if (s->avctx->err_recognition & AV_EF_EXPLODE) {
lol
Sorry, my mistake, please check for the following:
avctx->strict_std_compliance >= FF_COMPLIANCE_STRICT
> + av_log(s->avctx, AV_LOG_ERROR, "Invalid len %d left=%d\n", len, bytestream2_get_bytes_left(&s->g));
> + return AVERROR_INVALIDDATA;
A message should always be shown (after all, the stream is clearly
invalid), some
people argue that it should be WARNING for < STRICT and ERROR for >= STRICT.
> + }
> + continue;
> }
>
> switch (marker) {
I don't know if the continue is more correct.
Carl Eugen
More information about the ffmpeg-devel
mailing list