diff options
author | Arttu Ylä-Outinen <arttu.yla-outinen@tut.fi> | 2016-01-18 20:54:34 +0100 |
---|---|---|
committer | Luca Barbato <lu_zero@gentoo.org> | 2016-01-19 20:47:49 +0100 |
commit | 7486418683bd2477772e03aab573cf846c12fb0d (patch) | |
tree | 4577ab5a16be82f16a8020a5285358c860e7748a /libavcodec | |
parent | e59708bb9d94f67381f19344b5e021591eb711bf (diff) | |
download | ffmpeg-7486418683bd2477772e03aab573cf846c12fb0d.tar.gz |
lavc: Make sure that the effective timebase would not overflow
In the unlikely situation the user decides to set ticks_per_frame
and timebase to a value large enough to overflow.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/utils.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 29ba85fd21..e06ee664b5 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -1049,6 +1049,16 @@ FF_ENABLE_DEPRECATION_WARNINGS if (!avctx->rc_initial_buffer_occupancy) avctx->rc_initial_buffer_occupancy = avctx->rc_buffer_size * 3 / 4; + + if (avctx->ticks_per_frame && + avctx->ticks_per_frame > INT_MAX / avctx->time_base.num) { + av_log(avctx, AV_LOG_ERROR, + "ticks_per_frame %d too large for the timebase %d/%d.", + avctx->ticks_per_frame, + avctx->time_base.num, + avctx->time_base.den); + goto free_and_end; + } } if (avctx->codec->init && !(avctx->active_thread_type & FF_THREAD_FRAME)) { |