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 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
385 } | 385 } |
386 | 386 |
387 int32_t RTPSender::CheckPayloadType(int8_t payload_type, | 387 int32_t RTPSender::CheckPayloadType(int8_t payload_type, |
388 RtpVideoCodecTypes* video_type) { | 388 RtpVideoCodecTypes* video_type) { |
389 rtc::CritScope lock(&send_critsect_); | 389 rtc::CritScope lock(&send_critsect_); |
390 | 390 |
391 if (payload_type < 0) { | 391 if (payload_type < 0) { |
392 LOG(LS_ERROR) << "Invalid payload_type " << payload_type; | 392 LOG(LS_ERROR) << "Invalid payload_type " << payload_type; |
393 return -1; | 393 return -1; |
394 } | 394 } |
395 if (audio_configured_) { | |
396 int8_t red_pl_type = -1; | |
397 if (audio_->RED(&red_pl_type) == 0) { | |
398 // We have configured RED. | |
399 if (red_pl_type == payload_type) { | |
400 // And it's a match... | |
401 return 0; | |
402 } | |
403 } | |
404 } | |
405 if (payload_type_ == payload_type) { | 395 if (payload_type_ == payload_type) { |
406 if (!audio_configured_) { | 396 if (!audio_configured_) { |
407 *video_type = video_->VideoCodecType(); | 397 *video_type = video_->VideoCodecType(); |
408 } | 398 } |
409 return 0; | 399 return 0; |
410 } | 400 } |
411 std::map<int8_t, RtpUtility::Payload*>::iterator it = | 401 std::map<int8_t, RtpUtility::Payload*>::iterator it = |
412 payload_type_map_.find(payload_type); | 402 payload_type_map_.find(payload_type); |
413 if (it == payload_type_map_.end()) { | 403 if (it == payload_type_map_.end()) { |
414 LOG(LS_WARNING) << "Payload type " << static_cast<int>(payload_type) | 404 LOG(LS_WARNING) << "Payload type " << static_cast<int>(payload_type) |
(...skipping 1202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1617 if (!audio_configured_) { | 1607 if (!audio_configured_) { |
1618 return -1; | 1608 return -1; |
1619 } | 1609 } |
1620 return audio_->SetAudioPacketSize(packet_size_samples); | 1610 return audio_->SetAudioPacketSize(packet_size_samples); |
1621 } | 1611 } |
1622 | 1612 |
1623 int32_t RTPSender::SetAudioLevel(uint8_t level_d_bov) { | 1613 int32_t RTPSender::SetAudioLevel(uint8_t level_d_bov) { |
1624 return audio_->SetAudioLevel(level_d_bov); | 1614 return audio_->SetAudioLevel(level_d_bov); |
1625 } | 1615 } |
1626 | 1616 |
1627 int32_t RTPSender::SetRED(int8_t payload_type) { | |
1628 if (!audio_configured_) { | |
1629 return -1; | |
1630 } | |
1631 return audio_->SetRED(payload_type); | |
1632 } | |
1633 | |
1634 int32_t RTPSender::RED(int8_t *payload_type) const { | |
1635 if (!audio_configured_) { | |
1636 return -1; | |
1637 } | |
1638 return audio_->RED(payload_type); | |
1639 } | |
1640 | |
1641 RtpVideoCodecTypes RTPSender::VideoCodecType() const { | 1617 RtpVideoCodecTypes RTPSender::VideoCodecType() const { |
1642 assert(!audio_configured_ && "Sender is an audio stream!"); | 1618 assert(!audio_configured_ && "Sender is an audio stream!"); |
1643 return video_->VideoCodecType(); | 1619 return video_->VideoCodecType(); |
1644 } | 1620 } |
1645 | 1621 |
1646 void RTPSender::SetGenericFECStatus(bool enable, | 1622 void RTPSender::SetGenericFECStatus(bool enable, |
1647 uint8_t payload_type_red, | 1623 uint8_t payload_type_red, |
1648 uint8_t payload_type_fec) { | 1624 uint8_t payload_type_fec) { |
1649 RTC_DCHECK(!audio_configured_); | 1625 RTC_DCHECK(!audio_configured_); |
1650 video_->SetGenericFECStatus(enable, payload_type_red, payload_type_fec); | 1626 video_->SetGenericFECStatus(enable, payload_type_red, payload_type_fec); |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1758 rtc::CritScope lock(&send_critsect_); | 1734 rtc::CritScope lock(&send_critsect_); |
1759 | 1735 |
1760 RtpState state; | 1736 RtpState state; |
1761 state.sequence_number = sequence_number_rtx_; | 1737 state.sequence_number = sequence_number_rtx_; |
1762 state.start_timestamp = start_timestamp_; | 1738 state.start_timestamp = start_timestamp_; |
1763 | 1739 |
1764 return state; | 1740 return state; |
1765 } | 1741 } |
1766 | 1742 |
1767 } // namespace webrtc | 1743 } // namespace webrtc |
OLD | NEW |