aboutsummaryrefslogtreecommitdiff
path: root/audio
diff options
context:
space:
mode:
Diffstat (limited to 'audio')
-rw-r--r--audio/channel.cc27
-rw-r--r--audio/channel.h6
2 files changed, 15 insertions, 18 deletions
diff --git a/audio/channel.cc b/audio/channel.cc
index 4f9a0f1f8a..90443645ae 100644
--- a/audio/channel.cc
+++ b/audio/channel.cc
@@ -29,7 +29,6 @@
#include "modules/audio_processing/include/audio_processing.h"
#include "modules/pacing/packet_router.h"
#include "modules/rtp_rtcp/include/receive_statistics.h"
-#include "modules/rtp_rtcp/include/rtp_payload_registry.h"
#include "modules/rtp_rtcp/source/rtp_packet_received.h"
#include "modules/rtp_rtcp/source/rtp_receiver_strategy.h"
#include "modules/utility/include/process_thread.h"
@@ -495,7 +494,6 @@ Channel::Channel(ProcessThread* module_process_thread,
rtc::scoped_refptr<AudioDecoderFactory> decoder_factory,
absl::optional<AudioCodecPairId> codec_pair_id)
: event_log_(rtc_event_log),
- rtp_payload_registry_(new RTPPayloadRegistry()),
rtp_receive_statistics_(
ReceiveStatistics::Create(Clock::GetRealTimeClock())),
remote_ssrc_(remote_ssrc),
@@ -809,7 +807,10 @@ void Channel::OnUplinkPacketLossRate(float packet_loss_rate) {
}
void Channel::SetReceiveCodecs(const std::map<int, SdpAudioFormat>& codecs) {
- rtp_payload_registry_->SetAudioReceivePayloads(codecs);
+ for (const auto& kv : codecs) {
+ RTC_DCHECK_GE(kv.second.clockrate_hz, 1000);
+ payload_type_frequencies_[kv.first] = kv.second.clockrate_hz;
+ }
audio_coding_->SetReceiveCodecs(codecs);
}
@@ -870,14 +871,15 @@ void Channel::OnRtpPacket(const RtpPacketReceived& packet) {
// Store playout timestamp for the received RTP packet
UpdatePlayoutTimestamp(false);
- header.payload_type_frequency =
- rtp_payload_registry_->GetPayloadTypeFrequency(header.payloadType);
- if (header.payload_type_frequency >= 0) {
- rtp_receive_statistics_->IncomingPacket(header, packet.size(),
- IsPacketRetransmitted(header));
+ const auto& it = payload_type_frequencies_.find(header.payloadType);
+ if (it == payload_type_frequencies_.end())
+ return;
+ header.payload_type_frequency = it->second;
- ReceivePacket(packet.data(), packet.size(), header);
- }
+ rtp_receive_statistics_->IncomingPacket(header, packet.size(),
+ IsPacketRetransmitted(header));
+
+ ReceivePacket(packet.data(), packet.size(), header);
}
bool Channel::ReceivePacket(const uint8_t* packet,
@@ -886,11 +888,6 @@ bool Channel::ReceivePacket(const uint8_t* packet,
const uint8_t* payload = packet + header.headerLength;
assert(packet_length >= header.headerLength);
size_t payload_length = packet_length - header.headerLength;
- const auto pl =
- rtp_payload_registry_->PayloadTypeToPayload(header.payloadType);
- if (!pl) {
- return false;
- }
WebRtcRTPHeader webrtc_rtp_header = {};
webrtc_rtp_header.header = header;
diff --git a/audio/channel.h b/audio/channel.h
index 0676dbabf4..98f2613492 100644
--- a/audio/channel.h
+++ b/audio/channel.h
@@ -53,8 +53,6 @@ class RateLimiter;
class ReceiveStatistics;
class RemoteNtpTimeEstimator;
class RtcEventLog;
-class RTPPayloadRegistry;
-class RTPReceiverAudio;
class RtpPacketReceived;
class RtpRtcp;
class RtpTransportControllerSendInterface;
@@ -340,7 +338,9 @@ class Channel
RtcEventLog* const event_log_;
- std::unique_ptr<RTPPayloadRegistry> rtp_payload_registry_;
+ // Indexed by payload type.
+ std::map<uint8_t, int> payload_type_frequencies_;
+
std::unique_ptr<ReceiveStatistics> rtp_receive_statistics_;
std::unique_ptr<RtpRtcp> _rtpRtcpModule;
const uint32_t remote_ssrc_;