Changeset 535 in SHVCSoftware for branches/SHM-4.1-dev/source/Lib/TLibDecoder


Ignore:
Timestamp:
5 Jan 2014, 22:04:10 (11 years ago)
Author:
qualcomm
Message:

Bug-fix for r526.

From: Adarsh K. Ramasubramonian <aramasub@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-4.1-dev/source/Lib/TLibDecoder/TDecTop.cpp

    r533 r535  
    178178    {
    179179#if USE_DPB_SIZE_TABLE
    180       TComVPS *vps = slice->getVPS();
    181       // SHM decoders will use DPB size table in the VPS to determine the number of reorder pictures.
    182       numReorderPics[temporalLayer] = vps->getMaxVpsNumReorderPics( getCommonDecoderParams()->getOutputLayerSetIdx() , temporalLayer);
     180      if( getCommonDecoderParams()->getOutputLayerSetIdx() == 0 )
     181      {
     182        assert( this->getLayerId() == 0 );
     183        numReorderPics[temporalLayer] = pcSPS->getNumReorderPics(temporalLayer);
     184      }
     185      else
     186      {
     187        TComVPS *vps = slice->getVPS();
     188        // SHM decoders will use DPB size table in the VPS to determine the number of reorder pictures.
     189        numReorderPics[temporalLayer] = vps->getMaxVpsNumReorderPics( getCommonDecoderParams()->getOutputLayerSetIdx() , temporalLayer);
     190      }
    183191#else
    184192      numReorderPics[temporalLayer] = pcSPS->getNumReorderPics(temporalLayer);
     
    274282  {
    275283#if USE_DPB_SIZE_TABLE
    276     TComVPS *vps = pcSlice->getVPS();
    277     // SHM decoders will use DPB size table in the VPS to determine the number of reorder pictures.
    278     numReorderPics[temporalLayer] = vps->getMaxVpsNumReorderPics( getCommonDecoderParams()->getOutputLayerSetIdx() , temporalLayer);
     284    if( getCommonDecoderParams()->getOutputLayerSetIdx() == 0 )
     285    {
     286      assert( this->getLayerId() == 0 );
     287      numReorderPics[temporalLayer] = pcSlice->getSPS()->getNumReorderPics(temporalLayer);
     288    }
     289    else
     290    {
     291      TComVPS *vps = pcSlice->getVPS();
     292      // SHM decoders will use DPB size table in the VPS to determine the number of reorder pictures.
     293      numReorderPics[temporalLayer] = vps->getMaxVpsNumReorderPics( getCommonDecoderParams()->getOutputLayerSetIdx() , temporalLayer);
     294    }
    279295#else
    280296    numReorderPics[temporalLayer] = pcSlice->getSPS()->getNumReorderPics(temporalLayer);
     
    283299
    284300#if USE_DPB_SIZE_TABLE
    285   m_iMaxRefPicNum = pcSlice->getVPS()->getMaxVpsDecPicBufferingMinus1( getCommonDecoderParams()->getOutputLayerSetIdx(), pcSlice->getLayerId(), pcSlice->getTLayer() ) + 1; // m_uiMaxDecPicBuffering has the space for the picture currently being decoded
     301  if( getCommonDecoderParams()->getOutputLayerSetIdx() == 0 )
     302  {
     303    assert( this->getLayerId() == 0 );
     304    m_iMaxRefPicNum = pcSlice->getSPS()->getMaxDecPicBuffering(pcSlice->getTLayer());     // m_uiMaxDecPicBuffering has the space for the picture currently being decoded
     305  }
     306  else
     307  {
     308    m_iMaxRefPicNum = pcSlice->getVPS()->getMaxVpsDecPicBufferingMinus1( getCommonDecoderParams()->getOutputLayerSetIdx(), pcSlice->getLayerId(), pcSlice->getTLayer() ) + 1; // m_uiMaxDecPicBuffering has the space for the picture currently being decoded
     309  }
    286310#else
    287311  m_iMaxRefPicNum = pcSlice->getSPS()->getMaxDecPicBuffering(pcSlice->getTLayer());     // m_uiMaxDecPicBuffering has the space for the picture currently being decoded
Note: See TracChangeset for help on using the changeset viewer.