一、函数调用栈

internal::Call::DeliverRtcp
->RtpVideoSender::DeliverRtcp
->ModuleRtpRtcpImpl2::IncomingRtcpPacket
->RTCPReceiver::IncomingPacket
->RTCPReceiver::IncomingPacket
->RTCPReceiver::TriggerCallbacksFromRtcpPacket(const webrtc::RTCPReceiver::PacketInformation & packet_information)
->RtpTransportControllerSend::OnTransportFeedback(rtcp::TransportFeedback & feedback)
->GoogCcNetworkController::OnTransportPacketsFeedback(TransportPacketsFeedback report)
->DelayBasedBwe::IncomingPacketFeedbackVector(TransportPacketsFeedback & msg, acked_bitrate, probe_bitrate, network_estimate, in_alr)
->DelayBasedBwe::IncomingPacketFeedback(PacketResult & packet_feedback, at_time)
->InterArrival::ComputeDeltas(timestamp, arrival_time_ms, system_time_ms, packet_size, * timestamp_delta, * arrival_time_delta_ms, * packet_size_delta)

二、参数说明

1、packet_feedback.sent_packet.send_time

带TransportSequenceNumber扩展头的rtp报文发送时间。

ProcessThreadImpl::Process()
->PacedSender::Process()
->PacingController::ProcessPackets()
->PacketRouter::SendPacket
->ModuleRtpRtcpImpl2::TrySendPacket
->RtpSenderEgress::SendPacket
->RtpSenderEgress::SendPacketToNetwork
->WebRtcVoiceMediaChannel::SendRtp
->MediaChannel::SendRtp
->MediaChannel::SendPacket
->MediaChannel::DoSendPacket
->BaseChannel::SendPacket
->SrtpTransport::SendRtpPacket
->RtpTransport::SendPacket
->DtlsTransport::SendPacket
->P2PTransportChannel::SendPacket
->ProxyConnection::Send
->UDPPort::SendTo
->AsyncUDPSocket::SendTo---后续一路发送信号量到TransportFeedbackAdapter::ProcessSentPacket<RtpTransportControllerSend::OnSentPacket

发送信号量的调用栈打印如下:

-> OnSentPacket
->P2PTransportChannel::OnSentPacket
-> DtlsTransport::OnSentPacket
-> RtpTransport::OnSentPacket
-> Call::OnSentPacket
-> RtpTransportControllerSend::OnSentPacket
-> TransportFeedbackAdapter::ProcessSentPacket

2、packet_feedback.receive_time

Transport CC反馈的接收端接收时间。

3、at_time处理当前RTCP报文的系统时间

webrtc代码走读二十一(InterArrival::ComputeDeltas)相关推荐

  1. webrtc代码走读四(rtp包格式)

    一.rtp包头格式 V:版本号,必须为2 P:填充位 X:扩展位,标志是否存在扩展 CC:CSRC个数 M:Mark标志位,标志是否是一帧的结束,音频帧几乎每个包都是一个完整的帧,所以M一般情况都等于 ...

  2. webrtc代码走读五(JitterBuffer)

    一. 什么是JitterBuffer Jitter Buffer也叫做抖动缓冲区,它是实时音视频里面的一个重要模块,它对数据包丢失.乱序.延迟到达等情况进行处理,平滑的向解码模块输出数据包/帧,抵抗各 ...

  3. X264代码走读二(intra_refresh实现)

    一.RTC遇到问题 实时音视频传输对延时要求很严苛,I P size大小不均是引入延时的主要原因之一.尤其Pacer模块要平滑发送视频数据,超大I帧必然引入比较大的传输延时.<Motion Ad ...

  4. webrtc代码走读七(rtp包格式)

    一.rtp包头格式 V:版本号,必须为2 P:填充位 X:扩展位,标志是否存在扩展 CC:CSRC个数 M:Mark标志位,标志是否是一帧的结束,音频帧几乎每个包都是一个完整的帧,所以M一般情况都等于 ...

  5. webrtc 代码走读六

    一.呼叫流程图 webrtc的ICE符合rfc5245标准协议.该协议的链接为:https://tools.ietf.org/html/rfc5245 每个终端都有一系列传输地址(包括传输协议.IP地 ...

  6. TI单芯片毫米波雷达代码走读(十一)—— 距离维(1D)处理之直流去除

    chirp内处理void MmwDemo_interChirpProcessing()函数最后有这样两行代码: if(obj->cliCfg->calibDcRangeSigCfg.ena ...

  7. ex.php,Exphp代码走读(二)

    1 <?php2 namespace System\Core;3 use System\Driver;4 5 classApp{6 public $DB;7 public $Cache;8 pu ...

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

    一.NACK发送端packet data和FEC的packet data push到packet队列函数调用栈 PacingController::ProcessPackets() ->Pack ...

  9. webrtc QOS方法二.3(FEC冗余度配置)

    一.概述 webrtc的FEC冗余度配置整体思想是: 1.接收端根据收到报文情况计算一个丢包率,通过RTCP_RR报文反馈给发送端. 接收端丢包率计算代码走读请参见:<webrtc代码走读十一( ...

最新文章

  1. bash . dot using
  2. Kali Linux 2020.1修改root用户密码
  3. C# string.Format谨慎使用
  4. 链表python笔试题目_python经典面试算法题1.4:如何对链表进行重新排序
  5. VTK:数据集表面用法实战
  6. c语言链表复数实验,数据结构实验—复数计算器 大神提意见
  7. PHP+MySQL 手工注入语句大全 推荐
  8. Flash AS3获取PHP数据(ActionScript3 + php + email)送ActionScript2
  9. mysql 准则 杂谈
  10. objective 修改plist文件
  11. cisco ios cookbook
  12. Android中需要了解的数据结构(一)
  13. python游戏程序代码大全_python小游戏代码,python小游戏代码大全打枪
  14. win10任务栏图标空白的解决方案
  15. QT之TreeWidgetItem基本使用
  16. 一对一高清直播系统解决方案
  17. Java云同桌学习系列(十五)——MySQL数据库
  18. unity无光照着色器(顶点片元着色器)使用TAA抗锯齿后角色移动时模糊(虚影)解决方案
  19. windows server 2012 r2 搭建企业文件共享存储
  20. 程序员的跳槽人生(跳槽攻略)

热门文章

  1. C语言如何动态申请空间(一维和二维)
  2. 构建多平台Docker镜像
  3. 考研三年,做了同传,迎娶白富美,实现财务自由。这是真鸡汤!
  4. 做程序员必须懂英语吗?_您必须懂英语才能成为程序员吗?
  5. 生物膜仿生纳米颗粒|HEK293胚肾细胞膜复合纳米脂质体|293T胚肾细胞膜修饰纳米囊泡具有靶向功能
  6. bugku秋名山车神
  7. 复杂推理的进展与挑战——从LSAT讲起
  8. Unity--Ugui播放mp4视频
  9. 「动画演示」勾股定理的证明
  10. 如何在iTC设置App内购,这是一篇细致到代码都给你看的指南!