From a8e2f036bea4c8daeabe0accd0ab488c600660d2 Mon Sep 17 00:00:00 2001 From: Ahmed Sidiya <sidiyaa@sharplabs.com> Date: Fri, 12 Apr 2024 17:08:47 -0600 Subject: [PATCH] Add loop to read number of extension bits remaining as suggested by Karsten --- source/Lib/DecoderLib/SEIread.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/source/Lib/DecoderLib/SEIread.cpp b/source/Lib/DecoderLib/SEIread.cpp index 235cf10f9..5b6491514 100644 --- a/source/Lib/DecoderLib/SEIread.cpp +++ b/source/Lib/DecoderLib/SEIread.cpp @@ -3215,19 +3215,29 @@ void SEIReader::xParseSEINNPostFilterCharacteristics(SEINeuralNetworkPostFilterC #if JVET_AF2032_NNPFC_APPLICATION_INFORMATION_SIGNALING sei_read_uvlc(pDecodedMessageOutputStream, val, "nnpfc_metadata_extension_num_bits"); uint32_t metadataExtensionNumBits = val; - if (metadataExtensionNumBits > 0 ) - { + uint32_t numberExtensionBitsUsed = 0; + if ( metadataExtensionNumBits > 0 ) + { + CHECK (val > 4096, "Values of nnpfc_metadata_extension_num_bits greater than 4096 shall not be present in bitstreams"); if ( sei.m_purpose == 0 ) - { + { sei_read_flag(pDecodedMessageOutputStream, val, "nnpfc_application_purpose_tag_uri_present_flag"); sei.m_applicationPurposeTagUriPresentFlag = val; + numberExtensionBitsUsed++; if ( sei.m_applicationPurposeTagUriPresentFlag ) { std::string val2; sei_read_string(pDecodedMessageOutputStream, val2, "nnpfc_application_purpose_tag_uri"); sei.m_applicationPurposeTagUri = val2; + numberExtensionBitsUsed += (static_cast<uint32_t>(sei.m_applicationPurposeTagUri.length() + 1) * 8); } } + uint32_t numberExtensionBitRemaining = metadataExtensionNumBits - numberExtensionBitsUsed; + for (uint32_t i = 0; i < numberExtensionBitRemaining; i++) + { + uint32_t val2; + sei_read_code(pDecodedMessageOutputStream, 1, val2, "nnpfc_reserved_metadata_extension"); + } } #else sei_read_uvlc(pDecodedMessageOutputStream, val, "nnpfc_metadata_extension_num_bits"); // nnpfc_metadata_extension_num_bits shall be equal to 0 in the current edition @@ -3551,4 +3561,4 @@ void SEIReader::xParseSEISEIPrefixIndication(SEIPrefixIndication &sei, uint32_t } } -//! \} +//! \} \ No newline at end of file -- GitLab