From 5f5918f4ef1f9e7b4630c80fd8343211ac3bbcd9 Mon Sep 17 00:00:00 2001 From: Zhi Huang Date: Sun, 12 Nov 2017 17:26:23 -0800 Subject: [PATCH] Merge MediaChannel's OnTransportOverheadChanged and OnNetworkRouteChanged callbacks. OnTransportOverChanged is merged into OnNetworkRouteChanged in MediaChannel because the transport overhead will be added to rtc::NetworkRoute structure. This CL depends on https://webrtc-review.googlesource.com/c/src/+/13520 Bug: None Change-Id: I6ed6583f6c91db4ce61a89406de39774239f3a04 Reviewed-on: https://webrtc-review.googlesource.com/15200 Commit-Queue: Zhi Huang Reviewed-by: Taylor Brandstetter Reviewed-by: Peter Thatcher Cr-Commit-Position: refs/heads/master@{#20678} --- media/base/fakemediaengine.h | 4 +--- media/base/mediachannel.h | 3 --- media/base/rtpdataengine.h | 1 - media/engine/webrtcvideoengine.cc | 7 ++----- media/engine/webrtcvideoengine.h | 1 - media/engine/webrtcvoiceengine.cc | 11 ++++------- media/engine/webrtcvoiceengine.h | 1 - pc/channel.cc | 5 ----- 8 files changed, 7 insertions(+), 26 deletions(-) diff --git a/media/base/fakemediaengine.h b/media/base/fakemediaengine.h index e067c1977f..f0fae7b264 100644 --- a/media/base/fakemediaengine.h +++ b/media/base/fakemediaengine.h @@ -273,14 +273,12 @@ template class RtpHelper : public Base { virtual void OnReadyToSend(bool ready) { ready_to_send_ = ready; } - virtual void OnTransportOverheadChanged(int transport_overhead_per_packet) { - transport_overhead_per_packet_ = transport_overhead_per_packet; - } virtual void OnNetworkRouteChanged(const std::string& transport_name, const rtc::NetworkRoute& network_route) { last_network_route_ = network_route; ++num_network_route_changes_; + transport_overhead_per_packet_ = network_route.packet_overhead; } bool fail_set_send_codecs() const { return fail_set_send_codecs_; } bool fail_set_recv_codecs() const { return fail_set_recv_codecs_; } diff --git a/media/base/mediachannel.h b/media/base/mediachannel.h index 1fed49c65c..275b2f5932 100644 --- a/media/base/mediachannel.h +++ b/media/base/mediachannel.h @@ -415,9 +415,6 @@ class MediaChannel : public sigslot::has_slots<> { virtual void OnNetworkRouteChanged( const std::string& transport_name, const rtc::NetworkRoute& network_route) = 0; - // Called when the rtp transport overhead changed. - virtual void OnTransportOverheadChanged( - int transport_overhead_per_packet) = 0; // Creates a new outgoing media stream with SSRCs and CNAME as described // by sp. virtual bool AddSendStream(const StreamParams& sp) = 0; diff --git a/media/base/rtpdataengine.h b/media/base/rtpdataengine.h index 525bc026a3..64e083b0fd 100644 --- a/media/base/rtpdataengine.h +++ b/media/base/rtpdataengine.h @@ -84,7 +84,6 @@ class RtpDataMediaChannel : public DataMediaChannel { virtual void OnRtcpReceived(rtc::CopyOnWriteBuffer* packet, const rtc::PacketTime& packet_time) {} virtual void OnReadyToSend(bool ready) {} - virtual void OnTransportOverheadChanged(int transport_overhead_per_packet) {} virtual bool SendData( const SendDataParams& params, const rtc::CopyOnWriteBuffer& payload, diff --git a/media/engine/webrtcvideoengine.cc b/media/engine/webrtcvideoengine.cc index 19f3426486..d2457f8734 100644 --- a/media/engine/webrtcvideoengine.cc +++ b/media/engine/webrtcvideoengine.cc @@ -1470,13 +1470,10 @@ void WebRtcVideoChannel::OnReadyToSend(bool ready) { void WebRtcVideoChannel::OnNetworkRouteChanged( const std::string& transport_name, const rtc::NetworkRoute& network_route) { + // TODO(zhihaung): Merge these two callbacks. call_->OnNetworkRouteChanged(transport_name, network_route); -} - -void WebRtcVideoChannel::OnTransportOverheadChanged( - int transport_overhead_per_packet) { call_->OnTransportOverheadChanged(webrtc::MediaType::VIDEO, - transport_overhead_per_packet); + network_route.packet_overhead); } void WebRtcVideoChannel::SetInterface(NetworkInterface* iface) { diff --git a/media/engine/webrtcvideoengine.h b/media/engine/webrtcvideoengine.h index 751dc4f6c0..132b5fd193 100644 --- a/media/engine/webrtcvideoengine.h +++ b/media/engine/webrtcvideoengine.h @@ -167,7 +167,6 @@ class WebRtcVideoChannel : public VideoMediaChannel, public webrtc::Transport { void OnReadyToSend(bool ready) override; void OnNetworkRouteChanged(const std::string& transport_name, const rtc::NetworkRoute& network_route) override; - void OnTransportOverheadChanged(int transport_overhead_per_packet) override; void SetInterface(NetworkInterface* iface) override; // Implemented for VideoMediaChannelTest. diff --git a/media/engine/webrtcvoiceengine.cc b/media/engine/webrtcvoiceengine.cc index 1b3cde6a0f..1505012009 100644 --- a/media/engine/webrtcvoiceengine.cc +++ b/media/engine/webrtcvoiceengine.cc @@ -2159,7 +2159,11 @@ void WebRtcVoiceMediaChannel::OnRtcpReceived( void WebRtcVoiceMediaChannel::OnNetworkRouteChanged( const std::string& transport_name, const rtc::NetworkRoute& network_route) { + RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); + // TODO(zhihaung): Merge these two callbacks. call_->OnNetworkRouteChanged(transport_name, network_route); + call_->OnTransportOverheadChanged(webrtc::MediaType::AUDIO, + network_route.packet_overhead); } bool WebRtcVoiceMediaChannel::MuteStream(uint32_t ssrc, bool muted) { @@ -2205,13 +2209,6 @@ void WebRtcVoiceMediaChannel::OnReadyToSend(bool ready) { ready ? webrtc::kNetworkUp : webrtc::kNetworkDown); } -void WebRtcVoiceMediaChannel::OnTransportOverheadChanged( - int transport_overhead_per_packet) { - RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); - call_->OnTransportOverheadChanged(webrtc::MediaType::AUDIO, - transport_overhead_per_packet); -} - bool WebRtcVoiceMediaChannel::GetStats(VoiceMediaInfo* info) { TRACE_EVENT0("webrtc", "WebRtcVoiceMediaChannel::GetStats"); RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); diff --git a/media/engine/webrtcvoiceengine.h b/media/engine/webrtcvoiceengine.h index 3bd8fa86e5..456da522b7 100644 --- a/media/engine/webrtcvoiceengine.h +++ b/media/engine/webrtcvoiceengine.h @@ -207,7 +207,6 @@ class WebRtcVoiceMediaChannel final : public VoiceMediaChannel, void OnNetworkRouteChanged(const std::string& transport_name, const rtc::NetworkRoute& network_route) override; void OnReadyToSend(bool ready) override; - void OnTransportOverheadChanged(int transport_overhead_per_packet) override; bool GetStats(VoiceMediaInfo* info) override; // SSRC=0 will set the audio sink on the latest unsignaled stream, future or diff --git a/pc/channel.cc b/pc/channel.cc index 4318aaec3a..00aab7ff0b 100644 --- a/pc/channel.cc +++ b/pc/channel.cc @@ -595,13 +595,8 @@ void BaseChannel::OnNetworkRouteChanged( RTC_DCHECK(network_thread_->IsCurrent()); rtc::NetworkRoute new_route; if (network_route) { - invoker_.AsyncInvoke(RTC_FROM_HERE, worker_thread_, [=] { - media_channel_->OnTransportOverheadChanged( - network_route->packet_overhead); - }); new_route = *(network_route); } - // Note: When the RTCP-muxing is not enabled, RTCP transport and RTP transport // use the same transport name and MediaChannel::OnNetworkRouteChanged cannot // work correctly. Intentionally leave it broken to simplify the code and