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}
This commit is contained in:
committed by
WebRTC LUCI CQ
parent
2698353d43
commit
35f4b4c755
@ -121,34 +121,6 @@ void ChannelManager::GetSupportedVideoReceiveCodecs(
|
||||
}
|
||||
}
|
||||
|
||||
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 @@ std::unique_ptr<VideoChannel> ChannelManager::CreateVideoChannel(
|
||||
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
|
||||
|
||||
@ -69,12 +69,6 @@ class ChannelManager : public ChannelFactoryInterface {
|
||||
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 @@ class ChannelManager : public ChannelFactoryInterface {
|
||||
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,
|
||||
|
||||
@ -129,17 +129,17 @@ RtpCapabilities PeerConnectionFactory::GetRtpSenderCapabilities(
|
||||
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 @@ RtpCapabilities PeerConnectionFactory::GetRtpReceiverCapabilities(
|
||||
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 @@ PeerConnectionFactory::CreateAudioSource(const cricket::AudioOptions& options) {
|
||||
|
||||
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>>
|
||||
|
||||
@ -120,6 +120,8 @@ class PeerConnectionFactory : public PeerConnectionFactoryInterface {
|
||||
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,
|
||||
|
||||
@ -126,7 +126,7 @@ class RtpTransceiverUnifiedPlanTest : public ::testing::Test {
|
||||
rtc::Thread::Current(),
|
||||
receiver_),
|
||||
&channel_manager_,
|
||||
channel_manager_.GetSupportedAudioRtpHeaderExtensions(),
|
||||
channel_manager_.media_engine()->voice().GetRtpHeaderExtensions(),
|
||||
/* on_negotiation_needed= */ [] {})) {}
|
||||
|
||||
static rtc::scoped_refptr<MockRtpReceiverInternal> MockReceiver() {
|
||||
|
||||
@ -273,8 +273,8 @@ RtpTransmissionManager::CreateAndAddTransceiver(
|
||||
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 @@ RtpTransmissionManager::FindReceiverById(const std::string& receiver_id) const {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
cricket::MediaEngineInterface* RtpTransmissionManager::media_engine() const {
|
||||
return channel_manager()->media_engine();
|
||||
}
|
||||
|
||||
} // namespace webrtc
|
||||
|
||||
@ -244,6 +244,8 @@ class RtpTransmissionManager : public RtpSenderBase::SetStreamsObserver {
|
||||
PeerConnectionObserver* Observer() const;
|
||||
void OnNegotiationNeeded();
|
||||
|
||||
cricket::MediaEngineInterface* media_engine() const;
|
||||
|
||||
TransceiverList transceivers_;
|
||||
|
||||
// These lists store sender info seen in local/remote descriptions.
|
||||
|
||||
@ -1255,12 +1255,20 @@ void SdpOfferAnswerHandler::Initialize(
|
||||
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 @@ void SdpOfferAnswerHandler::GetOptionsForPlanBOffer(
|
||||
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 @@ void SdpOfferAnswerHandler::GetOptionsForPlanBOffer(
|
||||
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 @@ void SdpOfferAnswerHandler::GenerateMediaDescriptionOptions(
|
||||
*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 @@ void SdpOfferAnswerHandler::GenerateMediaDescriptionOptions(
|
||||
*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,
|
||||
|
||||
@ -576,6 +576,7 @@ class SdpOfferAnswerHandler : public SdpStateProvider,
|
||||
// ==================================================================
|
||||
// Access to pc_ variables
|
||||
cricket::ChannelManager* channel_manager() const;
|
||||
cricket::MediaEngineInterface* media_engine() const;
|
||||
TransceiverList* transceivers();
|
||||
const TransceiverList* transceivers() const;
|
||||
DataChannelController* data_channel_controller();
|
||||
|
||||
Reference in New Issue
Block a user