文章目录
在文章 WebRTC系列-Qos系列之NetEQ简介介绍了抖动消除的基本概念,以及在WebRTC中的实现等;
这篇文章降围绕
NetEqImpl
,展开源码分析,本文不会分析具体算法,主要是看起核心处理逻辑;
1. InsertPacketInternal
函数实现中代码比较多这里不列举代码,主要看函数的实现逻辑;这个函数的主要流程如下:
- 将
payload
音频数据包装成Packet
放到PacketList
中; - 如果是第一个包,需要初始化,主要是:
timestamp_scaler_->Reset()
,packet_buffer_->Flush()
;
dtmf_buffer_->Flush()
;同时需要将sync_buffer_
时间重置;同时充值timestamp_为当前包的时间; - 判读nack是否启用,如果启用需要更新;