Ticket #1052: LTRP_LSBONLY_BUGFIX_1052.patch

File LTRP_LSBONLY_BUGFIX_1052.patch, 2.9 KB (added by adarsh, 8 years ago)

LTRP_LSBONLY_BUGFIX_1052

  • TLibCommon/TComSlice.cpp

     
    524524  }
    525525}
    526526
    527 Void TComSlice::checkCRA(TComReferencePictureSet *pReferencePictureSet, Int& pocCRA, Bool& prevRAPisBLA)
     527Void TComSlice::checkCRA(TComReferencePictureSet *pReferencePictureSet, Int& pocCRA, Bool& prevRAPisBLA, TComList<TComPic *>& rcListPic)
    528528{
    529529  for(Int i = 0; i < pReferencePictureSet->getNumberOfNegativePictures()+pReferencePictureSet->getNumberOfPositivePictures(); i++)
    530530  {
     
    535535  }
    536536  for(Int i = pReferencePictureSet->getNumberOfNegativePictures()+pReferencePictureSet->getNumberOfPositivePictures(); i < pReferencePictureSet->getNumberOfPictures(); i++)
    537537  {
     538    Int fullPoc = 0;
     539    if(!pReferencePictureSet->getCheckLTMSBPresent(i))     // if only LSB present, get full poc value
     540    {
     541      fullPoc = this->xGetLongTermRefPic(rcListPic, pReferencePictureSet->getPOC(i), false)->getPOC();
     542    }
     543    else
     544    {
     545      fullPoc = pReferencePictureSet->getPOC(i);
     546    }
     547
    538548    if(pocCRA < MAX_UINT && getPOC() > pocCRA)
    539549    {
    540       assert(pReferencePictureSet->getPOC(i) >= pocCRA);
     550      assert(fullPoc >= pocCRA);
    541551    }
    542552  }
    543553  if ( getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR || getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP ) // IDR picture found
  • TLibCommon/TComSlice.h

     
    13951395  NalUnitType getNalUnitType    ()                              { return m_eNalUnitType;        }
    13961396  Bool      getRapPicFlag       (); 
    13971397  Bool      getIdrPicFlag       ()                              { return getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR || getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP; }
    1398   Void      checkCRA(TComReferencePictureSet *pReferencePictureSet, Int& pocCRA, Bool& prevRAPisBLA);
     1398  Void      checkCRA(TComReferencePictureSet *pReferencePictureSet, Int& pocCRA, Bool& prevRAPisBLA, TComList<TComPic *>& rcListPic);
    13991399  Void      decodingRefreshMarking(Int& pocCRA, Bool& bRefreshPending, TComList<TComPic*>& rcListPic);
    14001400  Void      setSliceType        ( SliceType e )                 { m_eSliceType        = e;      }
    14011401  Void      setSliceQp          ( Int i )                       { m_iSliceQp          = i;      }
  • TLibDecoder/TDecTop.cpp

     
    484484
    485485  if (bNextSlice)
    486486  {
    487     pcSlice->checkCRA(pcSlice->getRPS(), m_pocCRA, m_prevRAPisBLA );
     487    pcSlice->checkCRA(pcSlice->getRPS(), m_pocCRA, m_prevRAPisBLA, m_cListPic );
    488488    // Set reference list
    489489    pcSlice->setRefPicList( m_cListPic );
    490490