Changeset 99 in SHVCSoftware for branches/HM-10.0-dev-SHM/source/Lib/TLibEncoder


Ignore:
Timestamp:
25 Mar 2013, 18:29:05 (12 years ago)
Author:
seregin
Message:

check for MFM flag

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HM-10.0-dev-SHM/source/Lib/TLibEncoder/TEncGOP.cpp

    r98 r99  
    564564
    565565#if REF_IDX_MFM
    566       pcSlice->setRefPOCListILP(m_pcEncTop->getIlpList(), pcSlice->getBaseColPic());
     566      if( pcSlice->getSPS()->getMFMEnabledFlag() )
     567      {
     568        pcSlice->setRefPOCListILP(m_pcEncTop->getIlpList(), pcSlice->getBaseColPic());
     569      }
    567570#endif
    568571      pcSlice->addRefPicList ( m_pcEncTop->getIlpList(), 1);
    569572
    570573#if REF_IDX_MFM
    571       Bool found         = false;
    572       UInt ColFromL0Flag = pcSlice->getColFromL0Flag();
    573       UInt ColRefIdx     = pcSlice->getColRefIdx();
    574       for(Int colIdx = 0; colIdx < pcSlice->getNumRefIdx( RefPicList(1 - ColFromL0Flag) ); colIdx++)
    575       {
    576         if( pcSlice->getRefPic( RefPicList(1 - ColFromL0Flag), colIdx)->isILR() )
    577         {
    578           ColRefIdx = colIdx;
    579           found = true;
    580           break;
    581         }
    582       }
    583 
    584       if( found == false )
    585       {
    586         ColFromL0Flag = 1 - ColFromL0Flag;
     574      if( pcSlice->getSPS()->getMFMEnabledFlag() )
     575      {
     576        Bool found         = false;
     577        UInt ColFromL0Flag = pcSlice->getColFromL0Flag();
     578        UInt ColRefIdx     = pcSlice->getColRefIdx();
    587579        for(Int colIdx = 0; colIdx < pcSlice->getNumRefIdx( RefPicList(1 - ColFromL0Flag) ); colIdx++)
    588580        {
     
    590582          {
    591583            ColRefIdx = colIdx;
    592             found = true; 
     584            found = true;
    593585            break;
    594           }
    595         }
    596       }
    597 
    598       if(found == true)
    599       {
    600         pcSlice->setColFromL0Flag(ColFromL0Flag);
    601         pcSlice->setColRefIdx(ColRefIdx);
     586          }
     587        }
     588
     589        if( found == false )
     590        {
     591          ColFromL0Flag = 1 - ColFromL0Flag;
     592          for(Int colIdx = 0; colIdx < pcSlice->getNumRefIdx( RefPicList(1 - ColFromL0Flag) ); colIdx++)
     593          {
     594            if( pcSlice->getRefPic( RefPicList(1 - ColFromL0Flag), colIdx)->isILR() )
     595            {
     596              ColRefIdx = colIdx;
     597              found = true;
     598              break;
     599            }
     600          }
     601        }
     602
     603        if(found == true)
     604        {
     605          pcSlice->setColFromL0Flag(ColFromL0Flag);
     606          pcSlice->setColRefIdx(ColRefIdx);
     607        }
    602608      }
    603609#endif
Note: See TracChangeset for help on using the changeset viewer.