diff --git a/source/Lib/DecoderLib/DecLib.cpp b/source/Lib/DecoderLib/DecLib.cpp index 71e712d6c9446de4d1d39d735dc42338997d243e..d64337d0800655a68540aa28f700f50e1b71eaa7 100644 --- a/source/Lib/DecoderLib/DecLib.cpp +++ b/source/Lib/DecoderLib/DecLib.cpp @@ -1453,6 +1453,18 @@ void DecLib::resetPictureSeiNalus() } } +/** + - Reset list of Prefix SEI NAL units from the current picture + */ +void DecLib::resetPrefixSeiNalus() +{ + while (!m_prefixSEINALUs.empty()) + { + delete m_prefixSEINALUs.front(); + m_prefixSEINALUs.pop_front(); + } +} + void DecLib::checkSeiContentInAccessUnit() { if (m_accessUnitSeiNalus.empty()) @@ -2926,6 +2938,7 @@ bool DecLib::xDecodeSlice(InputNALUnit &nalu, int &iSkipFrame, int iPOCLastDispl resetAccessUnitApsNals(); resetAccessUnitPicInfo(); resetPictureUnitNals(); + resetPrefixSeiNalus(); m_maxDecSubPicIdx = 0; m_maxDecSliceAddrInSubPic = -1; return false; diff --git a/source/Lib/DecoderLib/DecLib.h b/source/Lib/DecoderLib/DecLib.h index 1f38522bfeb22a8d1c7ce39ab0896c9911224560..ca18d1ed490c0b28be58e430c2c9a1e04b8aacd8 100644 --- a/source/Lib/DecoderLib/DecLib.h +++ b/source/Lib/DecoderLib/DecLib.h @@ -291,6 +291,7 @@ public: void resetIsFirstAuInCvs(); void checkSeiInPictureUnit(); void resetPictureSeiNalus(); + void resetPrefixSeiNalus(); bool isSliceNaluFirstInAU( bool newPicture, InputNALUnit &nalu ); void processSuffixApsNalus();