Remove PeerConnection voice_channel/video_channel methods
These methods no longer work with Unified Plan and have been
replaced by iterating over RtpTransceivers to get all the
VoiceChannels and VideoChannels.
Bug: webrtc:8587
Change-Id: I66ec282ee9f7eb987c32e30957733c13c6cf45b8
Reviewed-on: https://webrtc-review.googlesource.com/55760
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22110}
diff --git a/pc/peerconnection.cc b/pc/peerconnection.cc
index f32b478..b032043 100644
--- a/pc/peerconnection.cc
+++ b/pc/peerconnection.cc
@@ -2922,20 +2922,32 @@
std::unique_ptr<rtc::SSLCertificate>
PeerConnection::GetRemoteAudioSSLCertificate() {
- if (!voice_channel()) {
+ auto audio_transceiver = GetFirstAudioTransceiver();
+ if (!audio_transceiver || !audio_transceiver->internal()->channel()) {
return nullptr;
}
- return GetRemoteSSLCertificate(voice_channel()->transport_name());
+ return GetRemoteSSLCertificate(
+ audio_transceiver->internal()->channel()->transport_name());
}
std::unique_ptr<rtc::SSLCertChain>
PeerConnection::GetRemoteAudioSSLCertChain() {
- if (!voice_channel()) {
+ auto audio_transceiver = GetFirstAudioTransceiver();
+ if (!audio_transceiver || !audio_transceiver->internal()->channel()) {
return nullptr;
}
-
return transport_controller_->GetRemoteSSLCertChain(
- voice_channel()->transport_name());
+ audio_transceiver->internal()->channel()->transport_name());
+}
+
+rtc::scoped_refptr<RtpTransceiverProxyWithInternal<RtpTransceiver>>
+PeerConnection::GetFirstAudioTransceiver() const {
+ for (auto transceiver : transceivers_) {
+ if (transceiver->media_type() == cricket::MEDIA_TYPE_AUDIO) {
+ return transceiver;
+ }
+ }
+ return nullptr;
}
bool PeerConnection::StartRtcEventLog(rtc::PlatformFile file,
@@ -3073,6 +3085,28 @@
}
}
+cricket::VoiceMediaChannel* PeerConnection::voice_media_channel() const {
+ RTC_DCHECK(!IsUnifiedPlan());
+ auto* voice_channel = static_cast<cricket::VoiceChannel*>(
+ GetAudioTransceiver()->internal()->channel());
+ if (voice_channel) {
+ return voice_channel->media_channel();
+ } else {
+ return nullptr;
+ }
+}
+
+cricket::VideoMediaChannel* PeerConnection::video_media_channel() const {
+ RTC_DCHECK(!IsUnifiedPlan());
+ auto* video_channel = static_cast<cricket::VideoChannel*>(
+ GetVideoTransceiver()->internal()->channel());
+ if (video_channel) {
+ return video_channel->media_channel();
+ } else {
+ return nullptr;
+ }
+}
+
void PeerConnection::CreateAudioReceiver(
MediaStreamInterface* stream,
const RtpSenderInfo& remote_sender_info) {