From b4a990b751caa90501af1ba3c83cf0c629803ae7 Mon Sep 17 00:00:00 2001
From: Franck Galpin <franck.galpin@interdigital.com>
Date: Fri, 24 May 2024 14:15:18 +0000
Subject: [PATCH] Correct sps default values

---
 source/App/EncoderApp/EncAppCfg.cpp |  6 ++++--
 source/Lib/DecoderLib/VLCReader.cpp | 32 +++++++++++++++++++----------
 2 files changed, 25 insertions(+), 13 deletions(-)

diff --git a/source/App/EncoderApp/EncAppCfg.cpp b/source/App/EncoderApp/EncAppCfg.cpp
index 7d3d67a17..a8b18ba57 100644
--- a/source/App/EncoderApp/EncAppCfg.cpp
+++ b/source/App/EncoderApp/EncAppCfg.cpp
@@ -2862,10 +2862,12 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
     m_nnlfUnified = false;
 #endif
 #if NN_LF_UNIFIED_ID
-    m_nnlfId=NNLFUnifiedID::UNDEFINED;
+    m_nnlf =false;
+    m_nnlfTransInput = false;
+    m_nnlfUnified = false;
     switch(m_nnlfOption) {
     case 0:
-      m_nnlf =false;
+      m_nnlfId=NNLFUnifiedID::UNDEFINED;
       break;
     case 1:
       m_nnlf = true;
diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp
index 11469f331..2484f0054 100644
--- a/source/Lib/DecoderLib/VLCReader.cpp
+++ b/source/Lib/DecoderLib/VLCReader.cpp
@@ -1380,7 +1380,6 @@ void HLSyntaxReader::dpb_parameters(int maxSubLayersMinus1, bool subLayerInfoFla
 void HLSyntaxReader::parseSPS(SPS* pcSPS)
 {
   uint32_t  uiCode;
-
 #if ENABLE_TRACING
   xTraceSPSHeader ();
 #endif
@@ -1776,10 +1775,23 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS)
   }
 
 #if NN_COMMON_SPS
-  READ_FLAG(uiCode, "sps_nnlf_enabled_flag");                          pcSPS->setNnlfEnabledFlag ( uiCode ? true : false );
+  READ_FLAG(uiCode, "sps_nnlf_enabled_flag");
+  pcSPS->setNnlfEnabledFlag ( uiCode ? true : false );
+#if NN_LF_UNIFIED_ID
+  pcSPS->setNnlfId(NNLFUnifiedID::UNDEFINED);
+#if NN_FILTERING_SET_0
+  pcSPS->setNnlfSet0EnabledFlag( false );
+#endif
+#if NN_FILTERING_SET_1
+  pcSPS->setNnlfSet1EnabledFlag( false );
+#endif
+#if NN_FILTERING_SET_LC
+  pcSPS->setNnlfSetLCEnabledFlag( false );
+#endif
+  pcSPS->setNnlfUnifiedEnabledFlag(false );
+
   if (pcSPS->getNnlfEnabledFlag())
   {
-#if NN_LF_UNIFIED_ID
     READ_UVLC(uiCode, "sps_nnlf_model_id");
     assert(uiCode<(int)NNLFUnifiedID::UNDEFINED);
     pcSPS->setNnlfId ( (NNLFUnifiedID)uiCode); // dangerous cast
@@ -1793,14 +1805,11 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS)
 #if NN_FILTERING_SET_LC
     pcSPS->setNnlfSetLCEnabledFlag( pcSPS->getNnlfId()  == NNLFUnifiedID::LOP1 );
 #endif
-    pcSPS->setNnlfUnifiedEnabledFlag( pcSPS->getNnlfId()  == NNLFUnifiedID::HOPLOP );
-#endif
-#else
-    READ_UVLC(uiCode, "sps_nnlf_set");
-    pcSPS->setNnlfSet ( uiCode);
-#endif
+    pcSPS->setNnlfUnifiedEnabledFlag( pcSPS->getNnlfId()  == NNLFUnifiedID::HOPLOP ||  pcSPS->getNnlfId()  == NNLFUnifiedID::LOP3 ||  pcSPS->getNnlfId()  == NNLFUnifiedID::HOP4 );
   }
-#if !NN_LF_UNIFIED_ID
+#else
+  READ_UVLC(uiCode, "sps_nnlf_set");
+  pcSPS->setNnlfSet ( uiCode);
 #if NN_FILTERING_SET_0
   pcSPS->setNnlfSet0EnabledFlag(pcSPS->getNnlfEnabledFlag() && pcSPS->getNnlfSet() == 0 ? true : false);
 #endif
@@ -1812,7 +1821,8 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS)
 #endif
   pcSPS->setNnlfUnifiedEnabledFlag(pcSPS->getNnlfEnabledFlag() && pcSPS->getNnlfSet() == 3 ? true : false);
 #endif
-  
+#endif
+
 #if NN_LF_UNIFIED
 #if !NN_COMMON_SPS
   READ_FLAG( uiCode, "sps_nnlf_unified_enabled_flag" );                    pcSPS->setNnlfUnifiedEnabledFlag ( uiCode ? true : false );
-- 
GitLab