From ec07aa9f30795ebf670ab48b2b0dab48e6c51308 Mon Sep 17 00:00:00 2001 From: Karsten Suehring <karsten.suehring@hhi.fraunhofer.de> Date: Wed, 2 Oct 2019 10:09:56 +0200 Subject: [PATCH] make sure, stored APS number space does not overlap --- source/Lib/CommonLib/Slice.cpp | 4 ++-- source/Lib/CommonLib/Slice.h | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/source/Lib/CommonLib/Slice.cpp b/source/Lib/CommonLib/Slice.cpp index f2def0a075..a6d215f237 100644 --- a/source/Lib/CommonLib/Slice.cpp +++ b/source/Lib/CommonLib/Slice.cpp @@ -2515,10 +2515,10 @@ bool ParameterSetManager::activatePPS(int ppsId, bool isIRAP) bool ParameterSetManager::activateAPS(int apsId, int apsType) { - APS *aps = m_apsMap.getPS((apsId << NUM_APS_TYPE_LEN) + apsType); + APS *aps = m_apsMap.getPS(apsId + (MAX_NUM_APS * apsType)); if (aps) { - m_apsMap.setActive((apsId << NUM_APS_TYPE_LEN) + apsType); + m_apsMap.setActive(apsId + (MAX_NUM_APS * apsType)); return true; } else diff --git a/source/Lib/CommonLib/Slice.h b/source/Lib/CommonLib/Slice.h index 5603792427..5822eed98a 100644 --- a/source/Lib/CommonLib/Slice.h +++ b/source/Lib/CommonLib/Slice.h @@ -2510,10 +2510,10 @@ public: bool activatePPS(int ppsId, bool isIRAP); APS** getAPSs() { return &m_apss[0]; } ParameterSetMap<APS>* getApsMap() { return &m_apsMap; } - void storeAPS(APS *aps, const std::vector<uint8_t> &naluData) { m_apsMap.storePS((aps->getAPSId() << NUM_APS_TYPE_LEN) + aps->getAPSType(), aps, &naluData); }; - APS* getAPS(int apsId, int apsType) { return m_apsMap.getPS((apsId << NUM_APS_TYPE_LEN) + apsType); }; - bool getAPSChangedFlag(int apsId, int apsType) const { return m_apsMap.getChangedFlag((apsId << NUM_APS_TYPE_LEN) + apsType); } - void clearAPSChangedFlag(int apsId, int apsType) { m_apsMap.clearChangedFlag((apsId << NUM_APS_TYPE_LEN) + apsType); } + void storeAPS(APS *aps, const std::vector<uint8_t> &naluData) { m_apsMap.storePS(aps->getAPSId() + (MAX_NUM_APS * aps->getAPSType()), aps, &naluData); }; + APS* getAPS(int apsId, int apsType) { return m_apsMap.getPS(apsId + (MAX_NUM_APS * apsType)); }; + bool getAPSChangedFlag(int apsId, int apsType) const { return m_apsMap.getChangedFlag(apsId + (MAX_NUM_APS * apsType)); } + void clearAPSChangedFlag(int apsId, int apsType) { m_apsMap.clearChangedFlag(apsId + ( MAX_NUM_APS * apsType)); } APS* getFirstAPS() { return m_apsMap.getFirstPS(); }; bool activateAPS(int apsId, int apsType); const SPS* getActiveSPS()const { return m_spsMap.getPS(m_activeSPSId); }; -- GitLab