diff --git a/source/Lib/CommonLib/UnitTools.cpp b/source/Lib/CommonLib/UnitTools.cpp index 3c74b9e4399732a3edb2053626d1a42590bd3008..4f4725d4563392bac99fb3eebac9eda39c211051 100644 --- a/source/Lib/CommonLib/UnitTools.cpp +++ b/source/Lib/CommonLib/UnitTools.cpp @@ -991,10 +991,16 @@ bool PU::addMergeHMVPCand(const Slice &slice, MergeCtx& mrgCtx, bool isCandInter if (miNeighbor.interDir == 1 && slice.getRefPic(REF_PIC_LIST_0, miNeighbor.refIdx[0])->getPOC() == slice.getPOC()) { mrgCtx.mrgTypeNeighbours[cnt] = MRG_TYPE_CPR; +#if JVET_L0054_MMVD if(mmvdList != 0 && mrgCandIdx != -1) mrgCandIdxCPR++; +#endif } +#if JVET_L0054_MMVD if (mrgCandIdxCPR == cnt && canFastExit) +#else + if (mrgCandIdx == cnt && canFastExit) +#endif #else if (mrgCandIdx == cnt && canFastExit) #endif diff --git a/source/Lib/DecoderLib/DecCu.cpp b/source/Lib/DecoderLib/DecCu.cpp index 0a1542ba53f2f8af84fd4621f8bf1788b0661a86..dc510242ad3a866d0a9014d65976eec17e14e523 100644 --- a/source/Lib/DecoderLib/DecCu.cpp +++ b/source/Lib/DecoderLib/DecCu.cpp @@ -342,11 +342,16 @@ void DecCu::xReconInter(CodingUnit &cu) // inter prediction #if JVET_L0293_CPR +#if JVET_L0100_MULTI_HYPOTHESIS_INTRA CHECK(cu.cpr && cu.firstPU->mhIntraFlag, "CPR and MHIntra cannot be used together"); +#endif CHECK(cu.cpr && cu.affine, "CPR and Affine cannot be used together"); +#if JVET_L0124_L0208_TRIANGLE CHECK(cu.cpr && cu.triangle, "CPR and triangle cannot be used together"); +#endif +#if JVET_L0054_MMVD CHECK(cu.cpr && cu.firstPU->mmvdMergeFlag, "CPR and MMVD cannot be used together"); - +#endif const bool luma = cu.Y().valid(); const bool chroma = cu.Cb().valid(); if (luma && chroma)