func (this *TEncTop) selectReferencePictureSet(slice *TLibCommon.TComSlice, POCCurr, GOPid int) { slice.SetRPSidx(GOPid) for extraNum := this.GetEncCfg().m_iGOPSize; extraNum < this.GetEncCfg().m_extraRPSs+this.GetEncCfg().m_iGOPSize; extraNum++ { if this.GetEncCfg().m_uiIntraPeriod > 0 && this.GetEncCfg().GetDecodingRefreshType() > 0 { POCIndex := POCCurr % int(this.GetEncCfg().m_uiIntraPeriod) if POCIndex == 0 { POCIndex = int(this.GetEncCfg().m_uiIntraPeriod) } if POCIndex == this.GetEncCfg().m_GOPList[extraNum].m_POC { slice.SetRPSidx(extraNum) } } else { if POCCurr == this.GetEncCfg().m_GOPList[extraNum].m_POC { slice.SetRPSidx(extraNum) } } } slice.SetRPS(this.m_cSPS.GetRPSList().GetReferencePictureSet(slice.GetRPSidx())) slice.GetRPS().SetNumberOfPictures(slice.GetRPS().GetNumberOfNegativePictures() + slice.GetRPS().GetNumberOfPositivePictures()) }