Changeset 535 in SHVCSoftware for branches/SHM-4.1-dev/source/Lib/TLibDecoder
- Timestamp:
- 5 Jan 2014, 22:04:10 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-4.1-dev/source/Lib/TLibDecoder/TDecTop.cpp
r533 r535 178 178 { 179 179 #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 } 183 191 #else 184 192 numReorderPics[temporalLayer] = pcSPS->getNumReorderPics(temporalLayer); … … 274 282 { 275 283 #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 } 279 295 #else 280 296 numReorderPics[temporalLayer] = pcSlice->getSPS()->getNumReorderPics(temporalLayer); … … 283 299 284 300 #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 } 286 310 #else 287 311 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.