From 144475b3286f4de5059e0333044a72faf5d0171c Mon Sep 17 00:00:00 2001 From: Stefan Holmer Date: Fri, 10 Mar 2017 15:08:26 +0100 Subject: [PATCH] Speculative fix for division by zero in Vp8EncoderImpl. BUG=chromium:597139 R=sprang@webrtc.org Review-Url: https://codereview.webrtc.org/2743543004 . Cr-Commit-Position: refs/heads/master@{#17167} --- webrtc/common_types.h | 2 +- webrtc/modules/video_coding/media_optimization.cc | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/webrtc/common_types.h b/webrtc/common_types.h index faa875a406..b80635ff8e 100644 --- a/webrtc/common_types.h +++ b/webrtc/common_types.h @@ -637,7 +637,7 @@ class VideoCodec { unsigned int minBitrate; // kilobits/sec. unsigned int targetBitrate; // kilobits/sec. - unsigned char maxFramerate; + uint32_t maxFramerate; unsigned int qpMax; unsigned char numberOfSimulcastStreams; diff --git a/webrtc/modules/video_coding/media_optimization.cc b/webrtc/modules/video_coding/media_optimization.cc index a30ac9521a..fec5c4c33b 100644 --- a/webrtc/modules/video_coding/media_optimization.cc +++ b/webrtc/modules/video_coding/media_optimization.cc @@ -10,6 +10,8 @@ #include "webrtc/modules/video_coding/media_optimization.h" +#include + #include "webrtc/base/logging.h" #include "webrtc/modules/video_coding/utility/frame_dropper.h" #include "webrtc/system_wrappers/include/clock.h" @@ -129,7 +131,9 @@ uint32_t MediaOptimization::InputFrameRate() { uint32_t MediaOptimization::InputFrameRateInternal() { ProcessIncomingFrameRate(clock_->TimeInMilliseconds()); - return uint32_t(incoming_frame_rate_ + 0.5f); + uint32_t framerate = static_cast(std::min( + std::numeric_limits::max(), incoming_frame_rate_ + 0.5f)); + return framerate; } uint32_t MediaOptimization::SentFrameRate() {