diff options
-rw-r--r-- | libavformat/mov.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libavformat/mov.c b/libavformat/mov.c index 6d6d3d5787..6863f39250 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -1339,6 +1339,12 @@ static int mov_read_ctts(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom) int count =get_be32(pb); int duration =get_be32(pb); + if (duration < 0) { + av_log(c->fc, AV_LOG_ERROR, "negative ctts, ignoring\n"); + sc->ctts_count = 0; + url_fskip(pb, 8 * (entries - i - 1)); + break; + } sc->ctts_data[i].count = count; sc->ctts_data[i].duration= duration; |