Chromium Code Reviews| Index: webrtc/media/engine/webrtcvideoengine2.cc |
| diff --git a/webrtc/media/engine/webrtcvideoengine2.cc b/webrtc/media/engine/webrtcvideoengine2.cc |
| index c192b52402ee95ef3f2ffd9dbe25f65ded5ecf6d..f3d16ff2730454cd00e6540f6107a7ae26587a32 100644 |
| --- a/webrtc/media/engine/webrtcvideoengine2.cc |
| +++ b/webrtc/media/engine/webrtcvideoengine2.cc |
| @@ -2295,12 +2295,20 @@ void WebRtcVideoChannel2::WebRtcVideoReceiveStream::RecreateWebRtcStream() { |
| call_->DestroyFlexfecReceiveStream(flexfec_stream_); |
| flexfec_stream_ = nullptr; |
| } |
| - if (IsFlexfecFieldTrialEnabled() && flexfec_config_.IsCompleteAndEnabled()) { |
| + |
| + const bool use_flexfec = |
| + IsFlexfecFieldTrialEnabled() && flexfec_config_.IsCompleteAndEnabled(); |
| + // TODO(nisse): There are way too many copies here. And why isn't |
| + // the argument to CreateVideoReceiveStream a const ref? |
|
brandtr
2017/02/23 11:58:32
Agree that this should be cleaned up at some point
nisse-webrtc
2017/02/23 13:01:22
I noticed a std::move(configuration) in Call::Crea
brandtr
2017/02/23 15:28:35
I guess that std::move saves a copy at that call s
|
| + webrtc::VideoReceiveStream::Config config = config_.Copy(); |
| + config.rtp.protected_by_flexfec = use_flexfec; |
| + stream_ = call_->CreateVideoReceiveStream(config.Copy()); |
| + stream_->Start(); |
| + |
| + if (use_flexfec) { |
| flexfec_stream_ = call_->CreateFlexfecReceiveStream(flexfec_config_); |
| flexfec_stream_->Start(); |
| } |
| - stream_ = call_->CreateVideoReceiveStream(config_.Copy()); |
| - stream_->Start(); |
| } |
| void WebRtcVideoChannel2::WebRtcVideoReceiveStream::ClearDecoders( |