| Index: webrtc/video/vie_encoder.cc
|
| diff --git a/webrtc/video/vie_encoder.cc b/webrtc/video/vie_encoder.cc
|
| index c1f6b0971afbbd3c87eed974cb13685e20b16870..1433879f2d623a3086009308bf9ddf9dd6f551d9 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,19 @@ 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;
|
| + bool success = vcm_->RegisterSendCodec(
|
| + &modified_video_codec, number_of_cores_,
|
| + static_cast<uint32_t>(max_data_payload_length)) == VCM_OK;
|
| + if (!success) {
|
| + LOG(LS_ERROR) << "Failed to configure encoder.";
|
| + RTC_DCHECK(success);
|
| }
|
| - return 0;
|
| +
|
| + send_payload_router_->SetSendingRtpModules(
|
| + video_codec.numberOfSimulcastStreams);
|
| +
|
| + // Restart the media flow
|
| + Restart();
|
| }
|
|
|
| int ViEEncoder::GetPaddingNeededBps() const {
|
|
|