| Index: webrtc/modules/video_coding/video_sender.cc | 
| diff --git a/webrtc/modules/video_coding/video_sender.cc b/webrtc/modules/video_coding/video_sender.cc | 
| index c202d34e859819dabad29201dba1bef82b46d28d..b95d402323aa13aa6280b7534a54a5a732681127 100644 | 
| --- a/webrtc/modules/video_coding/video_sender.cc | 
| +++ b/webrtc/modules/video_coding/video_sender.cc | 
| @@ -33,11 +33,12 @@ VideoSender::VideoSender(Clock* clock, | 
| : clock_(clock), | 
| _encoder(nullptr), | 
| _mediaOpt(clock_), | 
| +      has_received_frame_(false), | 
| _encodedFrameCallback(post_encode_callback, &_mediaOpt), | 
| send_stats_callback_(send_stats_callback), | 
| _codecDataBase(&_encodedFrameCallback), | 
| frame_dropper_enabled_(true), | 
| -      _sendStatsTimer(1000, clock_), | 
| +      _sendStatsTimer(VCMProcessTimer::kDefaultProcessIntervalMs, clock_), | 
| current_codec_(), | 
| encoder_params_({BitrateAllocation(), 0, 0, 0}), | 
| encoder_has_internal_source_(false), | 
| @@ -139,6 +140,7 @@ int32_t VideoSender::RegisterSendCodec(const VideoCodec* sendCodec, | 
| sendCodec->startBitrate * 1000, sendCodec->width, | 
| sendCodec->height, sendCodec->maxFramerate, | 
| numLayers, maxPayloadSize); | 
| +  has_received_frame_ = false; | 
| return VCM_OK; | 
| } | 
|  | 
| @@ -199,6 +201,12 @@ EncoderParameters VideoSender::UpdateEncoderParameters( | 
| uint32_t video_target_rate_bps = _mediaOpt.SetTargetRates( | 
| target_bitrate_bps, params.loss_rate, params.rtt); | 
| uint32_t input_frame_rate = _mediaOpt.InputFrameRate(); | 
| +  if (input_frame_rate > 0) { | 
| +    has_received_frame_ = true; | 
| +  } else if (input_frame_rate == 0 && !has_received_frame_) { | 
| +    input_frame_rate = current_codec_.maxFramerate; | 
| +  } | 
| + | 
| BitrateAllocation bitrate_allocation; | 
| if (bitrate_allocator) { | 
| bitrate_allocation = bitrate_allocator->GetAllocation(video_target_rate_bps, | 
|  |