From 6770a9d6898a0c7561586dabd7a4e5b5187bed62 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 11 Nov 2015 17:19:12 +0100 Subject: [PATCH] ffmpeg: Fix integer overflow with cur_dts being AV_NOPTS_VALUE Since de0e219a8aba72de201e85385c746cd1c04be1a2 cur_dts is sometimes invalid --- ffmpeg.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ffmpeg.c b/ffmpeg.c index 438175b586..3341777299 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -3382,8 +3382,12 @@ static OutputStream *choose_output(void) for (i = 0; i < nb_output_streams; i++) { OutputStream *ost = output_streams[i]; - int64_t opts = av_rescale_q(ost->st->cur_dts, ost->st->time_base, + int64_t opts = ost->st->cur_dts == AV_NOPTS_VALUE ? INT64_MIN : + av_rescale_q(ost->st->cur_dts, ost->st->time_base, AV_TIME_BASE_Q); + if (ost->st->cur_dts == AV_NOPTS_VALUE) + av_log(NULL, AV_LOG_DEBUG, "cur_dts is invalid (this is harmless if it occurs once at the start per stream)\n"); + if (!ost->finished && opts < opts_min) { opts_min = opts; ost_min = ost->unavailable ? NULL : ost;