| Index: webrtc/pc/channel.cc
|
| diff --git a/webrtc/pc/channel.cc b/webrtc/pc/channel.cc
|
| index f22bdc4ca41029155f2fe4fe511bb9c2765ee679..03f10b8ee2d6d6a51ee602eade9c0dc19908403a 100644
|
| --- a/webrtc/pc/channel.cc
|
| +++ b/webrtc/pc/channel.cc
|
| @@ -24,6 +24,7 @@
|
| #include "webrtc/base/trace_event.h"
|
| #include "webrtc/media/base/mediaconstants.h"
|
| #include "webrtc/media/base/rtputils.h"
|
| +#include "webrtc/p2p/base/packettransportinterface.h"
|
| #include "webrtc/p2p/base/transportchannel.h"
|
| #include "webrtc/pc/channelmanager.h"
|
|
|
| @@ -377,7 +378,7 @@ void BaseChannel::ConnectToTransportChannel(TransportChannel* tc) {
|
| RTC_DCHECK(network_thread_->IsCurrent());
|
|
|
| tc->SignalWritableState.connect(this, &BaseChannel::OnWritableState);
|
| - tc->SignalReadPacket.connect(this, &BaseChannel::OnChannelRead);
|
| + tc->SignalReadPacket.connect(this, &BaseChannel::OnPacketRead);
|
| tc->SignalReadyToSend.connect(this, &BaseChannel::OnReadyToSend);
|
| tc->SignalDtlsState.connect(this, &BaseChannel::OnDtlsState);
|
| tc->SignalSelectedCandidatePairChanged.connect(
|
| @@ -527,29 +528,32 @@ bool BaseChannel::SetCryptoOptions(const rtc::CryptoOptions& crypto_options) {
|
| return true;
|
| }
|
|
|
| -void BaseChannel::OnWritableState(TransportChannel* channel) {
|
| +void BaseChannel::OnWritableState(rtc::PacketTransportInterface* transport) {
|
| + TransportChannel* channel = static_cast<TransportChannel*>(transport);
|
| RTC_DCHECK(channel == transport_channel_ ||
|
| channel == rtcp_transport_channel_);
|
| RTC_DCHECK(network_thread_->IsCurrent());
|
| UpdateWritableState_n();
|
| }
|
|
|
| -void BaseChannel::OnChannelRead(TransportChannel* channel,
|
| - const char* data, size_t len,
|
| - const rtc::PacketTime& packet_time,
|
| - int flags) {
|
| - TRACE_EVENT0("webrtc", "BaseChannel::OnChannelRead");
|
| - // OnChannelRead gets called from P2PSocket; now pass data to MediaEngine
|
| +void BaseChannel::OnPacketRead(rtc::PacketTransportInterface* transport,
|
| + const char* data,
|
| + size_t len,
|
| + const rtc::PacketTime& packet_time,
|
| + int flags) {
|
| + TRACE_EVENT0("webrtc", "BaseChannel::OnPacketRead");
|
| + // OnPacketRead gets called from P2PSocket; now pass data to MediaEngine
|
| RTC_DCHECK(network_thread_->IsCurrent());
|
|
|
| // When using RTCP multiplexing we might get RTCP packets on the RTP
|
| // transport. We feed RTP traffic into the demuxer to determine if it is RTCP.
|
| - bool rtcp = PacketIsRtcp(channel, data, len);
|
| + bool rtcp = PacketIsRtcp(transport, data, len);
|
| rtc::CopyOnWriteBuffer packet(data, len);
|
| HandlePacket(rtcp, &packet, packet_time);
|
| }
|
|
|
| -void BaseChannel::OnReadyToSend(TransportChannel* channel) {
|
| +void BaseChannel::OnReadyToSend(rtc::PacketTransportInterface* transport) {
|
| + TransportChannel* channel = static_cast<TransportChannel*>(transport);
|
| RTC_DCHECK(channel == transport_channel_ ||
|
| channel == rtcp_transport_channel_);
|
| SetTransportChannelReadyToSend(channel == rtcp_transport_channel_, true);
|
| @@ -611,9 +615,11 @@ void BaseChannel::SetTransportChannelReadyToSend(bool rtcp, bool ready) {
|
| Bind(&MediaChannel::OnReadyToSend, media_channel_, ready_to_send));
|
| }
|
|
|
| -bool BaseChannel::PacketIsRtcp(const TransportChannel* channel,
|
| - const char* data, size_t len) {
|
| - return (channel == rtcp_transport_channel_ ||
|
| +bool BaseChannel::PacketIsRtcp(const rtc::PacketTransportInterface* transport,
|
| + const char* data,
|
| + size_t len) {
|
| + return (static_cast<const TransportChannel*>(transport) ==
|
| + rtcp_transport_channel_ ||
|
| rtcp_mux_filter_.DemuxRtcp(data, static_cast<int>(len)));
|
| }
|
|
|
| @@ -1445,8 +1451,9 @@ void BaseChannel::FlushRtcpMessages_n() {
|
| }
|
| }
|
|
|
| -void BaseChannel::SignalSentPacket_n(TransportChannel* /* channel */,
|
| - const rtc::SentPacket& sent_packet) {
|
| +void BaseChannel::SignalSentPacket_n(
|
| + rtc::PacketTransportInterface* /* transport */,
|
| + const rtc::SentPacket& sent_packet) {
|
| RTC_DCHECK(network_thread_->IsCurrent());
|
| invoker_.AsyncInvoke<void>(
|
| RTC_FROM_HERE, worker_thread_,
|
| @@ -1641,15 +1648,15 @@ void VoiceChannel::GetActiveStreams_w(AudioInfo::StreamList* actives) {
|
| media_channel()->GetActiveStreams(actives);
|
| }
|
|
|
| -void VoiceChannel::OnChannelRead(TransportChannel* channel,
|
| - const char* data, size_t len,
|
| - const rtc::PacketTime& packet_time,
|
| +void VoiceChannel::OnPacketRead(rtc::PacketTransportInterface* transport,
|
| + const char* data,
|
| + size_t len,
|
| + const rtc::PacketTime& packet_time,
|
| int flags) {
|
| - BaseChannel::OnChannelRead(channel, data, len, packet_time, flags);
|
| -
|
| + BaseChannel::OnPacketRead(transport, data, len, packet_time, flags);
|
| // Set a flag when we've received an RTP packet. If we're waiting for early
|
| // media, this will disable the timeout.
|
| - if (!received_media_ && !PacketIsRtcp(channel, data, len)) {
|
| + if (!received_media_ && !PacketIsRtcp(transport, data, len)) {
|
| received_media_ = true;
|
| }
|
| }
|
|
|