From 2695825af7aaa1e74ddac3823e07e8b44c102172 Mon Sep 17 00:00:00 2001
From: Yong He <yonghe@qti.qualcomm.com>
Date: Tue, 14 Feb 2023 15:59:19 -0800
Subject: [PATCH] remove sei.m_poseNumofSeiMessages

---
 source/Lib/CommonLib/SEI.h           |  3 ++-
 source/Lib/EncoderLib/SEIEncoder.cpp |  8 +++++---
 source/Lib/EncoderLib/SEIwrite.cpp   | 18 +++++++++++++-----
 3 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/source/Lib/CommonLib/SEI.h b/source/Lib/CommonLib/SEI.h
index 54ca24d96..09cf4245c 100644
--- a/source/Lib/CommonLib/SEI.h
+++ b/source/Lib/CommonLib/SEI.h
@@ -155,9 +155,10 @@ public:
   bool                   m_posEnabled;
   std::vector<uint16_t>  m_posPayloadType;
   std::vector<uint16_t>   m_posProcessingOrder;
-  uint32_t               m_posNumofSeiMessages;
 #if JVET_AC0058_SEI
   std::vector<std::vector<uint8_t>> m_posPrefixByte;
+#else
+  uint32_t               m_posNumofSeiMessages;
 #endif
 };
 
diff --git a/source/Lib/EncoderLib/SEIEncoder.cpp b/source/Lib/EncoderLib/SEIEncoder.cpp
index 062362cd5..1e4876daa 100644
--- a/source/Lib/EncoderLib/SEIEncoder.cpp
+++ b/source/Lib/EncoderLib/SEIEncoder.cpp
@@ -612,14 +612,16 @@ void SEIEncoder::initSEIProcessingOrderInfo(SEIProcessingOrderInfo *seiProcessin
   assert(seiProcessingOrderInfo != nullptr);
 
   uint32_t numSEIMessages = m_pcCfg->getPoSEINumofSeiMessages();
+#if JVET_AC0058_SEI
+  seiProcessingOrderInfo->m_posPrefixByte.resize(numSEIMessages);
+#else  
   seiProcessingOrderInfo->m_posNumofSeiMessages = numSEIMessages;
+#endif
   seiProcessingOrderInfo->m_posEnabled          = m_pcCfg->getPoSEIEnabled();
 
   seiProcessingOrderInfo->m_posPayloadType.resize(numSEIMessages);
   seiProcessingOrderInfo->m_posProcessingOrder.resize(numSEIMessages);
-#if JVET_AC0058_SEI
-  seiProcessingOrderInfo->m_posPrefixByte.resize(numSEIMessages);
-#endif
+
   for (uint32_t i = 0; i < numSEIMessages; i++) {
     seiProcessingOrderInfo->m_posPayloadType[i]     = m_pcCfg->getPoSEIPayloadType(i);
     seiProcessingOrderInfo->m_posProcessingOrder[i] = m_pcCfg->getPoSEIProcessingOrder(i);
diff --git a/source/Lib/EncoderLib/SEIwrite.cpp b/source/Lib/EncoderLib/SEIwrite.cpp
index 617ea42d3..4858a1c81 100644
--- a/source/Lib/EncoderLib/SEIwrite.cpp
+++ b/source/Lib/EncoderLib/SEIwrite.cpp
@@ -1553,22 +1553,30 @@ void SEIWriter::xWriteSEIShutterInterval(const SEIShutterIntervalInfo &sei)
 
 void SEIWriter::xWriteSEIProcessingOrder(const SEIProcessingOrderInfo &sei)
 {
-  CHECK(sei.m_posNumofSeiMessages < 2, "An SEI processing order SEI message shall contain at least two pairs sei_payloadType[i] and sei_processingOrder[i]");
-  for (uint32_t i=0; i < sei.m_posNumofSeiMessages; i++)
+#if JVET_AC0058_SEI
+  CHECK(sei.m_posPayloadType.size() < 2, "An SEI processing order SEI message shall contain at least two pairs sei_payloadType[i] and sei_processingOrder[i]");
+  for (uint32_t i = 0; i < sei.m_posPayloadType.size(); i++)
   {
     xWriteCode(sei.m_posPayloadType[i], 16, "po_sei_payload_type[i]");
-#if JVET_AC0058_SEI
-    if (sei.m_posPayloadType[i] == (uint16_t)SEI::PayloadType::USER_DATA_REGISTERED_ITU_T_T35)
+
+    if (sei.m_posPayloadType[i] == (uint16_t) SEI::PayloadType::USER_DATA_REGISTERED_ITU_T_T35)
     {
       xWriteCode((uint32_t)sei.m_posPrefixByte[i].size(), 8, "po_num_t35_byte[i]");
       for (uint32_t j = 0; j < sei.m_posPrefixByte[i].size(); j++)
       {
         xWriteCode(sei.m_posPrefixByte[i][j], 8, "po_t35_byte[i][j]");
       }
+      xWriteCode(sei.m_posProcessingOrder[i], 16, "po_sei_processing_order[i]");
     }
-#endif
+  }
+#else
+  CHECK(sei.m_posNumofSeiMessages < 2, "An SEI processing order SEI message shall contain at least two pairs sei_payloadType[i] and sei_processingOrder[i]");
+  for (uint32_t i=0; i < sei.m_posNumofSeiMessages; i++)
+  {
+    xWriteCode(sei.m_posPayloadType[i], 16, "po_sei_payload_type[i]");
     xWriteCode(sei.m_posProcessingOrder[i], 16, "po_sei_processing_order[i]");
   }
+#endif
 }
 
 void SEIWriter::xWriteSEIConstrainedRaslIndication(const SEIConstrainedRaslIndication& /*sei*/)
-- 
GitLab