diff --git a/libavformat/mov.c b/libavformat/mov.c index 5a7f4a4c27..1ea8b4094a 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -5141,7 +5141,9 @@ static int mov_read_packet(AVFormatContext *s, AVPacket *pkt) } else { int64_t next_dts = (sc->current_sample < st->nb_index_entries) ? st->index_entries[sc->current_sample].timestamp : st->duration; - pkt->duration = next_dts - pkt->dts; + + if (next_dts >= pkt->dts) + pkt->duration = next_dts - pkt->dts; pkt->pts = pkt->dts; } if (st->discard == AVDISCARD_ALL)