webrtc 代码学习(十五)Audio rtp 发送数据

Audio rtp 发送数据
作者:LanPZzzz
本章我们简单讲述下Audio rtp 发送数据

文章目录

          • 1. 头数据
          • 2. 流程上

1. 头数据

RTPSenderAudio::SendAudio (modules\rtp_rtcp\source\rtp_sender_audio.cc 117)

可能发送到 PacedSender::InsertPacket (modules\pacing\paced_sender.cc 185) 中

头数据
webrtcvoiceengine.cc 1049
        // OverheadPerPacket = Ipv4(20B) + UDP(8B) + SRTP(10B) + RTP(12)
        constexpr int kOverheadPerPacket = 20 + 8 + 10 + 12;
2. 流程上

->PacedSender::Process(modules\pacing\paced_sender.cc 262)
-> packets_->BeginPop 获取包 => RoundRobinPacketQueue::BeginPop (modules\pacing\round_robin_packet_queue.cc) 从 packet_queue 中获取包
-> PacedSender::SendPacket (modules\pacing\paced_sender.cc 367)
-> PacketRouter::TimeToSendPacket (modules\pacing\packet_router.cc 117)
-> RTPSender::TimeToSendPacket (modules\rtp_rtcp\source\rtp_sender.cc 736)
-> packet_history_.GetPacketAndSetSendTime(sequence_number, false) (modules\rtp_rtcp\source\rtp_sender.cc 748) => RtpPacketHistory::GetPacketAndSetSendTime (modules\rtp_rtcp\source\rtp_packet_history.cc 115) 从历史记录中获取包
-> RTPSender::PrepareAndSendPacket (modules\rtp_rtcp\source\rtp_sender.cc 765)
-> RTPSender::SendPacketToNetwork (modules\rtp_rtcp\source\rtp_sender.cc 680)
-> transport_->SendRtp(modules\rtp_rtcp\source\rtp_sender.cc 686) => Channel::SendRtp (audio\channel.cc 323)
-> SendRtp (audio\audio_send_stream.cc 67)
-> SendRtp (media\engine\webrtcvoiceengine.h 199)
-> VoiceMediaChannel::SendPacket (media\base\mediachannel.h 220)
-> DoSendPacket (media\base\mediachannel.h 251)
-> network_interface_->SendPacket (media\base\mediachannel.h 258) => BaseChannel::SendPacket (pc\channel.cc 318)
-> BaseChannel::SendPacket(pc\channel.cc 386)
-> rtp_transport_->SendRtpPacket () => SrtpTransport::SendRtpPacket (pc\srtptransport.cc 112)
-> SrtpTransport::ProtectRtp (pc\srtptransport.cc 370) === 这里有问题
-> RtpTransport::SendPacket (pc\rtptransport.cc 121)
-> DtlsTransport::SendPacket (p2p\base\dtlstransport.cc 395)
-> ice_transport_->SendPacket(data, size, options); (p2p\base\dtlstransport.cc 419) 从这里我们就是下面p2p 上了,就已经是接收的逆过程了
->
->
->
->
-> 附加的 =====network_interface_->SendRtcp (media\base\mediachannel.h 258) => BaseChannel::SendRtcp (pc\channel.cc 323) rtcp 的起始端是不一样的,但是在最后的发送阶段都是一样的
->
->
->
->
->
->
->
->
->
->
->
->

你可能感兴趣的:(webrtc学习)