| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 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 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 147 | 147 |
| 148 if (config_.rtp.rtx_ssrc) { | 148 if (config_.rtp.rtx_ssrc) { |
| 149 // Needed for rtp_payload_registry_.RtxEnabled(). | 149 // Needed for rtp_payload_registry_.RtxEnabled(). |
| 150 rtp_payload_registry_.SetRtxSsrc(config_.rtp.rtx_ssrc); | 150 rtp_payload_registry_.SetRtxSsrc(config_.rtp.rtx_ssrc); |
| 151 } | 151 } |
| 152 | 152 |
| 153 if (IsUlpfecEnabled()) { | 153 if (IsUlpfecEnabled()) { |
| 154 VideoCodec ulpfec_codec = {}; | 154 VideoCodec ulpfec_codec = {}; |
| 155 ulpfec_codec.codecType = kVideoCodecULPFEC; | 155 ulpfec_codec.codecType = kVideoCodecULPFEC; |
| 156 strncpy(ulpfec_codec.plName, "ulpfec", sizeof(ulpfec_codec.plName)); | 156 strncpy(ulpfec_codec.plName, "ulpfec", sizeof(ulpfec_codec.plName)); |
| 157 ulpfec_codec.plType = config_.rtp.ulpfec.ulpfec_payload_type; | 157 ulpfec_codec.plType = config_.rtp.ulpfec_payload_type; |
| 158 RTC_CHECK(AddReceiveCodec(ulpfec_codec)); | 158 RTC_CHECK(AddReceiveCodec(ulpfec_codec)); |
| 159 } | 159 } |
| 160 | 160 |
| 161 if (IsRedEnabled()) { | 161 if (IsRedEnabled()) { |
| 162 VideoCodec red_codec = {}; | 162 VideoCodec red_codec = {}; |
| 163 red_codec.codecType = kVideoCodecRED; | 163 red_codec.codecType = kVideoCodecRED; |
| 164 strncpy(red_codec.plName, "red", sizeof(red_codec.plName)); | 164 strncpy(red_codec.plName, "red", sizeof(red_codec.plName)); |
| 165 red_codec.plType = config_.rtp.ulpfec.red_payload_type; | 165 red_codec.plType = config_.rtp.red_payload_type; |
| 166 RTC_CHECK(AddReceiveCodec(red_codec)); | 166 RTC_CHECK(AddReceiveCodec(red_codec)); |
| 167 } | 167 } |
| 168 | 168 |
| 169 if (config_.rtp.rtcp_xr.receiver_reference_time_report) | 169 if (config_.rtp.rtcp_xr.receiver_reference_time_report) |
| 170 rtp_rtcp_->SetRtcpXrRrtrStatus(true); | 170 rtp_rtcp_->SetRtcpXrRrtrStatus(true); |
| 171 | 171 |
| 172 // Stats callback for CNAME changes. | 172 // Stats callback for CNAME changes. |
| 173 rtp_rtcp_->RegisterRtcpStatisticsCallback(receive_stats_proxy); | 173 rtp_rtcp_->RegisterRtcpStatisticsCallback(receive_stats_proxy); |
| 174 | 174 |
| 175 process_thread_->RegisterModule(rtp_rtcp_.get(), RTC_FROM_HERE); | 175 process_thread_->RegisterModule(rtp_rtcp_.get(), RTC_FROM_HERE); |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 for (RtpPacketSinkInterface* secondary_sink : secondary_sinks_) { | 361 for (RtpPacketSinkInterface* secondary_sink : secondary_sinks_) { |
| 362 secondary_sink->OnRtpPacket(packet); | 362 secondary_sink->OnRtpPacket(packet); |
| 363 } | 363 } |
| 364 } | 364 } |
| 365 | 365 |
| 366 int32_t RtpVideoStreamReceiver::RequestKeyFrame() { | 366 int32_t RtpVideoStreamReceiver::RequestKeyFrame() { |
| 367 return rtp_rtcp_->RequestKeyFrame(); | 367 return rtp_rtcp_->RequestKeyFrame(); |
| 368 } | 368 } |
| 369 | 369 |
| 370 bool RtpVideoStreamReceiver::IsUlpfecEnabled() const { | 370 bool RtpVideoStreamReceiver::IsUlpfecEnabled() const { |
| 371 return config_.rtp.ulpfec.ulpfec_payload_type != -1; | 371 return config_.rtp.ulpfec_payload_type != -1; |
| 372 } | 372 } |
| 373 | 373 |
| 374 bool RtpVideoStreamReceiver::IsRedEnabled() const { | 374 bool RtpVideoStreamReceiver::IsRedEnabled() const { |
| 375 return config_.rtp.ulpfec.red_payload_type != -1; | 375 return config_.rtp.red_payload_type != -1; |
| 376 } | 376 } |
| 377 | 377 |
| 378 bool RtpVideoStreamReceiver::IsRetransmissionsEnabled() const { | 378 bool RtpVideoStreamReceiver::IsRetransmissionsEnabled() const { |
| 379 return config_.rtp.nack.rtp_history_ms > 0; | 379 return config_.rtp.nack.rtp_history_ms > 0; |
| 380 } | 380 } |
| 381 | 381 |
| 382 void RtpVideoStreamReceiver::RequestPacketRetransmit( | 382 void RtpVideoStreamReceiver::RequestPacketRetransmit( |
| 383 const std::vector<uint16_t>& sequence_numbers) { | 383 const std::vector<uint16_t>& sequence_numbers) { |
| 384 rtp_rtcp_->SendNack(sequence_numbers); | 384 rtp_rtcp_->SendNack(sequence_numbers); |
| 385 } | 385 } |
| (...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 673 return; | 673 return; |
| 674 | 674 |
| 675 if (!sprop_decoder.DecodeSprop(sprop_base64_it->second.c_str())) | 675 if (!sprop_decoder.DecodeSprop(sprop_base64_it->second.c_str())) |
| 676 return; | 676 return; |
| 677 | 677 |
| 678 tracker_.InsertSpsPpsNalus(sprop_decoder.sps_nalu(), | 678 tracker_.InsertSpsPpsNalus(sprop_decoder.sps_nalu(), |
| 679 sprop_decoder.pps_nalu()); | 679 sprop_decoder.pps_nalu()); |
| 680 } | 680 } |
| 681 | 681 |
| 682 } // namespace webrtc | 682 } // namespace webrtc |
| OLD | NEW |