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 14 matching lines...) Expand all Loading... |
25 #include "webrtc/config.h" | 25 #include "webrtc/config.h" |
26 #include "webrtc/logging/rtc_event_log/rtc_event_log.h" | 26 #include "webrtc/logging/rtc_event_log/rtc_event_log.h" |
27 #include "webrtc/modules/audio_coding/codecs/audio_format_conversion.h" | 27 #include "webrtc/modules/audio_coding/codecs/audio_format_conversion.h" |
28 #include "webrtc/modules/audio_device/include/audio_device.h" | 28 #include "webrtc/modules/audio_device/include/audio_device.h" |
29 #include "webrtc/modules/audio_processing/include/audio_processing.h" | 29 #include "webrtc/modules/audio_processing/include/audio_processing.h" |
30 #include "webrtc/modules/include/module_common_types.h" | 30 #include "webrtc/modules/include/module_common_types.h" |
31 #include "webrtc/modules/pacing/packet_router.h" | 31 #include "webrtc/modules/pacing/packet_router.h" |
32 #include "webrtc/modules/rtp_rtcp/include/receive_statistics.h" | 32 #include "webrtc/modules/rtp_rtcp/include/receive_statistics.h" |
33 #include "webrtc/modules/rtp_rtcp/include/rtp_payload_registry.h" | 33 #include "webrtc/modules/rtp_rtcp/include/rtp_payload_registry.h" |
34 #include "webrtc/modules/rtp_rtcp/include/rtp_receiver.h" | 34 #include "webrtc/modules/rtp_rtcp/include/rtp_receiver.h" |
| 35 #include "webrtc/modules/rtp_rtcp/source/rtp_packet_received.h" |
35 #include "webrtc/modules/rtp_rtcp/source/rtp_receiver_strategy.h" | 36 #include "webrtc/modules/rtp_rtcp/source/rtp_receiver_strategy.h" |
36 #include "webrtc/modules/utility/include/process_thread.h" | 37 #include "webrtc/modules/utility/include/process_thread.h" |
37 #include "webrtc/system_wrappers/include/trace.h" | 38 #include "webrtc/system_wrappers/include/trace.h" |
38 #include "webrtc/voice_engine/include/voe_external_media.h" | 39 #include "webrtc/voice_engine/include/voe_external_media.h" |
39 #include "webrtc/voice_engine/include/voe_rtp_rtcp.h" | 40 #include "webrtc/voice_engine/include/voe_rtp_rtcp.h" |
40 #include "webrtc/voice_engine/output_mixer.h" | 41 #include "webrtc/voice_engine/output_mixer.h" |
41 #include "webrtc/voice_engine/statistics.h" | 42 #include "webrtc/voice_engine/statistics.h" |
42 #include "webrtc/voice_engine/transmit_mixer.h" | 43 #include "webrtc/voice_engine/transmit_mixer.h" |
43 #include "webrtc/voice_engine/utility.h" | 44 #include "webrtc/voice_engine/utility.h" |
44 | 45 |
(...skipping 1582 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1627 _engineStatisticsPtr->SetLastError( | 1628 _engineStatisticsPtr->SetLastError( |
1628 VE_INVALID_OPERATION, kTraceWarning, | 1629 VE_INVALID_OPERATION, kTraceWarning, |
1629 "DeRegisterExternalTransport() external transport already " | 1630 "DeRegisterExternalTransport() external transport already " |
1630 "disabled"); | 1631 "disabled"); |
1631 } | 1632 } |
1632 _externalTransport = false; | 1633 _externalTransport = false; |
1633 _transportPtr = NULL; | 1634 _transportPtr = NULL; |
1634 return 0; | 1635 return 0; |
1635 } | 1636 } |
1636 | 1637 |
1637 int32_t Channel::ReceivedRTPPacket(const uint8_t* received_packet, | 1638 int32_t Channel::OnRTPPacket(const RtpPacketReceived& packet) { |
1638 size_t length, | |
1639 const PacketTime& packet_time) { | |
1640 WEBRTC_TRACE(kTraceStream, kTraceVoice, VoEId(_instanceId, _channelId), | 1639 WEBRTC_TRACE(kTraceStream, kTraceVoice, VoEId(_instanceId, _channelId), |
1641 "Channel::ReceivedRTPPacket()"); | 1640 "Channel::ReceivedRTPPacket()"); |
1642 | 1641 |
1643 // Store playout timestamp for the received RTP packet | 1642 // Store playout timestamp for the received RTP packet |
1644 UpdatePlayoutTimestamp(false); | 1643 UpdatePlayoutTimestamp(false); |
1645 | 1644 |
1646 RTPHeader header; | 1645 RTPHeader header; |
1647 if (!rtp_header_parser_->Parse(received_packet, length, &header)) { | 1646 packet.GetHeader(&header); |
1648 WEBRTC_TRACE(webrtc::kTraceDebug, webrtc::kTraceVoice, _channelId, | |
1649 "Incoming packet: invalid RTP header"); | |
1650 return -1; | |
1651 } | |
1652 header.payload_type_frequency = | 1647 header.payload_type_frequency = |
1653 rtp_payload_registry_->GetPayloadTypeFrequency(header.payloadType); | 1648 rtp_payload_registry_->GetPayloadTypeFrequency(header.payloadType); |
1654 if (header.payload_type_frequency < 0) | 1649 if (header.payload_type_frequency < 0) |
1655 return -1; | 1650 return -1; |
1656 bool in_order = IsPacketInOrder(header); | 1651 bool in_order = IsPacketInOrder(header); |
1657 rtp_receive_statistics_->IncomingPacket( | 1652 rtp_receive_statistics_->IncomingPacket( |
1658 header, length, IsPacketRetransmitted(header, in_order)); | 1653 header, packet.size(), IsPacketRetransmitted(header, in_order)); |
1659 rtp_payload_registry_->SetIncomingPayloadType(header); | 1654 rtp_payload_registry_->SetIncomingPayloadType(header); |
1660 | 1655 |
1661 return ReceivePacket(received_packet, length, header, in_order) ? 0 : -1; | 1656 // TODO(nisse): Is .data() and .size() right? |
| 1657 return ReceivePacket(packet.data(), packet.size(), header, in_order) ? 0 : -1; |
1662 } | 1658 } |
1663 | 1659 |
1664 bool Channel::ReceivePacket(const uint8_t* packet, | 1660 bool Channel::ReceivePacket(const uint8_t* packet, |
1665 size_t packet_length, | 1661 size_t packet_length, |
1666 const RTPHeader& header, | 1662 const RTPHeader& header, |
1667 bool in_order) { | 1663 bool in_order) { |
1668 if (rtp_payload_registry_->IsRtx(header)) { | 1664 if (rtp_payload_registry_->IsRtx(header)) { |
1669 return HandleRtxPacket(packet, packet_length, header); | 1665 return HandleRtxPacket(packet, packet_length, header); |
1670 } | 1666 } |
1671 const uint8_t* payload = packet + header.headerLength; | 1667 const uint8_t* payload = packet + header.headerLength; |
(...skipping 1652 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3324 int64_t min_rtt = 0; | 3320 int64_t min_rtt = 0; |
3325 if (_rtpRtcpModule->RTT(remoteSSRC, &rtt, &avg_rtt, &min_rtt, &max_rtt) != | 3321 if (_rtpRtcpModule->RTT(remoteSSRC, &rtt, &avg_rtt, &min_rtt, &max_rtt) != |
3326 0) { | 3322 0) { |
3327 return 0; | 3323 return 0; |
3328 } | 3324 } |
3329 return rtt; | 3325 return rtt; |
3330 } | 3326 } |
3331 | 3327 |
3332 } // namespace voe | 3328 } // namespace voe |
3333 } // namespace webrtc | 3329 } // namespace webrtc |
OLD | NEW |