// JVT-V043 and some cleanup ErrVal RecPicBuffer::getRefLists( RefFrameList& rcList0, RefFrameList& rcList1, SliceHeader& rcSliceHeader, QuarterPelFilter* pcQuarterPelFilter) { //===== clear lists ===== RefFrameList rcListTemp0, rcListTemp1; rcList0.reset(); rcList1.reset(); ROTRS( rcSliceHeader.isIntra(), Err::m_nOK ); PicType ePicType = rcSliceHeader.getPicType(); if( rcSliceHeader.isInterP() ) { RNOK( xInitRefListPSlice ( rcListTemp0 , ePicType, rcSliceHeader.getNalRefIdc()>0) ); ProcessRef(rcSliceHeader,rcList0,rcListTemp0,pcQuarterPelFilter);//lufeng AddMultiviewRef (m_cUsedRecPicBufUnitList, rcList0, rcSliceHeader.getNumRefIdxActive(LIST_0), FORWARD, rcSliceHeader, pcQuarterPelFilter);//JVT-W056 Samsung RNOK( xRefListRemapping ( rcList0, LIST_0, &rcSliceHeader ) ); RNOK( xAdaptListSize ( rcList0, LIST_0, rcSliceHeader ) ); RNOK( xDumpRefList ( rcList0, LIST_0 ) ); } else // rcSliceHeader.isInterB() { RNOK( xInitRefListsBSlice ( rcListTemp0, rcListTemp1 , ePicType , rcSliceHeader.getNalRefIdc()>0) ); ProcessRef(rcSliceHeader,rcList0,rcListTemp0,pcQuarterPelFilter);//lufeng ProcessRef(rcSliceHeader,rcList1,rcListTemp1,pcQuarterPelFilter);//lufeng AddMultiviewRef(m_cUsedRecPicBufUnitList, rcList0, rcSliceHeader.getNumRefIdxActive(LIST_0), FORWARD, rcSliceHeader, pcQuarterPelFilter);//JVT-W056 Samsung AddMultiviewRef(m_cUsedRecPicBufUnitList, rcList1, rcSliceHeader.getNumRefIdxActive(LIST_1), BACKWARD, rcSliceHeader, pcQuarterPelFilter);//JVT-W056 Samsung RNOK( xRefListRemapping ( rcList0, LIST_0, &rcSliceHeader ) ); RNOK( xRefListRemapping ( rcList1, LIST_1, &rcSliceHeader ) ); RNOK( xAdaptListSize ( rcList0, LIST_0, rcSliceHeader ) ); RNOK( xAdaptListSize ( rcList1, LIST_1, rcSliceHeader ) ); RNOK( xDumpRefList ( rcList0, LIST_0 ) ); RNOK( xDumpRefList ( rcList1, LIST_1 ) ); } return Err::m_nOK; }
ProcessRef Process::create(RuntimeRef runtime, LoggerRef logger, const std::string& dir) { return ProcessRef(new ProcessWindowsImpl(runtime, logger, dir)); }