Changeset 964 in 3DVCSoftware for trunk/source/App/TAppDecoder/TAppDecTop.h


Ignore:
Timestamp:
5 Jul 2014, 05:16:45 (10 years ago)
Author:
tech
Message:
  • Merged 11.0-dev0@963. (Update to HM 14.0 + MV-HEVC Draft 8 HLS)
  • Added coding results.
  • Changed version number.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/App/TAppDecoder/TAppDecTop.h

    r872 r964  
    6868  TComPicLists                    m_ivPicLists;                                ///< picture buffers of decoder instances
    6969  Bool                            m_layerInitilizedFlags[ MAX_NUM_LAYER_IDS ]; ///< for layerwise startup
    70 
     70#if H_MV_HLS_7_VPS_P0300_27
     71  TComVPS*                        m_vps;                                ///< active VPS
     72#endif
    7173#else
    7274  TDecTop                         m_cTDecTop;                     ///< decoder class
     
    8082  Int                             m_iPOCLastDisplay;              ///< last POC in display order
    8183#endif
     84#if H_MV_HLS_7_VPS_P0300_27
     85  Bool                            m_markedForOutput;
     86#endif
     87
     88
    8289#if H_3D
    8390  FILE*                           m_pScaleOffsetFile;
     
    99106#if H_MV
    100107  Void  xWriteOutput      ( TComList<TComPic*>* pcListPic, Int layerId, Int tId ); ///< write YUV to file
     108
     109#if H_MV_HLS_7_VPS_P0300_27
     110  Void  xMarkForOutput   ( Bool allLayersDecoded, Int pocLastPic, Int layerIdLastPic );         
     111  Void  xMarkAltOutPic    ( Int targetOutputLayer, Int pocLastPic )
     112  {
     113    Int optLayerIdxInVps = m_vps->getLayerIdInNuh( targetOutputLayer );
     114    Int highestNuhLayerId = -1;
     115    TComPic* picWithHighestNuhLayerId = NULL;
     116    for (Int dIdx = 0; dIdx < m_numDecoders; dIdx++)
     117    {
     118      Int curLayerId = m_tDecTop[dIdx]->getLayerId();
     119      Int curLayerIdxInVps = m_vps->getLayerIdInNuh( curLayerId  );
     120      if ( m_vps->getInDirectDependencyFlag(optLayerIdxInVps, curLayerIdxInVps ) )
     121      {
     122        TComPic* curPic = m_ivPicLists.getPic( curLayerId, pocLastPic );
     123        if (curPic != NULL)
     124        {
     125          if (curPic->getReconMark() && curPic->getPicOutputFlag() )
     126          {
     127            curPic->setOutputMark   ( false );
     128            curPic->setPicOutputFlag( false );
     129            if ( curLayerId > highestNuhLayerId)
     130            {
     131              highestNuhLayerId = curLayerId ;
     132              picWithHighestNuhLayerId = curPic;
     133            }           
     134          }
     135        }
     136      }
     137    }
     138    if ( picWithHighestNuhLayerId != NULL )
     139    {
     140      picWithHighestNuhLayerId->setPicOutputFlag(true);
     141      picWithHighestNuhLayerId->setOutputMark   (true);
     142    }
     143  }
     144#endif
     145
    101146  Void  xFlushOutput      ( TComList<TComPic*>* pcListPic, Int layerId ); ///< flush all remaining decoded pictures to file
    102147  Int   xGetDecoderIdx    ( Int layerId, Bool createFlag = false );
Note: See TracChangeset for help on using the changeset viewer.