From df484e234f0d2e98fb50dc4853db9f9d13d9b1ab Mon Sep 17 00:00:00 2001 From: Frank Bossen <fbossen@gmail.com> Date: Wed, 7 Feb 2024 09:26:57 -0500 Subject: [PATCH] Rename m_numDecodingUnitsMinus1 and drop -1 offset --- source/Lib/CommonLib/SEI.cpp | 4 ++-- source/Lib/CommonLib/SEI.h | 4 ++-- source/Lib/DecoderLib/SEIread.cpp | 12 ++++++------ source/Lib/EncoderLib/EncGOP.cpp | 6 +++--- source/Lib/EncoderLib/SEIwrite.cpp | 9 +++++---- 5 files changed, 18 insertions(+), 17 deletions(-) diff --git a/source/Lib/CommonLib/SEI.cpp b/source/Lib/CommonLib/SEI.cpp index 7ad42e755..733435aff 100644 --- a/source/Lib/CommonLib/SEI.cpp +++ b/source/Lib/CommonLib/SEI.cpp @@ -107,7 +107,7 @@ void SEIPictureTiming::copyTo (SEIPictureTiming& target) const ::memcpy(target.cpbRemovalDelayDeltaIdx, cpbRemovalDelayDeltaIdx, sizeof(cpbRemovalDelayDeltaIdx)); target.dpbOutputDelay = dpbOutputDelay; target.dpbOutputDuDelay = dpbOutputDuDelay; - target.m_numDecodingUnitsMinus1 = m_numDecodingUnitsMinus1; + target.numDecodingUnits = numDecodingUnits; target.m_duCommonCpbRemovalDelayFlag = m_duCommonCpbRemovalDelayFlag; target.m_numNalusInDuMinus1 = m_numNalusInDuMinus1; @@ -767,7 +767,7 @@ SEIPictureTiming::SEIPictureTiming(const SEIPictureTiming& sei) std::memcpy(cpbRemovalDelay, sei.cpbRemovalDelay, sizeof(sei.cpbRemovalDelay)); dpbOutputDelay = sei.dpbOutputDelay; dpbOutputDuDelay = sei.dpbOutputDuDelay; - m_numDecodingUnitsMinus1 = sei.m_numDecodingUnitsMinus1; + numDecodingUnits = sei.numDecodingUnits; m_duCommonCpbRemovalDelayFlag = sei.m_duCommonCpbRemovalDelayFlag; std::memcpy(m_duCommonCpbRemovalDelayMinus1, sei.m_duCommonCpbRemovalDelayMinus1, sizeof(sei.m_duCommonCpbRemovalDelayMinus1)); m_numNalusInDuMinus1 = sei.m_numNalusInDuMinus1; diff --git a/source/Lib/CommonLib/SEI.h b/source/Lib/CommonLib/SEI.h index ba73fa44d..6e645ee48 100644 --- a/source/Lib/CommonLib/SEI.h +++ b/source/Lib/CommonLib/SEI.h @@ -686,7 +686,7 @@ public: SEIPictureTiming() : dpbOutputDelay(0) , dpbOutputDuDelay(0) - , m_numDecodingUnitsMinus1(0) + , numDecodingUnits(0) , m_duCommonCpbRemovalDelayFlag(false) , hasAltTimingInfo(false) , m_ptDisplayElementalPeriodsMinus1(0) @@ -708,7 +708,7 @@ public: uint32_t cpbRemovalDelay[MAX_TLAYER]; uint32_t dpbOutputDelay; uint32_t dpbOutputDuDelay; - uint32_t m_numDecodingUnitsMinus1; + uint32_t numDecodingUnits; bool m_duCommonCpbRemovalDelayFlag; uint32_t m_duCommonCpbRemovalDelayMinus1[MAX_TLAYER]; std::vector<uint32_t> m_numNalusInDuMinus1; diff --git a/source/Lib/DecoderLib/SEIread.cpp b/source/Lib/DecoderLib/SEIread.cpp index 9e3758a64..445560f81 100644 --- a/source/Lib/DecoderLib/SEIread.cpp +++ b/source/Lib/DecoderLib/SEIread.cpp @@ -1821,11 +1821,11 @@ void SEIReader::xParseSEIPictureTiming(SEIPictureTiming& pt, uint32_t payloadSiz if (bp.hasDuHrdParams && bp.duCpbParamsInPicTimingSei) { sei_read_uvlc( pDecodedMessageOutputStream, symbol, "num_decoding_units_minus1" ); - pt.m_numDecodingUnitsMinus1 = symbol; - pt.m_numNalusInDuMinus1.resize(pt.m_numDecodingUnitsMinus1 + 1); - pt.m_duCpbRemovalDelayMinus1.resize((pt.m_numDecodingUnitsMinus1 + 1) * bp.maxSublayers); + pt.numDecodingUnits = symbol + 1; + pt.m_numNalusInDuMinus1.resize(pt.numDecodingUnits); + pt.m_duCpbRemovalDelayMinus1.resize(pt.numDecodingUnits * bp.maxSublayers); - if (pt.m_numDecodingUnitsMinus1 > 0) + if (pt.numDecodingUnits > 1) { sei_read_flag( pDecodedMessageOutputStream, symbol, "du_common_cpb_removal_delay_flag" ); pt.m_duCommonCpbRemovalDelayFlag = symbol; @@ -1841,11 +1841,11 @@ void SEIReader::xParseSEIPictureTiming(SEIPictureTiming& pt, uint32_t payloadSiz } } } - for (int i = 0; i <= pt.m_numDecodingUnitsMinus1; i++) + for (int i = 0; i < pt.numDecodingUnits; i++) { sei_read_uvlc( pDecodedMessageOutputStream, symbol, "num_nalus_in_du_minus1[i]" ); pt.m_numNalusInDuMinus1[i] = symbol; - if (!pt.m_duCommonCpbRemovalDelayFlag && i < pt.m_numDecodingUnitsMinus1) + if (!pt.m_duCommonCpbRemovalDelayFlag && i < pt.numDecodingUnits - 1) { for (int j = temporalId; j < bp.maxSublayers; j++) { diff --git a/source/Lib/EncoderLib/EncGOP.cpp b/source/Lib/EncoderLib/EncGOP.cpp index 15591fe9b..6289cfaf6 100644 --- a/source/Lib/EncoderLib/EncGOP.cpp +++ b/source/Lib/EncoderLib/EncGOP.cpp @@ -1120,7 +1120,7 @@ void EncGOP::xCreatePictureTimingSEI(int irapGopId, SEIMessages &seiMessages, SE if( hrd->getGeneralDecodingUnitHrdParamsPresentFlag() ) { const uint32_t numDU = (uint32_t) duData.size(); - pictureTimingSEI->m_numDecodingUnitsMinus1 = ( numDU - 1 ); + pictureTimingSEI->numDecodingUnits = numDU; pictureTimingSEI->m_duCommonCpbRemovalDelayFlag = false; pictureTimingSEI->m_numNalusInDuMinus1.resize( numDU ); const uint32_t maxNumSubLayers = slice->getSPS()->getMaxTLayers(); @@ -1344,7 +1344,7 @@ void EncGOP::xCreatePictureTimingSEI(int irapGopId, SEIMessages &seiMessages, SE if( m_pcCfg->getDecodingUnitInfoSEIEnabled() && hrd->getGeneralDecodingUnitHrdParamsPresentFlag() ) { - for( int i = 0; i < ( pictureTimingSEI->m_numDecodingUnitsMinus1 + 1 ); i ++ ) + for (int i = 0; i < pictureTimingSEI->numDecodingUnits; i++) { SEIDecodingUnitInfo *duInfoSEI = new SEIDecodingUnitInfo(); duInfoSEI->m_decodingUnitIdx = i; @@ -1414,7 +1414,7 @@ void EncGOP::xUpdateTimingSEI(SEIPictureTiming *pictureTimingSEI, std::deque<DUD int i; uint64_t ui64Tmp; uint32_t uiPrev = 0; - uint32_t numDU = ( pictureTimingSEI->m_numDecodingUnitsMinus1 + 1 ); + uint32_t numDU = pictureTimingSEI->numDecodingUnits; std::vector<uint32_t> &rDuCpbRemovalDelayMinus1 = pictureTimingSEI->m_duCpbRemovalDelayMinus1; uint32_t maxDiff = ( hrd->getTickDivisorMinus2() + 2 ) - 1; diff --git a/source/Lib/EncoderLib/SEIwrite.cpp b/source/Lib/EncoderLib/SEIwrite.cpp index 2feed5143..6105f3039 100644 --- a/source/Lib/EncoderLib/SEIwrite.cpp +++ b/source/Lib/EncoderLib/SEIwrite.cpp @@ -528,8 +528,9 @@ void SEIWriter::xWriteSEIPictureTiming(const SEIPictureTiming& sei, const SEIBuf } if (bp.hasDuHrdParams && bp.duCpbParamsInPicTimingSei) { - xWriteUvlc( sei.m_numDecodingUnitsMinus1, "num_decoding_units_minus1" ); - if (sei.m_numDecodingUnitsMinus1 > 0) + CHECK(sei.numDecodingUnits < 1, "numDecodingUnits must be at least 1"); + xWriteUvlc(sei.numDecodingUnits - 1, "pt_num_decoding_units_minus1"); + if (sei.numDecodingUnits > 1) { xWriteFlag( sei.m_duCommonCpbRemovalDelayFlag, "du_commmon_cpb_removal_delay_flag" ); if( sei.m_duCommonCpbRemovalDelayFlag ) @@ -543,10 +544,10 @@ void SEIWriter::xWriteSEIPictureTiming(const SEIPictureTiming& sei, const SEIBuf } } } - for( int i = 0; i <= sei.m_numDecodingUnitsMinus1; i ++ ) + for (int i = 0; i < sei.numDecodingUnits; i++) { xWriteUvlc( sei.m_numNalusInDuMinus1[i], "num_nalus_in_du_minus1[i]" ); - if( !sei.m_duCommonCpbRemovalDelayFlag && i < sei.m_numDecodingUnitsMinus1 ) + if (!sei.m_duCommonCpbRemovalDelayFlag && i < sei.numDecodingUnits - 1) { for (int j = temporalId; j < bp.maxSublayers; j++) { -- GitLab