reference_build_list函数
原理
- 功能:
构建参考列表,它根据当前编码帧的POC(Picture Order Count)来决定哪些帧可以作为参考帧。
- 内部执行流程:
- 声明了一个布尔变量b_ok,用于在排序循环中作为标志;
- 初始化参考帧列表0和1的计数器i_fref[0]、i_fref[1];
- 如果当前编码的切片类型是I帧,则不需要构建参考帧列表,直接返回;
- for循环遍历参考队列每个参考帧,根据它们的POC与当前帧的POC比较,将它们分配到参考帧列表0或1中;
- 如果参考帧标记为损坏b_corrupt,则跳过该帧;
- 如果参考帧的POC小于当前帧的POC,则将参考帧reference[i]添加到参考帧列表fref[0]中;
- 如果参考帧的POC大于当前帧的POC,则将参考帧reference[i]添加到参考帧列表fref[1]中;
- 如果需要从参考帧列表的末尾移除帧(由内存管理控制器mmco指定);
- do-while 循环使用冒泡排序算法对参考帧列表0中的帧按帧编号进行排序;
- for 循环i_ref[0]每一帧,如果当前参考帧帧序i_frame小于下一参考帧的帧序i_frame,则调用XCHG函数交换参