diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-01-08 00:24:46 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-01-08 00:28:35 +0100 |
commit | 953061ed9537f2eecd814842aca6a6fdf8118385 (patch) | |
tree | 4c959a870e9c1143e38a221fe6072421c8c79013 | |
parent | 3b57bb478ff4455773378355e285877d757e151e (diff) | |
download | ffmpeg-953061ed9537f2eecd814842aca6a6fdf8118385.tar.gz |
lavf/utils: more complete dts checks
Fixes division by zero
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavformat/utils.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c index 5cbf7ca7af..6f75e4314f 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -2861,7 +2861,8 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options) { int64_t last = st->info->last_dts; - if(pkt->dts != AV_NOPTS_VALUE && last != AV_NOPTS_VALUE && pkt->dts > last){ + if( pkt->dts != AV_NOPTS_VALUE && last != AV_NOPTS_VALUE && pkt->dts > last + && pkt->dts - (uint64_t)last < INT64_MAX){ double dts= (is_relative(pkt->dts) ? pkt->dts - RELATIVE_TS_BASE : pkt->dts) * av_q2d(st->time_base); int64_t duration= pkt->dts - last; |