M74版本
一、PacketBuffer:帧完整性,保证帧中包序号连续,包的排序。(两个数组缓存,一个是包序号缓存,一个是数据缓存)
bool PacketBuffer::InsertPacket(VCMPacket* packet); 插入缓存
void PacketBuffer::PaddingReceived(uint16_t seq_num) 填充包接收
void PacketBuffer::UpdateMissingPackets(uint16_t seq_num) 更新丢包
bool PacketBuffer::PotentialNewFrame(uint16_t seq_num) 检测包的连续
std::vector<std::unique_ptr<RtpFrameObject>> PacketBuffer::FindFrames( uint16_t seq_num)
二、RtpFrameReferenceFinder:主要是查找帧的参考帧,对gop的帧进行排序。
tpFrameReferenceFinder::ManageFramePidOrSeqNum(RtpFrameObject* frame, int picture_id) 检查输入帧的连续性
三、FrameBuffer:负责帧的连续性和可解码性,GOP的排序