Changeset 462 in SHVCSoftware for branches/SHM-4.0-dev/source/Lib


Ignore:
Timestamp:
12 Nov 2013, 19:19:27 (11 years ago)
Author:
seregin
Message:

use layerIdc for accessing the reference layer picture for MFM constraint

Location:
branches/SHM-4.0-dev/source/Lib
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-4.0-dev/source/Lib/TLibCommon/TComSlice.cpp

    r460 r462  
    30503050}
    30513051
     3052#if MFM_ENCCONSTRAINT
     3053TComPic* TComSlice::getBaseColPic(  TComList<TComPic*>& rcListPic )
     3054{
     3055#if POC_RESET_FLAG
     3056  return xGetRefPic( rcListPic, m_bPocResetFlag ? 0 : m_iPOC );
     3057#else
     3058  return xGetRefPic( rcListPic, m_iPOC );
     3059#endif
     3060}
     3061#endif
     3062
    30523063#if REF_IDX_MFM
    30533064Void TComSlice::setRefPOCListILP( TComPic** ilpPic, TComPic** pcRefPicRL )
  • branches/SHM-4.0-dev/source/Lib/TLibCommon/TComSlice.h

    r460 r462  
    19771977  TComPic*  getBaseColPic       (UInt refLayerIdc)                { return m_pcBaseColPic[refLayerIdc]; }
    19781978  TComPic** getBaseColPic       ()                { return &m_pcBaseColPic[0]; }
     1979#if MFM_ENCCONSTRAINT
     1980  TComPic*  getBaseColPic( TComList<TComPic*>& rcListPic );
     1981#endif
    19791982
    19801983  Void      setLayerId (UInt layerId)   { m_layerId = layerId; }
  • branches/SHM-4.0-dev/source/Lib/TLibDecoder/TDecTop.cpp

    r460 r462  
    12261226      Int refLayerId = pcSlice->getRefPic( pcSlice->getSliceType() == B_SLICE ? ( RefPicList )( 1 - pcSlice->getColFromL0Flag() ) : REF_PIC_LIST_0 , pcSlice->getColRefIdx() )->getLayerId();
    12271227      if( refLayerId != pcSlice->getLayerId() )
    1228       {       
    1229         TComPic * pColBasePic = pcSlice->getBaseColPic( refLayerId );
     1228      {
     1229        TComPic* pColBasePic = pcSlice->getBaseColPic( *m_ppcTDecTop[refLayerId]->getListPic() );
    12301230        assert( pColBasePic->checkSameRefInfo() == true );
    12311231      }
  • branches/SHM-4.0-dev/source/Lib/TLibEncoder/TEncGOP.cpp

    r461 r462  
    11821182        UInt ColFromL0Flag = pcSlice->getColFromL0Flag();
    11831183        UInt ColRefIdx     = pcSlice->getColRefIdx();
     1184
    11841185        for(Int colIdx = 0; colIdx < pcSlice->getNumRefIdx( RefPicList(1 - ColFromL0Flag) ); colIdx++)
    11851186        {
    11861187          if( pcSlice->getRefPic( RefPicList(1 - ColFromL0Flag), colIdx)->isILR(m_layerId)
    11871188#if MFM_ENCCONSTRAINT
    1188             && pcSlice->getBaseColPic( pcSlice->getRefPic( RefPicList(1 - ColFromL0Flag), colIdx)->getLayerId() )->checkSameRefInfo() == true
     1189            && pcSlice->getBaseColPic( *m_ppcTEncTop[pcSlice->getRefPic( RefPicList(1 - ColFromL0Flag), colIdx)->getLayerId()]->getListPic() )->checkSameRefInfo() == true
    11891190#endif
    11901191            )
     
    12031204            if( pcSlice->getRefPic( RefPicList(1 - ColFromL0Flag), colIdx)->isILR(m_layerId)
    12041205#if MFM_ENCCONSTRAINT
    1205               && pcSlice->getBaseColPic( pcSlice->getRefPic( RefPicList(1 - ColFromL0Flag), colIdx)->getLayerId() )->checkSameRefInfo() == true
     1206              && pcSlice->getBaseColPic( *m_ppcTEncTop[pcSlice->getRefPic( RefPicList(1 - ColFromL0Flag), colIdx)->getLayerId()]->getListPic() )->checkSameRefInfo() == true
    12061207#endif
    12071208              )
Note: See TracChangeset for help on using the changeset viewer.