Ticket #1125: rasl_dependent_slices.patch

File rasl_dependent_slices.patch, 1.9 KB (added by bheng, 11 years ago)
  • Lib/TLibDecoder/TDecTop.cpp

     
    5656  m_prevPOC                = MAX_INT;
    5757  m_bFirstSliceInPicture    = true;
    5858  m_bFirstSliceInSequence   = true;
     59  m_prevSliceSkipped = false;
     60  m_skippedPOC = 0;
    5961}
    6062
    6163TDecTop::~TDecTop()
     
    333335  m_apcSlicePilot->setTLayerInfo(nalu.m_temporalId);
    334336
    335337  m_cEntropyDecoder.decodeSliceHeader (m_apcSlicePilot, &m_parameterSetManagerDecoder);
     338 
     339  // set POC for dependent slices in skipped pictures
     340  if(m_apcSlicePilot->getDependentSliceSegmentFlag() && m_prevSliceSkipped)
     341  {
     342    m_apcSlicePilot->setPOC(m_skippedPOC);
     343  }
    336344
    337345  // Skip pictures due to random access
    338346  if (isRandomAccessSkipPicture(iSkipFrame, iPOCLastDisplay))
    339347  {
     348    m_prevSliceSkipped = true;
     349    m_skippedPOC = m_apcSlicePilot->getPOC();
    340350    return false;
    341351  }
    342352  // Skip TFD pictures associated with BLA/BLANT pictures
    343353  if (isSkipPictureForBLA(iPOCLastDisplay))
    344354  {
     355    m_prevSliceSkipped = true;
     356    m_skippedPOC = m_apcSlicePilot->getPOC();
    345357    return false;
    346358  }
     359 
     360  // clear previous slice skipped flag
     361  m_prevSliceSkipped = false;
    347362
    348363  //we should only get a different poc for a new picture (with CTU address==0)
    349364  if (m_apcSlicePilot->isNextSlice() && m_apcSlicePilot->getPOC()!=m_prevPOC && !m_bFirstSliceInSequence && (!m_apcSlicePilot->getSliceCurStartCUAddr()==0))
  • Lib/TLibDecoder/TDecTop.h

     
    9797  Int                     m_prevPOC;
    9898  Bool                    m_bFirstSliceInPicture;
    9999  Bool                    m_bFirstSliceInSequence;
     100  Bool                    m_prevSliceSkipped;
     101  Int                     m_skippedPOC;
    100102
    101103public:
    102104  TDecTop();