From 93fc72a3450537d7e360c5fc915792bbe49de8f5 Mon Sep 17 00:00:00 2001 From: zhipin <zhipin.deng@bytedance.com> Date: Fri, 11 Sep 2020 11:16:35 +0800 Subject: [PATCH] fix ticket#1148 --- source/Lib/CommonLib/Slice.cpp | 6 +++--- source/Lib/DecoderLib/DecLib.cpp | 18 +++++++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/source/Lib/CommonLib/Slice.cpp b/source/Lib/CommonLib/Slice.cpp index 910fd7d93..2ce28a17b 100644 --- a/source/Lib/CommonLib/Slice.cpp +++ b/source/Lib/CommonLib/Slice.cpp @@ -49,11 +49,11 @@ Slice::Slice() : m_iPOC ( 0 ) , m_iLastIDR ( 0 ) -, m_prevGDRInSameLayerPOC ( MAX_INT ) +, m_prevGDRInSameLayerPOC ( -MAX_INT ) , m_iAssociatedIRAP ( 0 ) , m_iAssociatedIRAPType ( NAL_UNIT_INVALID ) -, m_prevGDRSubpicPOC ( MAX_INT ) -, m_prevIRAPSubpicPOC ( 0 ) +, m_prevGDRSubpicPOC ( -MAX_INT ) +, m_prevIRAPSubpicPOC ( -MAX_INT ) , m_prevIRAPSubpicType ( NAL_UNIT_INVALID ) , m_rpl0Idx ( -1 ) , m_rpl1Idx ( -1 ) diff --git a/source/Lib/DecoderLib/DecLib.cpp b/source/Lib/DecoderLib/DecLib.cpp index 7b49ca383..a4de66711 100644 --- a/source/Lib/DecoderLib/DecLib.cpp +++ b/source/Lib/DecoderLib/DecLib.cpp @@ -394,8 +394,6 @@ DecLib::DecLib() : m_iMaxRefPicNum(0) , m_isFirstGeneralHrd(true) , m_prevGeneralHrdParams() - , m_prevGDRInSameLayerPOC{ MAX_INT } - , m_pocCRA{ MAX_INT } , m_associatedIRAPDecodingOrderNumber{ 0 } , m_decodingOrderCounter(0) , m_puCounter(0) @@ -461,11 +459,13 @@ DecLib::DecLib() memset(m_prevEOS, false, sizeof(m_prevEOS)); #endif memset(m_accessUnitEos, false, sizeof(m_accessUnitEos)); + std::fill_n(m_prevGDRInSameLayerPOC, MAX_VPS_LAYERS, -MAX_INT); + std::fill_n(m_pocCRA, MAX_VPS_LAYERS, -MAX_INT); for (int i = 0; i < MAX_VPS_LAYERS; i++) { m_associatedIRAPType[i] = NAL_UNIT_INVALID; - std::fill_n(m_prevGDRSubpicPOC[i], MAX_NUM_SUB_PICS, MAX_INT); - memset(m_prevIRAPSubpicPOC[i], 0, sizeof(int)*MAX_NUM_SUB_PICS); + std::fill_n(m_prevGDRSubpicPOC[i], MAX_NUM_SUB_PICS, -MAX_INT); + std::fill_n(m_prevIRAPSubpicPOC[i], MAX_NUM_SUB_PICS, -MAX_INT); memset(m_prevIRAPSubpicDecOrderNo[i], 0, sizeof(int)*MAX_NUM_SUB_PICS); std::fill_n(m_prevIRAPSubpicType[i], MAX_NUM_SUB_PICS, NAL_UNIT_INVALID); } @@ -3041,15 +3041,15 @@ bool DecLib::decode(InputNALUnit& nalu, int& iSkipFrame, int& iPOCLastDisplay, i case NAL_UNIT_EOS: m_associatedIRAPType[nalu.m_nuhLayerId] = NAL_UNIT_INVALID; - m_pocCRA[nalu.m_nuhLayerId] = MAX_INT; - m_prevGDRInSameLayerPOC[nalu.m_nuhLayerId] = MAX_INT; - std::fill_n(m_prevGDRSubpicPOC[nalu.m_nuhLayerId], MAX_NUM_SUB_PICS, MAX_INT); - memset(m_prevIRAPSubpicPOC[nalu.m_nuhLayerId], 0, sizeof(int)*MAX_NUM_SUB_PICS); + m_pocCRA[nalu.m_nuhLayerId] = -MAX_INT; + m_prevGDRInSameLayerPOC[nalu.m_nuhLayerId] = -MAX_INT; + std::fill_n(m_prevGDRSubpicPOC[nalu.m_nuhLayerId], MAX_NUM_SUB_PICS, -MAX_INT); + std::fill_n(m_prevIRAPSubpicPOC[nalu.m_nuhLayerId], MAX_NUM_SUB_PICS, -MAX_INT); memset(m_prevIRAPSubpicDecOrderNo[nalu.m_nuhLayerId], 0, sizeof(int)*MAX_NUM_SUB_PICS); std::fill_n(m_prevIRAPSubpicType[nalu.m_nuhLayerId], MAX_NUM_SUB_PICS, NAL_UNIT_INVALID); m_pocRandomAccess = MAX_INT; m_prevLayerID = MAX_INT; - m_prevPOC = MAX_INT; + m_prevPOC = -MAX_INT; m_prevSliceSkipped = false; m_skippedPOC = 0; m_accessUnitEos[nalu.m_nuhLayerId] = true; -- GitLab