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() {