本文解析与参考图像标记过程相关的几个函数。
/*!
************************************************************************
* \brief
* Perform Sliding window decoded reference picture marking process 参考图像的滑窗标记过程
*
************************************************************************
*/
static void sliding_window_memory_management(StorablePicture* p)
{
unsigned i;
assert (!p->idr_flag);
// if this is a reference pic with sliding sliding window, unmark first ref frame
if (dpb.ref_frames_in_buffer==dpb.num_ref_frames - dpb.ltref_frames_in_buffer)//!< 减去dpb.ltref_frames_in_buffer因滑窗标记不能使用在长期参考帧上
{
for (i=0; i<dpb.used_size;i++) //!< 采取FIFO策略,将dpb中第一个短期参考帧移出参考帧列表,并更新参考帧列表
{
if (dpb.fs[i]->is_reference && (!(dpb.fs[i]->is_long_term)))
{
unmark_for_reference(dpb.fs[i]); //!< 标记该帧为非参考帧
update_ref_list()