From f26d771a55ce58c1fb50ec8a408da506b14c1108 Mon Sep 17 00:00:00 2001
From: Yuling Hsiao <yuling.hsiao@mediatek.com>
Date: Sat, 6 Jul 2019 16:42:08 +0800
Subject: [PATCH] fix ticket #349

---
 source/Lib/EncoderLib/EncCu.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/source/Lib/EncoderLib/EncCu.cpp b/source/Lib/EncoderLib/EncCu.cpp
index 22efed92d9..48c03b797a 100644
--- a/source/Lib/EncoderLib/EncCu.cpp
+++ b/source/Lib/EncoderLib/EncCu.cpp
@@ -1991,9 +1991,9 @@ void EncCu::xCheckRDCostMerge2Nx2N( CodingStructure *&tempCS, CodingStructure *&
   static_vector<ModeInfo, MRG_MAX_NUM_CANDS + MMVD_ADD_NUM>  RdModeList;
   bool                                        mrgTempBufSet = false;
 
-  for (unsigned i = 0; i < MRG_MAX_NUM_CANDS + MMVD_ADD_NUM; i++)
+  for (int i = 0; i < MRG_MAX_NUM_CANDS + MMVD_ADD_NUM; i++)
   {
-    if (i < MRG_MAX_NUM_CANDS)
+    if (i < mergeCtx.numValidMergeCand)
     {
 #if JVET_N0302_SIMPLFIED_CIIP
       RdModeList.push_back(ModeInfo(i, true, false, false));
@@ -2004,9 +2004,9 @@ void EncCu::xCheckRDCostMerge2Nx2N( CodingStructure *&tempCS, CodingStructure *&
     else
     {
 #if JVET_N0302_SIMPLFIED_CIIP
-      RdModeList.push_back(ModeInfo(i - MRG_MAX_NUM_CANDS, false, true, false));
+      RdModeList.push_back(ModeInfo(std::min(MMVD_ADD_NUM, i - mergeCtx.numValidMergeCand), false, true, false));
 #else
-      RdModeList.push_back(ModeInfo(i - MRG_MAX_NUM_CANDS, NUM_LUMA_MODE, false, true, false));
+      RdModeList.push_back(ModeInfo(std::min(MMVD_ADD_NUM, i - mergeCtx.numValidMergeCand), NUM_LUMA_MODE, false, true, false));
 #endif
     }
   }
-- 
GitLab