Remove more trampoline functions from ChannelManager
Bug: webrtc:13931
Change-Id: I3a1b48aeffd91ee6abaf78eb1ec69c1653b210e6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262640
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36898}
diff --git a/pc/channel_manager.cc b/pc/channel_manager.cc
index e13db54..4b08843 100644
--- a/pc/channel_manager.cc
+++ b/pc/channel_manager.cc
@@ -121,34 +121,6 @@
}
}
-RtpHeaderExtensions ChannelManager::GetDefaultEnabledAudioRtpHeaderExtensions()
- const {
- if (!media_engine_)
- return {};
- return GetDefaultEnabledRtpHeaderExtensions(media_engine_->voice());
-}
-
-std::vector<webrtc::RtpHeaderExtensionCapability>
-ChannelManager::GetSupportedAudioRtpHeaderExtensions() const {
- if (!media_engine_)
- return {};
- return media_engine_->voice().GetRtpHeaderExtensions();
-}
-
-RtpHeaderExtensions ChannelManager::GetDefaultEnabledVideoRtpHeaderExtensions()
- const {
- if (!media_engine_)
- return {};
- return GetDefaultEnabledRtpHeaderExtensions(media_engine_->video());
-}
-
-std::vector<webrtc::RtpHeaderExtensionCapability>
-ChannelManager::GetSupportedVideoRtpHeaderExtensions() const {
- if (!media_engine_)
- return {};
- return media_engine_->video().GetRtpHeaderExtensions();
-}
-
std::unique_ptr<VoiceChannel> ChannelManager::CreateVoiceChannel(
webrtc::Call* call,
const MediaConfig& media_config,
@@ -224,15 +196,4 @@
return video_channel;
}
-bool ChannelManager::StartAecDump(webrtc::FileWrapper file,
- int64_t max_size_bytes) {
- RTC_DCHECK_RUN_ON(worker_thread_);
- return media_engine_->voice().StartAecDump(std::move(file), max_size_bytes);
-}
-
-void ChannelManager::StopAecDump() {
- RTC_DCHECK_RUN_ON(worker_thread_);
- media_engine_->voice().StopAecDump();
-}
-
} // namespace cricket
diff --git a/pc/channel_manager.h b/pc/channel_manager.h
index 8d1ec28..693b552 100644
--- a/pc/channel_manager.h
+++ b/pc/channel_manager.h
@@ -69,12 +69,6 @@
void GetSupportedAudioReceiveCodecs(std::vector<AudioCodec>* codecs) const;
void GetSupportedVideoSendCodecs(std::vector<VideoCodec>* codecs) const;
void GetSupportedVideoReceiveCodecs(std::vector<VideoCodec>* codecs) const;
- RtpHeaderExtensions GetDefaultEnabledAudioRtpHeaderExtensions() const;
- std::vector<webrtc::RtpHeaderExtensionCapability>
- GetSupportedAudioRtpHeaderExtensions() const;
- RtpHeaderExtensions GetDefaultEnabledVideoRtpHeaderExtensions() const;
- std::vector<webrtc::RtpHeaderExtensionCapability>
- GetSupportedVideoRtpHeaderExtensions() const;
// The operations below all occur on the worker thread.
// The caller is responsible for ensuring that destruction happens
@@ -102,14 +96,6 @@
webrtc::VideoBitrateAllocatorFactory* video_bitrate_allocator_factory)
override;
- // Starts AEC dump using existing file, with a specified maximum file size in
- // bytes. When the limit is reached, logging will stop and the file will be
- // closed. If max_size_bytes is set to <= 0, no limit will be used.
- bool StartAecDump(webrtc::FileWrapper file, int64_t max_size_bytes);
-
- // Stops recording AEC dump.
- void StopAecDump();
-
protected:
ChannelManager(std::unique_ptr<MediaEngineInterface> media_engine,
bool enable_rtx,
diff --git a/pc/peer_connection_factory.cc b/pc/peer_connection_factory.cc
index 6e6a72c..0fece2d 100644
--- a/pc/peer_connection_factory.cc
+++ b/pc/peer_connection_factory.cc
@@ -129,17 +129,17 @@
switch (kind) {
case cricket::MEDIA_TYPE_AUDIO: {
cricket::AudioCodecs cricket_codecs;
- channel_manager()->GetSupportedAudioSendCodecs(&cricket_codecs);
- return ToRtpCapabilities(
- cricket_codecs,
- channel_manager()->GetDefaultEnabledAudioRtpHeaderExtensions());
+ cricket_codecs = media_engine()->voice().send_codecs();
+ auto extensions =
+ GetDefaultEnabledRtpHeaderExtensions(media_engine()->voice());
+ return ToRtpCapabilities(cricket_codecs, extensions);
}
case cricket::MEDIA_TYPE_VIDEO: {
cricket::VideoCodecs cricket_codecs;
- channel_manager()->GetSupportedVideoSendCodecs(&cricket_codecs);
- return ToRtpCapabilities(
- cricket_codecs,
- channel_manager()->GetDefaultEnabledVideoRtpHeaderExtensions());
+ cricket_codecs = media_engine()->video().send_codecs();
+ auto extensions =
+ GetDefaultEnabledRtpHeaderExtensions(media_engine()->video());
+ return ToRtpCapabilities(cricket_codecs, extensions);
}
case cricket::MEDIA_TYPE_DATA:
return RtpCapabilities();
@@ -156,17 +156,17 @@
switch (kind) {
case cricket::MEDIA_TYPE_AUDIO: {
cricket::AudioCodecs cricket_codecs;
- channel_manager()->GetSupportedAudioReceiveCodecs(&cricket_codecs);
- return ToRtpCapabilities(
- cricket_codecs,
- channel_manager()->GetDefaultEnabledAudioRtpHeaderExtensions());
+ cricket_codecs = media_engine()->voice().recv_codecs();
+ auto extensions =
+ GetDefaultEnabledRtpHeaderExtensions(media_engine()->voice());
+ return ToRtpCapabilities(cricket_codecs, extensions);
}
case cricket::MEDIA_TYPE_VIDEO: {
cricket::VideoCodecs cricket_codecs;
channel_manager()->GetSupportedVideoReceiveCodecs(&cricket_codecs);
- return ToRtpCapabilities(
- cricket_codecs,
- channel_manager()->GetDefaultEnabledVideoRtpHeaderExtensions());
+ auto extensions =
+ GetDefaultEnabledRtpHeaderExtensions(media_engine()->video());
+ return ToRtpCapabilities(cricket_codecs, extensions);
}
case cricket::MEDIA_TYPE_DATA:
return RtpCapabilities();
@@ -187,12 +187,19 @@
bool PeerConnectionFactory::StartAecDump(FILE* file, int64_t max_size_bytes) {
RTC_DCHECK_RUN_ON(worker_thread());
- return channel_manager()->StartAecDump(FileWrapper(file), max_size_bytes);
+ return media_engine()->voice().StartAecDump(FileWrapper(file),
+ max_size_bytes);
}
void PeerConnectionFactory::StopAecDump() {
RTC_DCHECK_RUN_ON(worker_thread());
- channel_manager()->StopAecDump();
+ media_engine()->voice().StopAecDump();
+}
+
+cricket::MediaEngineInterface* PeerConnectionFactory::media_engine() const {
+ RTC_DCHECK(context_);
+ RTC_DCHECK(context_->channel_manager());
+ return context_->channel_manager()->media_engine();
}
RTCErrorOr<rtc::scoped_refptr<PeerConnectionInterface>>
diff --git a/pc/peer_connection_factory.h b/pc/peer_connection_factory.h
index ff3d515..917f054 100644
--- a/pc/peer_connection_factory.h
+++ b/pc/peer_connection_factory.h
@@ -120,6 +120,8 @@
return context_->field_trials();
}
+ cricket::MediaEngineInterface* media_engine() const;
+
protected:
// Constructor used by the static Create() method. Modifies the dependencies.
PeerConnectionFactory(rtc::scoped_refptr<ConnectionContext> context,
diff --git a/pc/rtp_transceiver_unittest.cc b/pc/rtp_transceiver_unittest.cc
index ce2eefc..3c4b2c9 100644
--- a/pc/rtp_transceiver_unittest.cc
+++ b/pc/rtp_transceiver_unittest.cc
@@ -126,7 +126,7 @@
rtc::Thread::Current(),
receiver_),
&channel_manager_,
- channel_manager_.GetSupportedAudioRtpHeaderExtensions(),
+ channel_manager_.media_engine()->voice().GetRtpHeaderExtensions(),
/* on_negotiation_needed= */ [] {})) {}
static rtc::scoped_refptr<MockRtpReceiverInternal> MockReceiver() {
diff --git a/pc/rtp_transmission_manager.cc b/pc/rtp_transmission_manager.cc
index 6939a07..b2520d5 100644
--- a/pc/rtp_transmission_manager.cc
+++ b/pc/rtp_transmission_manager.cc
@@ -273,8 +273,8 @@
rtc::make_ref_counted<RtpTransceiver>(
sender, receiver, channel_manager(),
sender->media_type() == cricket::MEDIA_TYPE_AUDIO
- ? channel_manager()->GetSupportedAudioRtpHeaderExtensions()
- : channel_manager()->GetSupportedVideoRtpHeaderExtensions(),
+ ? media_engine()->voice().GetRtpHeaderExtensions()
+ : media_engine()->video().GetRtpHeaderExtensions(),
[this_weak_ptr = weak_ptr_factory_.GetWeakPtr()]() {
if (this_weak_ptr) {
this_weak_ptr->OnNegotiationNeeded();
@@ -690,4 +690,8 @@
return nullptr;
}
+cricket::MediaEngineInterface* RtpTransmissionManager::media_engine() const {
+ return channel_manager()->media_engine();
+}
+
} // namespace webrtc
diff --git a/pc/rtp_transmission_manager.h b/pc/rtp_transmission_manager.h
index 6e25f2d..532adcf 100644
--- a/pc/rtp_transmission_manager.h
+++ b/pc/rtp_transmission_manager.h
@@ -244,6 +244,8 @@
PeerConnectionObserver* Observer() const;
void OnNegotiationNeeded();
+ cricket::MediaEngineInterface* media_engine() const;
+
TransceiverList transceivers_;
// These lists store sender info seen in local/remote descriptions.
diff --git a/pc/sdp_offer_answer.cc b/pc/sdp_offer_answer.cc
index 141d3fe..b1afd5c 100644
--- a/pc/sdp_offer_answer.cc
+++ b/pc/sdp_offer_answer.cc
@@ -1255,12 +1255,20 @@
cricket::ChannelManager* SdpOfferAnswerHandler::channel_manager() const {
return context_->channel_manager();
}
+
+cricket::MediaEngineInterface* SdpOfferAnswerHandler::media_engine() const {
+ RTC_DCHECK(context_);
+ RTC_DCHECK(context_->channel_manager());
+ return context_->channel_manager()->media_engine();
+}
+
TransceiverList* SdpOfferAnswerHandler::transceivers() {
if (!pc_->rtp_manager()) {
return nullptr;
}
return pc_->rtp_manager()->transceivers();
}
+
const TransceiverList* SdpOfferAnswerHandler::transceivers() const {
if (!pc_->rtp_manager()) {
return nullptr;
@@ -3886,7 +3894,7 @@
cricket::MEDIA_TYPE_AUDIO, cricket::CN_AUDIO,
RtpTransceiverDirectionFromSendRecv(send_audio, recv_audio), false);
options.header_extensions =
- channel_manager()->GetSupportedAudioRtpHeaderExtensions();
+ media_engine()->voice().GetRtpHeaderExtensions();
session_options->media_description_options.push_back(options);
audio_index = session_options->media_description_options.size() - 1;
}
@@ -3895,7 +3903,7 @@
cricket::MEDIA_TYPE_VIDEO, cricket::CN_VIDEO,
RtpTransceiverDirectionFromSendRecv(send_video, recv_video), false);
options.header_extensions =
- channel_manager()->GetSupportedVideoRtpHeaderExtensions();
+ media_engine()->video().GetRtpHeaderExtensions();
session_options->media_description_options.push_back(options);
video_index = session_options->media_description_options.size() - 1;
}
@@ -4960,7 +4968,7 @@
*audio_index = session_options->media_description_options.size() - 1;
}
session_options->media_description_options.back().header_extensions =
- channel_manager()->GetSupportedAudioRtpHeaderExtensions();
+ media_engine()->voice().GetRtpHeaderExtensions();
} else if (IsVideoContent(&content)) {
// If we already have an video m= section, reject this extra one.
if (*video_index) {
@@ -4977,7 +4985,7 @@
*video_index = session_options->media_description_options.size() - 1;
}
session_options->media_description_options.back().header_extensions =
- channel_manager()->GetSupportedVideoRtpHeaderExtensions();
+ media_engine()->video().GetRtpHeaderExtensions();
} else if (IsUnsupportedContent(&content)) {
session_options->media_description_options.push_back(
cricket::MediaDescriptionOptions(cricket::MEDIA_TYPE_UNSUPPORTED,
diff --git a/pc/sdp_offer_answer.h b/pc/sdp_offer_answer.h
index de814ec..ab3dc20 100644
--- a/pc/sdp_offer_answer.h
+++ b/pc/sdp_offer_answer.h
@@ -576,6 +576,7 @@
// ==================================================================
// Access to pc_ variables
cricket::ChannelManager* channel_manager() const;
+ cricket::MediaEngineInterface* media_engine() const;
TransceiverList* transceivers();
const TransceiverList* transceivers() const;
DataChannelController* data_channel_controller();