webrtc代码走读:发送端NACK和FEC的packet压到队列走读

本文详细介绍了RTP报文从发送端的NACK和FEC数据打包,到通过pacer进行网络发送,再到接收端出队并发送的整个流程。主要涉及RTPSenderVideo、PacingController和RTPSenderEgress等关键组件的功能和交互,揭示了网络传输中报文调度和错误纠正的机制。
摘要由CSDN通过智能技术生成

一、NACK发送端packet data和FEC的packet data push到packet队列函数调用栈

//入队pacer报文
RTPSenderVideo::SendVideo----视频帧组包成RTP报文
->RTPSenderVideo::LogAndSendToNetwork  
->RTPSender::EnqueuePackets
->TaskQueuePacedSender::EnqueuePackets
->pacing_controller_.EnqueuePacket(std::move(packet));


//出队pacer报文
PacingController::ProcessPackets()
->PacketRouter::SendPacket(std::unique_ptr<RtpPacketToSend>,const PacedPacketInfo&)
->ModuleRtpRtcpImpl2::TrySendPacket(RtpPacketToSend*, const PacedPacketInfo&) 
->RtpSenderEgress::SendPacket(RtpPacketToSend*, const PacedPacketInfo&) 

RtpSenderEgress::SendPacket函数压栈packet到NACK和FEC队列 

FEC压栈队列 

NACK压栈队列 

保存packet

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值