summaryrefslogtreecommitdiff
path: root/ffmpeg.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2015-11-11 17:19:12 +0100
committerMichael Niedermayer <michael@niedermayer.cc>2015-11-11 17:46:19 +0100
commit6770a9d6898a0c7561586dabd7a4e5b5187bed62 (patch)
treeeee3911aeaae89c068132b46534f389ed344f681 /ffmpeg.c
parent64e220beb5fb7f32800c1eed1e9e903022e41d19 (diff)
ffmpeg: Fix integer overflow with cur_dts being AV_NOPTS_VALUE
Since de0e219a8aba72de201e85385c746cd1c04be1a2 cur_dts is sometimes invalid
Diffstat (limited to 'ffmpeg.c')
-rw-r--r--ffmpeg.c6
1 files changed, 5 insertions, 1 deletions
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;