Move RTP module activation into PayloadRouter.
Simplifies PayloadRouter to not accept dynamically-changing modules as
well as usage of PayloadRouter inside ViEChannel::SetSendCodec.
BUG=webrtc:5494
R=stefan@webrtc.org
TBR=mflodman@webrtc.org
Review URL: https://codereview.webrtc.org/1725363003 .
Cr-Commit-Position: refs/heads/master@{#11787}
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc b/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
index cbb085b..003a134 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
@@ -118,8 +118,6 @@
rtt_stats_(configuration.rtt_stats),
critical_section_rtt_(CriticalSectionWrapper::CreateCriticalSection()),
rtt_ms_(0) {
- send_video_codec_.codecType = kVideoCodecUnknown;
-
// Make sure that RTCP objects are aware of our SSRC.
uint32_t SSRC = rtp_sender_.SSRC();
rtcp_sender_.SetSSRC(SSRC);
@@ -269,11 +267,16 @@
}
int32_t ModuleRtpRtcpImpl::RegisterSendPayload(const VideoCodec& video_codec) {
- send_video_codec_ = video_codec;
return rtp_sender_.RegisterPayload(video_codec.plName, video_codec.plType,
90000, 0, 0);
}
+void ModuleRtpRtcpImpl::RegisterVideoSendPayload(int payload_type,
+ const char* payload_name) {
+ RTC_CHECK_EQ(
+ 0, rtp_sender_.RegisterPayload(payload_name, payload_type, 90000, 0, 0));
+}
+
int32_t ModuleRtpRtcpImpl::DeRegisterSendPayload(const int8_t payload_type) {
return rtp_sender_.DeRegisterSendPayload(payload_type);
}
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.h b/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.h
index 8c211e4..8fb7349 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.h
+++ b/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.h
@@ -51,6 +51,9 @@
int32_t RegisterSendPayload(const VideoCodec& video_codec) override;
+ void RegisterVideoSendPayload(int payload_type,
+ const char* payload_name) override;
+
int32_t DeRegisterSendPayload(int8_t payload_type) override;
int8_t SendPayloadType() const;
@@ -369,7 +372,6 @@
uint32_t nack_last_time_sent_full_prev_;
uint16_t nack_last_seq_number_sent_;
- VideoCodec send_video_codec_;
KeyFrameRequestMethod key_frame_req_method_;
RemoteBitrateEstimator* remote_bitrate_;
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender.cc b/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
index 97469ca..3197d60 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
@@ -304,7 +304,7 @@
uint32_t frequency,
size_t channels,
uint32_t rate) {
- assert(payload_name);
+ RTC_DCHECK_LT(strlen(payload_name), RTP_PAYLOAD_NAME_SIZE);
rtc::CritScope lock(&send_critsect_);
std::map<int8_t, RtpUtility::Payload*>::iterator it =
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender.h b/webrtc/modules/rtp_rtcp/source/rtp_sender.h
index 0e12428..5b6d4f7 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_sender.h
+++ b/webrtc/modules/rtp_rtcp/source/rtp_sender.h
@@ -114,10 +114,11 @@
// Includes size of RTP and FEC headers.
size_t MaxDataPayloadLength() const override;
- int32_t RegisterPayload(
- const char payload_name[RTP_PAYLOAD_NAME_SIZE],
- const int8_t payload_type, const uint32_t frequency,
- const size_t channels, const uint32_t rate);
+ int32_t RegisterPayload(const char* payload_name,
+ const int8_t payload_type,
+ const uint32_t frequency,
+ const size_t channels,
+ const uint32_t rate);
int32_t DeRegisterSendPayload(const int8_t payload_type);