Index: webrtc/video/vie_encoder.cc |
diff --git a/webrtc/video/vie_encoder.cc b/webrtc/video/vie_encoder.cc |
index c1f6b0971afbbd3c87eed974cb13685e20b16870..3b7b277073f8810fd1aa1e9e6c9945bf8fc9222c 100644 |
--- a/webrtc/video/vie_encoder.cc |
+++ b/webrtc/video/vie_encoder.cc |
@@ -194,20 +194,19 @@ int32_t ViEEncoder::DeRegisterExternalEncoder(uint8_t pl_type) { |
} |
return 0; |
} |
- |
-int32_t ViEEncoder::SetEncoder(const webrtc::VideoCodec& video_codec) { |
+void ViEEncoder::SetEncoder(const webrtc::VideoCodec& video_codec) { |
RTC_DCHECK(send_payload_router_ != NULL); |
// Setting target width and height for VPM. |
- if (vp_->SetTargetResolution(video_codec.width, video_codec.height, |
- video_codec.maxFramerate) != VPM_OK) { |
- return -1; |
- } |
+ RTC_CHECK_EQ(VPM_OK, |
+ vp_->SetTargetResolution(video_codec.width, video_codec.height, |
+ video_codec.maxFramerate)); |
// Cache codec before calling AddBitrateObserver (which calls OnNetworkChanged |
// that makes use of the number of simulcast streams configured). |
{ |
rtc::CritScope lock(&data_cs_); |
encoder_config_ = video_codec; |
+ encoder_paused_ = true; |
} |
// Add a bitrate observer to the allocator and update the start, max and |
@@ -220,12 +219,15 @@ int32_t ViEEncoder::SetEncoder(const webrtc::VideoCodec& video_codec) { |
modified_video_codec.startBitrate = allocated_bitrate_bps / 1000; |
size_t max_data_payload_length = send_payload_router_->MaxPayloadLength(); |
- if (vcm_->RegisterSendCodec(&modified_video_codec, number_of_cores_, |
- static_cast<uint32_t>(max_data_payload_length)) != |
- VCM_OK) { |
- return -1; |
- } |
- return 0; |
+ RTC_CHECK_EQ(VCM_OK, vcm_->RegisterSendCodec( |
pbos-webrtc
2016/03/02 15:37:17
If you prefer we could not CHECK here but rather f
pbos-webrtc
2016/03/02 15:42:19
(Note that this CHECK was effectively in place for
stefan-webrtc
2016/03/02 15:56:33
DCHECK as discussed.
|
+ &modified_video_codec, number_of_cores_, |
+ static_cast<uint32_t>(max_data_payload_length))); |
+ |
+ send_payload_router_->SetSendingRtpModules( |
+ video_codec.numberOfSimulcastStreams); |
+ |
+ // Restart the media flow |
+ Restart(); |
} |
int ViEEncoder::GetPaddingNeededBps() const { |