Hi! Attached patch fixes ticket #7679.
Please comment, Carl Eugen
From ea6afa36d5ceb6e027176f051e7886f0648e3ac2 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos <ceffm...@gmail.com> Date: Sun, 13 Jan 2019 23:07:06 +0100 Subject: [PATCH] lavf/mov: Do not fail hard for more invalid atoms. This is what several other players do and what FFmpeg already does for the sidx atom. Fixes ticket #7679. --- libavformat/mov.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index 970cd87..50507cf 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -4558,8 +4558,8 @@ static int mov_read_tfhd(MOVContext *c, AVIOContext *pb, MOVAtom atom) break; } if (!trex) { - av_log(c->fc, AV_LOG_ERROR, "could not find corresponding trex\n"); - return AVERROR_INVALIDDATA; + av_log(c->fc, AV_LOG_WARNING, "could not find corresponding trex id %u\n", frag->track_id); + return 0; } frag->base_data_offset = flags & MOV_TFHD_BASE_DATA_OFFSET ? @@ -4639,8 +4639,8 @@ static int mov_read_tfdt(MOVContext *c, AVIOContext *pb, MOVAtom atom) } } if (!st) { - av_log(c->fc, AV_LOG_ERROR, "could not find corresponding track id %u\n", frag->track_id); - return AVERROR_INVALIDDATA; + av_log(c->fc, AV_LOG_WARNING, "could not find corresponding track id %u\n", frag->track_id); + return 0; } sc = st->priv_data; if (sc->pseudo_stream_id + 1 != frag->stsd_id && sc->pseudo_stream_id != -1) @@ -4686,8 +4686,8 @@ static int mov_read_trun(MOVContext *c, AVIOContext *pb, MOVAtom atom) } } if (!st) { - av_log(c->fc, AV_LOG_ERROR, "could not find corresponding track id %u\n", frag->track_id); - return AVERROR_INVALIDDATA; + av_log(c->fc, AV_LOG_WARNING, "could not find corresponding track id %u\n", frag->track_id); + return 0; } sc = st->priv_data; if (sc->pseudo_stream_id+1 != frag->stsd_id && sc->pseudo_stream_id != -1) -- 1.7.10.4
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel