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 b9c5ea547a40865cc18e1eb49c657504c22c31cc..61ab30701d2e569a7c3ec42fc194553de87e008b 100644 |
--- a/webrtc/modules/video_coding/video_sender.cc |
+++ b/webrtc/modules/video_coding/video_sender.cc |
@@ -219,19 +219,18 @@ int32_t VideoSender::SetChannelParameters(uint32_t target_bitrate, |
if (encoder_has_internal_source) { |
rtc::CritScope cs(&encoder_crit_); |
if (_encoder) { |
- SetEncoderParameters(encoder_params); |
+ SetEncoderParameters(encoder_params, encoder_has_internal_source); |
} |
} |
return VCM_OK; |
} |
-void VideoSender::SetEncoderParameters(EncoderParameters params) { |
+void VideoSender::SetEncoderParameters(EncoderParameters params, |
+ bool has_internal_source) { |
// |target_bitrate == 0 | means that the network is down or the send pacer is |
- // full. |
- // TODO(perkj): Consider setting |target_bitrate| == 0 to the encoders. |
- // Especially if |encoder_has_internal_source_ | == true. |
- if (params.target_bitrate == 0) |
+ // full. We currently only report this if the encoder has an internal source. |
pbos-webrtc
2016/06/16 13:16:28
Put a comment here instead to explain why we don't
perkj_webrtc
2016/06/16 18:42:17
Done.
|
+ if (!has_internal_source && params.target_bitrate == 0) |
return; |
if (params.input_frame_rate == 0) { |
@@ -258,15 +257,17 @@ int32_t VideoSender::AddVideoFrame(const VideoFrame& videoFrame, |
const CodecSpecificInfo* codecSpecificInfo) { |
EncoderParameters encoder_params; |
std::vector<FrameType> next_frame_types; |
+ bool encoder_has_internal_source = false; |
{ |
rtc::CritScope lock(¶ms_crit_); |
encoder_params = encoder_params_; |
next_frame_types = next_frame_types_; |
+ encoder_has_internal_source = encoder_has_internal_source_; |
} |
rtc::CritScope lock(&encoder_crit_); |
if (_encoder == nullptr) |
return VCM_UNINITIALIZED; |
- SetEncoderParameters(encoder_params); |
+ SetEncoderParameters(encoder_params, encoder_has_internal_source); |
if (_mediaOpt.DropFrame()) { |
LOG(LS_VERBOSE) << "Drop Frame " |
<< "target bitrate " << encoder_params.target_bitrate |