Commit 68d54ded authored by Jack Enhorn's avatar Jack Enhorn
Browse files

Fix for overlapping GDR periods

parent 2ad2609d
......@@ -2107,9 +2107,9 @@ bool DecLib::xDecodeSlice(InputNALUnit &nalu, int &iSkipFrame, int iPOCLastDispl
m_accessUnitNoOutputPriorPicFlags.push_back(m_apcSlicePilot->getNoOutputOfPriorPicsFlag());
}
if (m_picHeader.getGdrPicFlag())
if (m_picHeader.getGdrPicFlag() && m_prevGDRInSameLayerPOC[nalu.m_nuhLayerId] == -MAX_INT ) // Only care about recovery POC if it is the first coded GDR picture in the layer
{
m_prevGDRInSameLayerRecoveryPOC[nalu.m_nuhLayerId] = m_picHeader.getRecoveryPocCnt();
m_prevGDRInSameLayerRecoveryPOC[nalu.m_nuhLayerId] = m_apcSlicePilot->getPOC() + m_picHeader.getRecoveryPocCnt();
}
PPS *pps = m_parameterSetManager.getPPS(m_picHeader.getPPSId());
......
......@@ -230,7 +230,7 @@ public:
void updateAssociatedIRAP();
void updatePrevGDRInSameLayer();
void updatePrevIRAPAndGDRSubpic();
bool getGDRRecoveryPocReached() { return ( m_pcPic->getPOC() >= m_prevGDRInSameLayerPOC[m_pcPic->layerId] + m_prevGDRInSameLayerRecoveryPOC[m_pcPic->layerId] ); }
bool getGDRRecoveryPocReached() { return ( m_pcPic->getPOC() >= m_prevGDRInSameLayerRecoveryPOC[m_pcPic->layerId] ); }
#if JVET_S0078_NOOUTPUTPRIORPICFLAG
bool getAudIrapOrGdrAuFlag() const { return m_audIrapOrGdrAuFlag; }
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment