diff --git a/libavformat/utils.c b/libavformat/utils.c index 8cb7d38b3ea16ad202ae00db25ee20fffe1fa95c..4475df9ddb81c1c7f3f461ced2f8405ff775e764 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -2889,7 +2889,10 @@ enum AVCodecID av_codec_get_id(const AVCodecTag *const *tags, unsigned int tag) static void compute_chapters_end(AVFormatContext *s) { unsigned int i, j; - int64_t max_time = s->duration + + int64_t max_time = 0; + + if (s->duration > 0) + max_time = s->duration + ((s->start_time == AV_NOPTS_VALUE) ? 0 : s->start_time); for (i = 0; i < s->nb_chapters; i++)