Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(28)

Side by Side Diff: webrtc/media/engine/webrtcvideoengine2.cc

Issue 2712683002: Add |protected_by_flexfec| flag to VideoReceiveStream::Config. (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 2277 matching lines...) Expand 10 before | Expand all | Expand 10 after
2288 2288
2289 void WebRtcVideoChannel2::WebRtcVideoReceiveStream::RecreateWebRtcStream() { 2289 void WebRtcVideoChannel2::WebRtcVideoReceiveStream::RecreateWebRtcStream() {
2290 if (stream_) { 2290 if (stream_) {
2291 call_->DestroyVideoReceiveStream(stream_); 2291 call_->DestroyVideoReceiveStream(stream_);
2292 stream_ = nullptr; 2292 stream_ = nullptr;
2293 } 2293 }
2294 if (flexfec_stream_) { 2294 if (flexfec_stream_) {
2295 call_->DestroyFlexfecReceiveStream(flexfec_stream_); 2295 call_->DestroyFlexfecReceiveStream(flexfec_stream_);
2296 flexfec_stream_ = nullptr; 2296 flexfec_stream_ = nullptr;
2297 } 2297 }
2298 if (IsFlexfecFieldTrialEnabled() && flexfec_config_.IsCompleteAndEnabled()) { 2298
2299 const bool use_flexfec =
2300 IsFlexfecFieldTrialEnabled() && flexfec_config_.IsCompleteAndEnabled();
2301 // TODO(nisse): There are way too many copies here. And why isn't
2302 // 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
2303 webrtc::VideoReceiveStream::Config config = config_.Copy();
2304 config.rtp.protected_by_flexfec = use_flexfec;
2305 stream_ = call_->CreateVideoReceiveStream(config.Copy());
2306 stream_->Start();
2307
2308 if (use_flexfec) {
2299 flexfec_stream_ = call_->CreateFlexfecReceiveStream(flexfec_config_); 2309 flexfec_stream_ = call_->CreateFlexfecReceiveStream(flexfec_config_);
2300 flexfec_stream_->Start(); 2310 flexfec_stream_->Start();
2301 } 2311 }
2302 stream_ = call_->CreateVideoReceiveStream(config_.Copy());
2303 stream_->Start();
2304 } 2312 }
2305 2313
2306 void WebRtcVideoChannel2::WebRtcVideoReceiveStream::ClearDecoders( 2314 void WebRtcVideoChannel2::WebRtcVideoReceiveStream::ClearDecoders(
2307 std::vector<AllocatedDecoder>* allocated_decoders) { 2315 std::vector<AllocatedDecoder>* allocated_decoders) {
2308 for (size_t i = 0; i < allocated_decoders->size(); ++i) { 2316 for (size_t i = 0; i < allocated_decoders->size(); ++i) {
2309 if ((*allocated_decoders)[i].external) { 2317 if ((*allocated_decoders)[i].external) {
2310 external_decoder_factory_->DestroyVideoDecoder( 2318 external_decoder_factory_->DestroyVideoDecoder(
2311 (*allocated_decoders)[i].external_decoder); 2319 (*allocated_decoders)[i].external_decoder);
2312 } 2320 }
2313 delete (*allocated_decoders)[i].decoder; 2321 delete (*allocated_decoders)[i].decoder;
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
2527 rtx_mapping[video_codecs[i].codec.id] != 2535 rtx_mapping[video_codecs[i].codec.id] !=
2528 ulpfec_config.red_payload_type) { 2536 ulpfec_config.red_payload_type) {
2529 video_codecs[i].rtx_payload_type = rtx_mapping[video_codecs[i].codec.id]; 2537 video_codecs[i].rtx_payload_type = rtx_mapping[video_codecs[i].codec.id];
2530 } 2538 }
2531 } 2539 }
2532 2540
2533 return video_codecs; 2541 return video_codecs;
2534 } 2542 }
2535 2543
2536 } // namespace cricket 2544 } // namespace cricket
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698