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