diff --git a/libavformat/mov.c b/libavformat/mov.c index 5d9ffa69a3..0acf981aef 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -7586,7 +7586,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)