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

Side by Side Diff: webrtc/voice_engine/channel.cc

Issue 3006913002: Delete remnants of RTX support in voice_engine. (Closed)
Patch Set: Delete unused members and size constant. Created 3 years, 3 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) 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 887 matching lines...) Expand 10 before | Expand all | Expand 10 after
898 _callbackCritSectPtr(NULL), 898 _callbackCritSectPtr(NULL),
899 _transportPtr(NULL), 899 _transportPtr(NULL),
900 input_mute_(false), 900 input_mute_(false),
901 previous_frame_muted_(false), 901 previous_frame_muted_(false),
902 _outputGain(1.0f), 902 _outputGain(1.0f),
903 _mixFileWithMicrophone(false), 903 _mixFileWithMicrophone(false),
904 _includeAudioLevelIndication(false), 904 _includeAudioLevelIndication(false),
905 transport_overhead_per_packet_(0), 905 transport_overhead_per_packet_(0),
906 rtp_overhead_per_packet_(0), 906 rtp_overhead_per_packet_(0),
907 _outputSpeechType(AudioFrame::kNormalSpeech), 907 _outputSpeechType(AudioFrame::kNormalSpeech),
908 restored_packet_in_use_(false),
909 rtcp_observer_(new VoERtcpObserver(this)), 908 rtcp_observer_(new VoERtcpObserver(this)),
910 associate_send_channel_(ChannelOwner(nullptr)), 909 associate_send_channel_(ChannelOwner(nullptr)),
911 pacing_enabled_(config.enable_voice_pacing), 910 pacing_enabled_(config.enable_voice_pacing),
912 feedback_observer_proxy_(new TransportFeedbackProxy()), 911 feedback_observer_proxy_(new TransportFeedbackProxy()),
913 seq_num_allocator_proxy_(new TransportSequenceNumberProxy()), 912 seq_num_allocator_proxy_(new TransportSequenceNumberProxy()),
914 rtp_packet_sender_proxy_(new RtpPacketSenderProxy()), 913 rtp_packet_sender_proxy_(new RtpPacketSenderProxy()),
915 retransmission_rate_limiter_(new RateLimiter(Clock::GetRealTimeClock(), 914 retransmission_rate_limiter_(new RateLimiter(Clock::GetRealTimeClock(),
916 kMaxRetransmissionWindowMs)), 915 kMaxRetransmissionWindowMs)),
917 decoder_factory_(config.acm_config.decoder_factory), 916 decoder_factory_(config.acm_config.decoder_factory),
918 use_twcc_plr_for_ana_( 917 use_twcc_plr_for_ana_(
(...skipping 821 matching lines...) Expand 10 before | Expand all | Expand 10 after
1740 1739
1741 RTPHeader header; 1740 RTPHeader header;
1742 packet.GetHeader(&header); 1741 packet.GetHeader(&header);
1743 OnRtpPacketWithHeader(packet.data(), packet.size(), &header); 1742 OnRtpPacketWithHeader(packet.data(), packet.size(), &header);
1744 } 1743 }
1745 1744
1746 bool Channel::ReceivePacket(const uint8_t* packet, 1745 bool Channel::ReceivePacket(const uint8_t* packet,
1747 size_t packet_length, 1746 size_t packet_length,
1748 const RTPHeader& header, 1747 const RTPHeader& header,
1749 bool in_order) { 1748 bool in_order) {
1750 if (rtp_payload_registry_->IsRtx(header)) {
1751 return HandleRtxPacket(packet, packet_length, header);
1752 }
1753 const uint8_t* payload = packet + header.headerLength; 1749 const uint8_t* payload = packet + header.headerLength;
1754 assert(packet_length >= header.headerLength); 1750 assert(packet_length >= header.headerLength);
1755 size_t payload_length = packet_length - header.headerLength; 1751 size_t payload_length = packet_length - header.headerLength;
1756 PayloadUnion payload_specific; 1752 PayloadUnion payload_specific;
1757 if (!rtp_payload_registry_->GetPayloadSpecifics(header.payloadType, 1753 if (!rtp_payload_registry_->GetPayloadSpecifics(header.payloadType,
1758 &payload_specific)) { 1754 &payload_specific)) {
1759 return false; 1755 return false;
1760 } 1756 }
1761 return rtp_receiver_->IncomingRtpPacket(header, payload, payload_length, 1757 return rtp_receiver_->IncomingRtpPacket(header, payload, payload_length,
1762 payload_specific, in_order); 1758 payload_specific, in_order);
1763 } 1759 }
1764 1760
1765 bool Channel::HandleRtxPacket(const uint8_t* packet,
1766 size_t packet_length,
1767 const RTPHeader& header) {
1768 if (!rtp_payload_registry_->IsRtx(header))
1769 return false;
1770
1771 // Remove the RTX header and parse the original RTP header.
1772 if (packet_length < header.headerLength)
1773 return false;
1774 if (packet_length > kVoiceEngineMaxIpPacketSizeBytes)
1775 return false;
1776 if (restored_packet_in_use_) {
1777 WEBRTC_TRACE(webrtc::kTraceDebug, webrtc::kTraceVoice, _channelId,
1778 "Multiple RTX headers detected, dropping packet");
1779 return false;
1780 }
1781 if (!rtp_payload_registry_->RestoreOriginalPacket(
1782 restored_packet_, packet, &packet_length, rtp_receiver_->SSRC(),
1783 header)) {
1784 WEBRTC_TRACE(webrtc::kTraceDebug, webrtc::kTraceVoice, _channelId,
1785 "Incoming RTX packet: invalid RTP header");
1786 return false;
1787 }
1788 restored_packet_in_use_ = true;
1789 bool ret = OnRecoveredPacket(restored_packet_, packet_length);
1790 restored_packet_in_use_ = false;
1791 return ret;
1792 }
1793
1794 bool Channel::IsPacketInOrder(const RTPHeader& header) const { 1761 bool Channel::IsPacketInOrder(const RTPHeader& header) const {
1795 StreamStatistician* statistician = 1762 StreamStatistician* statistician =
1796 rtp_receive_statistics_->GetStatistician(header.ssrc); 1763 rtp_receive_statistics_->GetStatistician(header.ssrc);
1797 if (!statistician) 1764 if (!statistician)
1798 return false; 1765 return false;
1799 return statistician->IsPacketInOrder(header.sequenceNumber); 1766 return statistician->IsPacketInOrder(header.sequenceNumber);
1800 } 1767 }
1801 1768
1802 bool Channel::IsPacketRetransmitted(const RTPHeader& header, 1769 bool Channel::IsPacketRetransmitted(const RTPHeader& header,
1803 bool in_order) const { 1770 bool in_order) const {
1804 // Retransmissions are handled separately if RTX is enabled.
1805 if (rtp_payload_registry_->RtxEnabled())
1806 return false;
1807 StreamStatistician* statistician = 1771 StreamStatistician* statistician =
1808 rtp_receive_statistics_->GetStatistician(header.ssrc); 1772 rtp_receive_statistics_->GetStatistician(header.ssrc);
1809 if (!statistician) 1773 if (!statistician)
1810 return false; 1774 return false;
1811 // Check if this is a retransmission. 1775 // Check if this is a retransmission.
1812 int64_t min_rtt = 0; 1776 int64_t min_rtt = 0;
1813 _rtpRtcpModule->RTT(rtp_receiver_->SSRC(), NULL, NULL, &min_rtt, NULL); 1777 _rtpRtcpModule->RTT(rtp_receiver_->SSRC(), NULL, NULL, &min_rtt, NULL);
1814 return !in_order && statistician->IsRetransmitOfOldPacket(header, min_rtt); 1778 return !in_order && statistician->IsRetransmitOfOldPacket(header, min_rtt);
1815 } 1779 }
1816 1780
(...skipping 1348 matching lines...) Expand 10 before | Expand all | Expand 10 after
3165 int64_t min_rtt = 0; 3129 int64_t min_rtt = 0;
3166 if (_rtpRtcpModule->RTT(remoteSSRC, &rtt, &avg_rtt, &min_rtt, &max_rtt) != 3130 if (_rtpRtcpModule->RTT(remoteSSRC, &rtt, &avg_rtt, &min_rtt, &max_rtt) !=
3167 0) { 3131 0) {
3168 return 0; 3132 return 0;
3169 } 3133 }
3170 return rtt; 3134 return rtt;
3171 } 3135 }
3172 3136
3173 } // namespace voe 3137 } // namespace voe
3174 } // namespace webrtc 3138 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698