From 8e34097e8088d7a6ff739c472bc8512f4dbf4f8f Mon Sep 17 00:00:00 2001
From: Xiang Li <xlxiangli@tencent.com>
Date: Mon, 25 Oct 2021 14:50:53 -0700
Subject: [PATCH] remove macro JVET_S0176_ITEM5

---
 source/App/DecoderApp/DecApp.cpp |  5 -----
 source/Lib/CommonLib/TypeDef.h   |  1 -
 source/Lib/DecoderLib/DecLib.cpp | 27 ---------------------------
 source/Lib/DecoderLib/DecLib.h   |  4 ----
 4 files changed, 37 deletions(-)

diff --git a/source/App/DecoderApp/DecApp.cpp b/source/App/DecoderApp/DecApp.cpp
index 100720131..a74a9d79e 100644
--- a/source/App/DecoderApp/DecApp.cpp
+++ b/source/App/DecoderApp/DecApp.cpp
@@ -490,11 +490,9 @@ uint32_t DecApp::decode()
       m_cDecLib.CheckNoOutputPriorPicFlagsInAccessUnit();
       m_cDecLib.resetAccessUnitNoOutputPriorPicFlags();
       m_cDecLib.checkLayerIdIncludedInCvss();
-#if JVET_S0176_ITEM5
       m_cDecLib.checkSEIInAccessUnit();
       m_cDecLib.resetAccessUnitNestedSliSeiInfo();
       m_cDecLib.resetIsFirstAuInCvs();
-#endif
       m_cDecLib.resetAccessUnitEos();
       m_cDecLib.resetAudIrapOrGdrAuFlag();
     }
@@ -502,9 +500,6 @@ uint32_t DecApp::decode()
     {
       m_cDecLib.checkTidLayerIdInAccessUnit();
       m_cDecLib.resetAccessUnitSeiTids();
-#if !JVET_S0176_ITEM5
-      m_cDecLib.checkSEIInAccessUnit();
-#endif
       m_cDecLib.resetAccessUnitSeiPayLoadTypes();
       m_cDecLib.resetAccessUnitNals();
       m_cDecLib.resetAccessUnitApsNals();
diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h
index 7269a0f58..4a0b563ca 100644
--- a/source/Lib/CommonLib/TypeDef.h
+++ b/source/Lib/CommonLib/TypeDef.h
@@ -55,7 +55,6 @@
 //########### place macros to be removed in next cycle below this line ###############
 
 
-#define JVET_S0176_ITEM5                                  1 // JVET-S0176 #5: When an SLI SEI message is present for a CVS, the value of sps_num_subpics_minus1 shall be the same for all the SPSs referenced by the pictures in the layers with multiple subpictures per picture.
 
 #define JVET_W0078_MVP_SEI                                1 // JVET-W0078 Multiview view position SEI message
 
diff --git a/source/Lib/DecoderLib/DecLib.cpp b/source/Lib/DecoderLib/DecLib.cpp
index 1347b946c..61e9fb001 100644
--- a/source/Lib/DecoderLib/DecLib.cpp
+++ b/source/Lib/DecoderLib/DecLib.cpp
@@ -475,9 +475,7 @@ DecLib::DecLib()
   std::fill_n(m_prevGDRInSameLayerRecoveryPOC, MAX_VPS_LAYERS, -MAX_INT);
   std::fill_n(m_firstSliceInSequence, MAX_VPS_LAYERS, true);
   std::fill_n(m_pocCRA, MAX_VPS_LAYERS, -MAX_INT);
-#if JVET_S0176_ITEM5
   std::fill_n(m_accessUnitSpsNumSubpic, MAX_VPS_LAYERS, 1);
-#endif
   for (int i = 0; i < MAX_VPS_LAYERS; i++)
   {
     m_associatedIRAPType[i] = NAL_UNIT_INVALID;
@@ -1119,20 +1117,8 @@ void DecLib::checkLayerIdIncludedInCvss()
     }
   }
 
-#if !JVET_S0176_ITEM5
-  // update the value of m_isFirstAuInCvs for the next AU according to NAL_UNIT_EOS in each layer
-  for (auto pic = m_accessUnitPicInfo.begin(); pic != m_accessUnitPicInfo.end(); pic++)
-  {
-    m_isFirstAuInCvs = m_accessUnitEos[pic->m_nuhLayerId] ? true : false;
-    if(!m_isFirstAuInCvs)
-    {
-      break;
-    }
-  }
-#endif
 }
 
-#if JVET_S0176_ITEM5
 void DecLib::resetIsFirstAuInCvs()
 {
   // update the value of m_isFirstAuInCvs for the next AU according to NAL_UNIT_EOS in each layer
@@ -1145,7 +1131,6 @@ void DecLib::resetIsFirstAuInCvs()
     }
   }
 }
-#endif
 
 void DecLib::CheckNoOutputPriorPicFlagsInAccessUnit()
 {
@@ -1210,10 +1195,8 @@ void DecLib::checkTidLayerIdInAccessUnit()
 
 void DecLib::checkSEIInAccessUnit()
 {
-#if JVET_S0176_ITEM5
   int olsIdxIncludeAllLayes = -1;
   bool isNonNestedSliFound = false;
-#endif
 
   bool bSdiPresentInAu = false;
 #if JVET_W0078_MVP_SEI 
@@ -1248,13 +1231,11 @@ void DecLib::checkSEIInAccessUnit()
         }
         if (olsIncludeAllLayersFind)
         {
-#if JVET_S0176_ITEM5
           olsIdxIncludeAllLayes = i;
           if (payloadType == SEI::SUBPICTURE_LEVEL_INFO)
           {
             isNonNestedSliFound = true;
           }
-#endif
           break;
         }
       }
@@ -1288,7 +1269,6 @@ void DecLib::checkSEIInAccessUnit()
   CHECK(bSdiPresentInAu && bAuxSEIsBeforeSdiSEIPresent[1], "When an AU contains both an SDI SEI message with sdi_aux_id[i] equal to 1 for at least one value of i and an ACI SEI message, the SDI SEI message shall precede the ACI SEI message in decoding order.");
   CHECK(bSdiPresentInAu && bAuxSEIsBeforeSdiSEIPresent[2], "When an AU contains both an SDI SEI message with sdi_aux_id[i] equal to 2 for at least one value of i and a DRI SEI message, the SDI SEI message shall precede the DRI SEI message in decoding order.");
 
-#if JVET_S0176_ITEM5
   if (m_isFirstAuInCvs)
   {
     // when a non-nested SLI SEI shows up, check sps_num_subpics_minus1 for the OLS contains all layers with multiple subpictures per picture
@@ -1310,10 +1290,8 @@ void DecLib::checkSEIInAccessUnit()
       }
     }
   }
-#endif
 }
 
-#if JVET_S0176_ITEM5
 void DecLib::checkMultiSubpicNum(int olsIdx)
 {
   int multiSubpicNum = 0;
@@ -1330,7 +1308,6 @@ void DecLib::checkMultiSubpicNum(int olsIdx)
     }
   }
 }
-#endif
 
 #define SEI_REPETITION_CONSTRAINT_LIST_SIZE  21
 
@@ -2242,7 +2219,6 @@ void DecLib::xParsePrefixSEImessages()
     m_prefixSEINALUs.pop_front();
   }
   xCheckPrefixSEIMessages(m_SEIs);
-#if JVET_S0176_ITEM5
   SEIMessages scalableNestingSEIs = getSeisByType(m_SEIs, SEI::SCALABLE_NESTING);
   if (scalableNestingSEIs.size())
   {
@@ -2260,7 +2236,6 @@ void DecLib::xParsePrefixSEImessages()
       m_accessUnitNestedSliSeiInfo.push_back(sliSeiInfo);
     }
   }
-#endif
   xCheckDUISEIMessages(m_SEIs);
 }
 
@@ -3321,9 +3296,7 @@ void DecLib::xDecodeSPS( InputNALUnit& nalu )
   sps->setLayerId( nalu.m_nuhLayerId );
   DTRACE( g_trace_ctx, D_QP_PER_CTU, "CTU Size: %dx%d", sps->getMaxCUWidth(), sps->getMaxCUHeight() );
   m_parameterSetManager.storeSPS( sps, nalu.getBitstream().getFifo() );
-#if JVET_S0176_ITEM5
   m_accessUnitSpsNumSubpic[nalu.m_nuhLayerId] = sps->getNumSubPics();
-#endif
 }
 
 void DecLib::xDecodePPS( InputNALUnit& nalu )
diff --git a/source/Lib/DecoderLib/DecLib.h b/source/Lib/DecoderLib/DecLib.h
index 5e6192754..bf7eab3c1 100644
--- a/source/Lib/DecoderLib/DecLib.h
+++ b/source/Lib/DecoderLib/DecLib.h
@@ -177,7 +177,6 @@ private:
   };
   std::vector<AccessUnitPicInfo> m_accessUnitPicInfo;
   std::vector<AccessUnitPicInfo> m_firstAccessUnitPicInfo;
-#if JVET_S0176_ITEM5
   struct AccessUnitNestedSliSeiInfo
   {
     bool m_nestedSliPresent;
@@ -186,7 +185,6 @@ private:
   };
   std::vector<AccessUnitNestedSliSeiInfo> m_accessUnitNestedSliSeiInfo;
   int m_accessUnitSpsNumSubpic[MAX_VPS_LAYERS];
-#endif
   struct NalUnitInfo
   {
     NalUnitType     m_nalUnitType; ///< nal_unit_type
@@ -282,11 +280,9 @@ public:
   void checkLayerIdIncludedInCvss();
   void CheckNoOutputPriorPicFlagsInAccessUnit();
   void resetAccessUnitNoOutputPriorPicFlags() { m_accessUnitNoOutputPriorPicFlags.clear(); }
-#if JVET_S0176_ITEM5
   void checkMultiSubpicNum(int olsIdx);
   void resetAccessUnitNestedSliSeiInfo()  { m_accessUnitNestedSliSeiInfo.clear(); }
   void resetIsFirstAuInCvs();
-#endif
   void checkSeiInPictureUnit();
   void resetPictureSeiNalus();
   bool isSliceNaluFirstInAU( bool newPicture, InputNALUnit &nalu );
-- 
GitLab