概述:该模块主要是为了获取发送端时间差值,到达时间差值,包组间包个数差值。通过获取这些参数传递给后续模块进行延迟估计。
包组的概念:webrtc中计算延迟不是一个个包计算,而是通过将包进行分组,然后计算包组间的延迟,这样一是可以减少计算量,二也是可以使之更加平滑。
具体方法:差值计算是在inter_arrival模块进行获取。timestamp:表示数据包的发送时间。arrival_time_ms:表示数据包到达时间单位ms。timestamp_delta:表示数据包两个组之间发送时间间隔(也就是下图中T2-T1)。arrival_time_delta_ms:表示数据包两个组之间到达时间间隔(也就是下图t2-t1)。packet_size_delta:表示两个组之间数据包差值(也就是G2-G1)
bool InterArrival::ComputeDeltas(uint32_t timestamp,
int64_t arrival_time_ms,
int64_t system_time_ms,
size_t packet_size,
uint32_t* timestamp_delta,
int64_t* arrival_time_delta_ms,
int* packet_size_delta)
序列图如下:(引用)