From e9d372f2945b829e036edcbfa08c6548caa56a3c Mon Sep 17 00:00:00 2001
From: Bappaditya Ray <bray@qti.qualcomm.com>
Date: Tue, 8 Aug 2023 21:47:35 +0000
Subject: [PATCH] Fix: parsing fix when IBC LIC is set to 0

---
 source/Lib/DecoderLib/CABACReader.cpp | 8 ++++----
 source/Lib/EncoderLib/CABACWriter.cpp | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/source/Lib/DecoderLib/CABACReader.cpp b/source/Lib/DecoderLib/CABACReader.cpp
index d3c9b38b0..eb92e6f91 100644
--- a/source/Lib/DecoderLib/CABACReader.cpp
+++ b/source/Lib/DecoderLib/CABACReader.cpp
@@ -4654,9 +4654,9 @@ void CABACReader::cuIbcLicFlag( CodingUnit& cu )
     cu.ibcFilterFlag = false;
   }
 #if JVET_AE0078_IBC_LIC_EXTENSION
-  if (!cu.ibcFilterFlag)
+  if (!cu.ibcFilterFlag && cu.cs->sps->getUseIbcLic())
 #else
-  if (!cu.ibcFilterFlag && (cu.lwidth() * cu.lheight() <= 256))
+  if (!cu.ibcFilterFlag && cu.cs->sps->getUseIbcLic() && (cu.lwidth() * cu.lheight() <= 256))
 #endif
   {
     cu.ibcLicFlag = m_BinDecoder.decodeBin(Ctx::IbcLicFlag(0));
@@ -4683,14 +4683,14 @@ void CABACReader::cuIbcLicFlag( CodingUnit& cu )
 #endif
   }
 #if !JVET_AE0078_IBC_LIC_EXTENSION
-  else if (!cu.ibcFilterFlag) // (cu.lwidth() * cu.lheight() > 256)
+  else if (!cu.ibcFilterFlag && cu.cs->sps->getUseIbcLic()) // (cu.lwidth() * cu.lheight() > 256)
   {
     cu.ibcLicFlag = false;
   }
 #endif
   else 
   {
-    cu.ibcLicFlag = true;
+    cu.ibcLicFlag = cu.cs->sps->getUseIbcLic()? true : false;
 #if JVET_AE0078_IBC_LIC_EXTENSION
     cu.ibcLicIdx = 0;
 #endif
diff --git a/source/Lib/EncoderLib/CABACWriter.cpp b/source/Lib/EncoderLib/CABACWriter.cpp
index 14762b658..4bcd74dee 100644
--- a/source/Lib/EncoderLib/CABACWriter.cpp
+++ b/source/Lib/EncoderLib/CABACWriter.cpp
@@ -4243,9 +4243,9 @@ void CABACWriter::cuIbcLicFlag(const CodingUnit& cu)
     DTRACE(g_trace_ctx, D_SYNTAX, "cu_ibc_lic_flag() filter_flag=%d\n", cu.ibcFilterFlag);
   }
 #if JVET_AE0078_IBC_LIC_EXTENSION
-  if (!cu.ibcFilterFlag)
+  if (!cu.ibcFilterFlag && cu.cs->sps->getUseIbcLic())
 #else
-  if (!cu.ibcFilterFlag && (cu.lwidth() * cu.lheight() <= 256))
+  if (!cu.ibcFilterFlag && cu.cs->sps->getUseIbcLic() && (cu.lwidth() * cu.lheight() <= 256))
 #endif
   {
     m_BinEncoder.encodeBin(cu.ibcLicFlag ? 1 : 0, Ctx::IbcLicFlag(0));
-- 
GitLab