rtp包是如何到达Call模块的
从网络接收包,到达WebRtcVideoChannel::OnPacketReceived
UDPPort::HandleIncomingPacket
UDPPort::OnReadPacket
Connection::OnReadPacket
P2PTransportChannel::OnReadPacket
DtlsTransport::OnReadPacket
RtpTransport::OnReadPacket
SrtpTransport::OnRtpPacketReceived
RtpTransport::DemuxPacket
RtpDemuxer::OnRtpPacket
BaseChannel::OnRtpPacket
WebRtcVideoChannel::OnPacketReceived
在WebRtcVideoChannel::OnPacketReceived中,从network_thread线程转到worker_thread,也就是到了Call::DeliverPacket中
worker_thread_->PostTask(
ToQueuedTask(task_safety_, [this, packet, packet_time_us] {
RTC_DCHECK_RUN_ON(&thread_checker_);
const webrtc::PacketReceiver::DeliveryStatus delivery_result =
call_->Receiver()->DeliverPacket(webrtc::MediaType::VIDEO, packet,
packet_time_us)
}
......
}));