| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 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 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 207 &stats_proxy_, | 207 &stats_proxy_, |
| 208 &overuse_detector_) { | 208 &overuse_detector_) { |
| 209 LOG(LS_INFO) << "VideoSendStream: " << config_.ToString(); | 209 LOG(LS_INFO) << "VideoSendStream: " << config_.ToString(); |
| 210 | 210 |
| 211 RTC_DCHECK(!config_.rtp.ssrcs.empty()); | 211 RTC_DCHECK(!config_.rtp.ssrcs.empty()); |
| 212 RTC_DCHECK(module_process_thread_); | 212 RTC_DCHECK(module_process_thread_); |
| 213 RTC_DCHECK(call_stats_); | 213 RTC_DCHECK(call_stats_); |
| 214 RTC_DCHECK(congestion_controller_); | 214 RTC_DCHECK(congestion_controller_); |
| 215 RTC_DCHECK(remb_); | 215 RTC_DCHECK(remb_); |
| 216 | 216 |
| 217 payload_router_.Init(rtp_rtcp_modules_); |
| 217 RTC_CHECK(vie_encoder_.Init()); | 218 RTC_CHECK(vie_encoder_.Init()); |
| 218 encoder_feedback_.Init(config_.rtp.ssrcs, &vie_encoder_); | 219 encoder_feedback_.Init(config_.rtp.ssrcs, &vie_encoder_); |
| 219 RTC_CHECK(vie_channel_.Init() == 0); | 220 RTC_CHECK(vie_channel_.Init() == 0); |
| 220 | 221 |
| 221 vcm_->RegisterProtectionCallback(vie_channel_.vcm_protection_callback()); | 222 vcm_->RegisterProtectionCallback(vie_channel_.vcm_protection_callback()); |
| 222 | 223 |
| 223 call_stats_->RegisterStatsObserver(vie_channel_.GetStatsObserver()); | 224 call_stats_->RegisterStatsObserver(vie_channel_.GetStatsObserver()); |
| 224 | 225 |
| 225 for (size_t i = 0; i < config_.rtp.extensions.size(); ++i) { | 226 for (size_t i = 0; i < config_.rtp.extensions.size(); ++i) { |
| 226 const std::string& extension = config_.rtp.extensions[i].name; | 227 const std::string& extension = config_.rtp.extensions[i].name; |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 272 rtp_rtcp_modules_.front()->SetCNAME(config_.rtp.c_name.c_str()); | 273 rtp_rtcp_modules_.front()->SetCNAME(config_.rtp.c_name.c_str()); |
| 273 // 28 to match packet overhead in ModuleRtpRtcpImpl. | 274 // 28 to match packet overhead in ModuleRtpRtcpImpl. |
| 274 static const size_t kRtpPacketSizeOverhead = 28; | 275 static const size_t kRtpPacketSizeOverhead = 28; |
| 275 RTC_DCHECK_LE(config_.rtp.max_packet_size, 0xFFFFu + kRtpPacketSizeOverhead); | 276 RTC_DCHECK_LE(config_.rtp.max_packet_size, 0xFFFFu + kRtpPacketSizeOverhead); |
| 276 const uint16_t mtu = static_cast<uint16_t>(config_.rtp.max_packet_size + | 277 const uint16_t mtu = static_cast<uint16_t>(config_.rtp.max_packet_size + |
| 277 kRtpPacketSizeOverhead); | 278 kRtpPacketSizeOverhead); |
| 278 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) { | 279 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) { |
| 279 rtp_rtcp->RegisterRtcpStatisticsCallback(&stats_proxy_); | 280 rtp_rtcp->RegisterRtcpStatisticsCallback(&stats_proxy_); |
| 280 rtp_rtcp->RegisterSendChannelRtpStatisticsCallback(&stats_proxy_); | 281 rtp_rtcp->RegisterSendChannelRtpStatisticsCallback(&stats_proxy_); |
| 281 rtp_rtcp->SetMaxTransferUnit(mtu); | 282 rtp_rtcp->SetMaxTransferUnit(mtu); |
| 283 rtp_rtcp->RegisterVideoSendPayload( |
| 284 config_.encoder_settings.payload_type, |
| 285 config_.encoder_settings.payload_name.c_str()); |
| 282 } | 286 } |
| 283 | 287 |
| 284 RTC_DCHECK(config.encoder_settings.encoder != nullptr); | 288 RTC_DCHECK(config.encoder_settings.encoder != nullptr); |
| 285 RTC_DCHECK_GE(config.encoder_settings.payload_type, 0); | 289 RTC_DCHECK_GE(config.encoder_settings.payload_type, 0); |
| 286 RTC_DCHECK_LE(config.encoder_settings.payload_type, 127); | 290 RTC_DCHECK_LE(config.encoder_settings.payload_type, 127); |
| 287 RTC_CHECK_EQ(0, vie_encoder_.RegisterExternalEncoder( | 291 RTC_CHECK_EQ(0, vie_encoder_.RegisterExternalEncoder( |
| 288 config.encoder_settings.encoder, | 292 config.encoder_settings.encoder, |
| 289 config.encoder_settings.payload_type, | 293 config.encoder_settings.payload_type, |
| 290 config.encoder_settings.internal_source)); | 294 config.encoder_settings.internal_source)); |
| 291 | 295 |
| (...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 617 return false; | 621 return false; |
| 618 } | 622 } |
| 619 | 623 |
| 620 // Restart the media flow | 624 // Restart the media flow |
| 621 vie_encoder_.Restart(); | 625 vie_encoder_.Restart(); |
| 622 | 626 |
| 623 return true; | 627 return true; |
| 624 } | 628 } |
| 625 } // namespace internal | 629 } // namespace internal |
| 626 } // namespace webrtc | 630 } // namespace webrtc |
| OLD | NEW |