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


Ignore:
Timestamp:
26 Sep 2014, 03:22:40 (11 years ago)
Author:
qualcomm
Message:

JCTVC-R0231: Signalling of VPS VUI BSP HRD parameters and other related changes (Macro: VPS_VUI_BSP_HRD_PARAMS)

This patch includes some of the signalling changes in the VPS VUI BSP HRD parameters in R0231, and related adoptions.

From: Adarsh K. Ramasubramonian <aramasub@…>

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

Legend:

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

    r884 r894  
    251251      {
    252252        sei = new SEIDecodingUnitInfo;
     253#if VPS_VUI_BSP_HRD_PARAMS
     254        xParseSEIDecodingUnitInfo((SEIDecodingUnitInfo&) *sei, payloadSize, sps, nestingSei, bspNestingSei, vps);
     255#else
    253256        xParseSEIDecodingUnitInfo((SEIDecodingUnitInfo&) *sei, payloadSize, sps);
     257#endif
    254258      }
    255259      break;
     
    262266      {
    263267        sei = new SEIBufferingPeriod;
     268#if VPS_VUI_BSP_HRD_PARAMS
     269        xParseSEIBufferingPeriod((SEIBufferingPeriod&) *sei, payloadSize, sps, nestingSei, bspNestingSei, vps);
     270#else
    264271        xParseSEIBufferingPeriod((SEIBufferingPeriod&) *sei, payloadSize, sps);
     272#endif
    265273      }
    266274      break;
     
    273281      {
    274282        sei = new SEIPictureTiming;
     283#if VPS_VUI_BSP_HRD_PARAMS
     284        xParseSEIPictureTiming((SEIPictureTiming&)*sei, payloadSize, sps, nestingSei, bspNestingSei, vps);
     285#else
    275286        xParseSEIPictureTiming((SEIPictureTiming&)*sei, payloadSize, sps);
     287#endif
    276288      }
    277289      break;
     
    600612}
    601613
     614#if VPS_VUI_BSP_HRD_PARAMS
     615Void SEIReader::xParseSEIDecodingUnitInfo(SEIDecodingUnitInfo& sei, UInt /*payloadSize*/, TComSPS *sps, const SEIScalableNesting* nestingSei, const SEIBspNesting* bspNestingSei, TComVPS *vps)
     616#else
    602617Void SEIReader::xParseSEIDecodingUnitInfo(SEIDecodingUnitInfo& sei, UInt /*payloadSize*/, TComSPS *sps)
     618#endif
    603619{
    604620  UInt val;
     
    606622  sei.m_decodingUnitIdx = val;
    607623
     624#if VPS_VUI_BSP_HRD_PARAMS
     625  TComHRD *hrd;
     626  if( bspNestingSei )   // If DU info SEI contained inside a BSP nesting SEI message
     627  {
     628    assert( nestingSei );
     629    Int psIdx = bspNestingSei->m_seiPartitioningSchemeIdx;
     630    Int seiOlsIdx = bspNestingSei->m_seiOlsIdx;
     631    Int maxTemporalId = nestingSei->m_nestingMaxTemporalIdPlus1[0] - 1;
     632    Int maxValues = vps->getNumBspSchedulesMinus1(seiOlsIdx, psIdx, maxTemporalId) + 1;
     633    std::vector<Int> hrdIdx(maxValues, 0);
     634    std::vector<TComHRD *> hrdVec;
     635    std::vector<Int> syntaxElemLen(maxValues, 0);
     636    for(Int i = 0; i < maxValues; i++)
     637    {
     638      hrdIdx[i] = vps->getBspHrdIdx( seiOlsIdx, psIdx, maxTemporalId, i, bspNestingSei->m_bspIdx);
     639      hrdVec.push_back(vps->getBspHrd(hrdIdx[i]));
     640   
     641      syntaxElemLen[i] = hrdVec[i]->getInitialCpbRemovalDelayLengthMinus1() + 1;
     642      if ( !(hrdVec[i]->getNalHrdParametersPresentFlag() || hrdVec[i]->getVclHrdParametersPresentFlag()) )
     643      {
     644        assert( syntaxElemLen[i] == 24 ); // Default of value init_cpb_removal_delay_length_minus1 is 23
     645      }
     646      if( i > 0 )
     647      {
     648        assert( hrdVec[i]->getSubPicCpbParamsPresentFlag()    == hrdVec[i-1]->getSubPicCpbParamsPresentFlag() );
     649        assert( hrdVec[i]->getSubPicCpbParamsInPicTimingSEIFlag()   == hrdVec[i-1]->getSubPicCpbParamsInPicTimingSEIFlag() );
     650        assert( hrdVec[i]->getDpbOutputDelayDuLengthMinus1()  == hrdVec[i-1]->getDpbOutputDelayDuLengthMinus1() );
     651        // To be done: Check CpbDpbDelaysPresentFlag
     652      }
     653    }
     654    hrd = hrdVec[0];
     655  }
     656  else
     657  {
     658    TComVUI *vui = sps->getVuiParameters();
     659    hrd = vui->getHrdParameters();
     660  }
     661#else
    608662  TComVUI *vui = sps->getVuiParameters();
    609   if(vui->getHrdParameters()->getSubPicCpbParamsInPicTimingSEIFlag())
    610   {
    611     READ_CODE( ( vui->getHrdParameters()->getDuCpbRemovalDelayLengthMinus1() + 1 ), val, "du_spt_cpb_removal_delay");
     663  TComHrd *hrd = vui->getHrdParameters();
     664#endif
     665  if(hrd->getSubPicCpbParamsInPicTimingSEIFlag())
     666  {
     667    READ_CODE( ( hrd->getDuCpbRemovalDelayLengthMinus1() + 1 ), val, "du_spt_cpb_removal_delay");
    612668    sei.m_duSptCpbRemovalDelay = val;
    613669  }
     
    619675  if(sei.m_dpbOutputDuDelayPresentFlag)
    620676  {
    621     READ_CODE(vui->getHrdParameters()->getDpbOutputDelayDuLengthMinus1() + 1, val, "pic_spt_dpb_output_du_delay");
     677    READ_CODE(hrd->getDpbOutputDelayDuLengthMinus1() + 1, val, "pic_spt_dpb_output_du_delay");
    622678    sei.m_picSptDpbOutputDuDelay = val;
    623679  }
     
    625681}
    626682
     683#if VPS_VUI_BSP_HRD_PARAMS
     684Void SEIReader::xParseSEIBufferingPeriod(SEIBufferingPeriod& sei, UInt /*payloadSize*/, TComSPS *sps, const SEIScalableNesting* nestingSei, const SEIBspNesting* bspNestingSei, TComVPS *vps)
     685#else
    627686Void SEIReader::xParseSEIBufferingPeriod(SEIBufferingPeriod& sei, UInt /*payloadSize*/, TComSPS *sps)
     687#endif
    628688{
    629689  Int i, nalOrVcl;
    630690  UInt code;
    631691
     692#if VPS_VUI_BSP_HRD_PARAMS
     693  TComHRD *pHRD;
     694  if( bspNestingSei )   // If BP SEI contained inside a BSP nesting SEI message
     695  {
     696    assert( nestingSei );
     697    Int psIdx = bspNestingSei->m_seiPartitioningSchemeIdx;
     698    Int seiOlsIdx = bspNestingSei->m_seiOlsIdx;
     699    Int maxTemporalId = nestingSei->m_nestingMaxTemporalIdPlus1[0] - 1;
     700    Int maxValues = vps->getNumBspSchedulesMinus1(seiOlsIdx, psIdx, maxTemporalId) + 1;
     701    std::vector<Int> hrdIdx(maxValues, 0);
     702    std::vector<TComHRD *> hrdVec;
     703    std::vector<Int> syntaxElemLen(maxValues, 0);
     704    for(i = 0; i < maxValues; i++)
     705    {
     706      hrdIdx[i] = vps->getBspHrdIdx( seiOlsIdx, psIdx, maxTemporalId, i, bspNestingSei->m_bspIdx);
     707      hrdVec.push_back(vps->getBspHrd(hrdIdx[i]));
     708   
     709      syntaxElemLen[i] = hrdVec[i]->getInitialCpbRemovalDelayLengthMinus1() + 1;
     710      if ( !(hrdVec[i]->getNalHrdParametersPresentFlag() || hrdVec[i]->getVclHrdParametersPresentFlag()) )
     711      {
     712        assert( syntaxElemLen[i] == 24 ); // Default of value init_cpb_removal_delay_length_minus1 is 23
     713      }
     714      if( i > 0 )
     715      {
     716        assert( hrdVec[i]->getCpbRemovalDelayLengthMinus1()   == hrdVec[i-1]->getCpbRemovalDelayLengthMinus1() );
     717        assert( hrdVec[i]->getDpbOutputDelayDuLengthMinus1()  == hrdVec[i-1]->getDpbOutputDelayDuLengthMinus1() );
     718        assert( hrdVec[i]->getSubPicCpbParamsPresentFlag()    == hrdVec[i-1]->getSubPicCpbParamsPresentFlag() );
     719      }
     720    }
     721    pHRD = hrdVec[i];
     722  }
     723  else
     724  {
     725    TComVUI *vui = sps->getVuiParameters();
     726    pHRD = vui->getHrdParameters();
     727  }
     728  // To be done: When contained in an BSP HRD SEI message, the hrd structure is to be chosen differently.
     729#else
    632730  TComVUI *pVUI = sps->getVuiParameters();
    633731  TComHRD *pHRD = pVUI->getHrdParameters();
     732#endif
    634733
    635734  READ_UVLC( code, "bp_seq_parameter_set_id" );                         sei.m_bpSeqParameterSetId     = code;
     
    683782  xParseByteAlign();
    684783}
     784#if VPS_VUI_BSP_HRD_PARAMS
     785Void SEIReader::xParseSEIPictureTiming(SEIPictureTiming& sei, UInt /*payloadSize*/, TComSPS *sps, const SEIScalableNesting* nestingSei, const SEIBspNesting* bspNestingSei, TComVPS *vps)
     786#else
    685787Void SEIReader::xParseSEIPictureTiming(SEIPictureTiming& sei, UInt /*payloadSize*/, TComSPS *sps)
     788#endif
    686789{
    687790  Int i;
    688791  UInt code;
    689792
     793#if VPS_VUI_BSP_HRD_PARAMS
     794  TComHRD *hrd;   
     795  TComVUI *vui = sps->getVuiParameters();
     796  if( bspNestingSei )   // If BP SEI contained inside a BSP nesting SEI message
     797  {
     798    assert( nestingSei );
     799    Int psIdx = bspNestingSei->m_seiPartitioningSchemeIdx;
     800    Int seiOlsIdx = bspNestingSei->m_seiOlsIdx;
     801    Int maxTemporalId = nestingSei->m_nestingMaxTemporalIdPlus1[0] - 1;
     802    Int maxValues = vps->getNumBspSchedulesMinus1(seiOlsIdx, psIdx, maxTemporalId) + 1;
     803    std::vector<Int> hrdIdx(maxValues, 0);
     804    std::vector<TComHRD *> hrdVec;
     805    std::vector<Int> syntaxElemLen(maxValues, 0);
     806    for(i = 0; i < maxValues; i++)
     807    {
     808      hrdIdx[i] = vps->getBspHrdIdx( seiOlsIdx, psIdx, maxTemporalId, i, bspNestingSei->m_bspIdx);
     809      hrdVec.push_back(vps->getBspHrd(hrdIdx[i]));
     810   
     811      syntaxElemLen[i] = hrdVec[i]->getInitialCpbRemovalDelayLengthMinus1() + 1;
     812      if ( !(hrdVec[i]->getNalHrdParametersPresentFlag() || hrdVec[i]->getVclHrdParametersPresentFlag()) )
     813      {
     814        assert( syntaxElemLen[i] == 24 ); // Default of value init_cpb_removal_delay_length_minus1 is 23
     815      }
     816      if( i > 0 )
     817      {
     818        assert( hrdVec[i]->getSubPicCpbParamsPresentFlag()    == hrdVec[i-1]->getSubPicCpbParamsPresentFlag() );
     819        assert( hrdVec[i]->getSubPicCpbParamsInPicTimingSEIFlag()   == hrdVec[i-1]->getSubPicCpbParamsInPicTimingSEIFlag() );
     820        assert( hrdVec[i]->getCpbRemovalDelayLengthMinus1()  == hrdVec[i-1]->getCpbRemovalDelayLengthMinus1() );
     821        assert( hrdVec[i]->getDpbOutputDelayLengthMinus1()  == hrdVec[i-1]->getDpbOutputDelayLengthMinus1() );
     822        assert( hrdVec[i]->getDpbOutputDelayDuLengthMinus1()  == hrdVec[i-1]->getDpbOutputDelayDuLengthMinus1() );
     823        assert( hrdVec[i]->getDuCpbRemovalDelayLengthMinus1()  == hrdVec[i-1]->getDuCpbRemovalDelayLengthMinus1() );
     824        // To be done: Check CpbDpbDelaysPresentFlag
     825      }
     826    }
     827    hrd = hrdVec[0];
     828  }
     829  else
     830  {
     831    hrd = vui->getHrdParameters();
     832  }
     833  // To be done: When contained in an BSP HRD SEI message, the hrd structure is to be chosen differently.
     834#else
    690835  TComVUI *vui = sps->getVuiParameters();
    691836  TComHRD *hrd = vui->getHrdParameters();
     837#endif
    692838
    693839  if( vui->getFrameFieldInfoPresentFlag() )
     
    12641410  assert(vps->getVpsVuiPresentFlag());
    12651411
     1412#if VPS_VUI_BSP_HRD_PARAMS
     1413  UInt uiCode;
     1414  Int psIdx         = bspNestingSei.m_seiPartitioningSchemeIdx;
     1415  Int seiOlsIdx     = bspNestingSei.m_seiOlsIdx;
     1416  Int maxTemporalId = nestingSei.m_nestingMaxTemporalIdPlus1[0];
     1417  Int maxValues     = vps->getNumBspSchedulesMinus1(seiOlsIdx, psIdx, maxTemporalId) + 1;
     1418  std::vector<Int> hrdIdx(0, maxValues);
     1419  std::vector<TComHRD *> hrdVec;
     1420  std::vector<Int> syntaxElemLen;
     1421  for(Int i = 0; i < maxValues; i++)
     1422  {
     1423    hrdIdx[i] = vps->getBspHrdIdx( seiOlsIdx, psIdx, maxTemporalId, i, bspNestingSei.m_bspIdx);
     1424    hrdVec[i] = vps->getBspHrd(hrdIdx[i]);
     1425   
     1426    syntaxElemLen[i] = hrdVec[i]->getInitialCpbRemovalDelayLengthMinus1() + 1;
     1427    if ( !(hrdVec[i]->getNalHrdParametersPresentFlag() || hrdVec[i]->getVclHrdParametersPresentFlag()) )
     1428    {
     1429      assert( syntaxElemLen[i] == 24 ); // Default value of init_cpb_removal_delay_length_minus1 is 23
     1430    }
     1431    if( i > 0 )
     1432    {
     1433      assert( hrdVec[i]->getNalHrdParametersPresentFlag() == hrdVec[i-1]->getNalHrdParametersPresentFlag() );
     1434      assert( hrdVec[i]->getVclHrdParametersPresentFlag() == hrdVec[i-1]->getVclHrdParametersPresentFlag() );
     1435    }
     1436  }
     1437  if (hrdVec[0]->getNalHrdParametersPresentFlag())
     1438  {
     1439    for(UInt i = 0; i < maxValues; i++)
     1440    {
     1441      READ_CODE( syntaxElemLen[i], uiCode, "nal_initial_arrival_delay[i]" ); sei.m_nalInitialArrivalDelay[i] = uiCode;
     1442    }
     1443  }
     1444  if( hrdVec[0]->getVclHrdParametersPresentFlag() )
     1445  {
     1446    for(UInt i = 0; i < maxValues; i++)
     1447    {
     1448      READ_CODE( syntaxElemLen[i], uiCode, "vcl_initial_arrival_delay[i]" ); sei.m_vclInitialArrivalDelay[i] = uiCode;
     1449    }
     1450  }
     1451#else
    12661452  UInt schedCombCnt = vps->getNumBspSchedCombinations(nestingSei.m_nestingOpIdx[0]);
    12671453  UInt len;
     
    13071493    }
    13081494  }
     1495#endif
    13091496}
    13101497
  • branches/SHM-dev/source/Lib/TLibDecoder/SEIread.h

    r856 r894  
    8080  Void xParseSEIuserDataUnregistered  (SEIuserDataUnregistered &sei, UInt payloadSize);
    8181  Void xParseSEIActiveParameterSets   (SEIActiveParameterSets  &sei, UInt payloadSize);
     82  Void xParseSEIDecodedPictureHash    (SEIDecodedPictureHash& sei, UInt payloadSize);
     83#if VPS_VUI_BSP_HRD_PARAMS
     84  Void xParseSEIDecodingUnitInfo      (SEIDecodingUnitInfo& sei, UInt payloadSize, TComSPS *sps, const SEIScalableNesting* nestingSei, const SEIBspNesting* bspNestingSei, TComVPS *vps);
     85  Void xParseSEIBufferingPeriod       (SEIBufferingPeriod& sei, UInt payloadSize, TComSPS *sps, const SEIScalableNesting* nestingSei, const SEIBspNesting* bspNestingSei, TComVPS *vps);
     86  Void xParseSEIPictureTiming         (SEIPictureTiming& sei, UInt payloadSize, TComSPS *sps, const SEIScalableNesting* nestingSei, const SEIBspNesting* bspNestingSei, TComVPS *vps);
     87#else
    8288  Void xParseSEIDecodingUnitInfo      (SEIDecodingUnitInfo& sei, UInt payloadSize, TComSPS *sps);
    83   Void xParseSEIDecodedPictureHash    (SEIDecodedPictureHash& sei, UInt payloadSize);
    8489  Void xParseSEIBufferingPeriod       (SEIBufferingPeriod& sei, UInt payloadSize, TComSPS *sps);
    8590  Void xParseSEIPictureTiming         (SEIPictureTiming& sei, UInt payloadSize, TComSPS *sps);
     91#endif
    8692  Void xParseSEIRecoveryPoint         (SEIRecoveryPoint& sei, UInt payloadSize);
    8793  Void xParseSEIFramePacking          (SEIFramePacking& sei, UInt payloadSize);
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r893 r894  
    578578      READ_CODE( 5, uiCode, "dpb_output_delay_length_minus1" );       hrd->setDpbOutputDelayLengthMinus1( uiCode );
    579579    }
     580#if VPS_VUI_BSP_HRD_PARAMS
     581    else
     582    {
     583      hrd->setInitialCpbRemovalDelayLengthMinus1( 23 );
     584      // Add inferred values for other syntax elements here.
     585    }
     586#endif
    580587  }
    581588  Int i, j, nalOrVcl;
     
    26252632  if (vps->getVpsVuiBspHrdPresentFlag())
    26262633  {
     2634#if VPS_VUI_BSP_HRD_PARAMS
     2635    parseVpsVuiBspHrdParams(vps);
     2636#else
    26272637#if R0227_VUI_BSP_HRD_FLAG
    26282638    assert (vps->getTimingInfo()->getTimingInfoPresentFlag() == 1);
     
    27032713      }
    27042714    }
    2705   }
    2706 #endif
    2707 
     2715#endif
     2716  }
     2717#endif
    27082718#if P0182_VPS_VUI_PS_FLAG
    27092719  for(i = 1; i < vps->getMaxLayers(); i++)
     
    27212731#endif
    27222732}
     2733
    27232734#endif //SVC_EXTENSION
    27242735
     
    44874498}
    44884499#endif
     4500#if VPS_VUI_BSP_HRD_PARAMS
     4501Void TDecCavlc::parseVpsVuiBspHrdParams( TComVPS *vps )
     4502{
     4503  UInt uiCode;
     4504  assert (vps->getTimingInfo()->getTimingInfoPresentFlag() == 1);
     4505  READ_UVLC( uiCode, "vps_num_add_hrd_params" ); vps->setVpsNumAddHrdParams(uiCode);
     4506  vps->createBspHrdParamBuffer(vps->getVpsNumAddHrdParams()); // Also allocates m_cprmsAddPresentFlag and m_numSubLayerHrdMinus
     4507
     4508  for( Int i = vps->getNumHrdParameters(), j = 0; i < vps->getNumHrdParameters() + vps->getVpsNumAddHrdParams(); i++, j++ ) // j = i - vps->getNumHrdParameters()
     4509  {
     4510    if( i > 0 )
     4511    {
     4512      READ_FLAG( uiCode, "cprms_add_present_flag[i]" );   vps->setCprmsAddPresentFlag(j, uiCode ? true : false);
     4513    }
     4514    else
     4515    {
     4516      // i == 0
     4517      if( vps->getNumHrdParameters() == 0 )
     4518      {
     4519        vps->setCprmsAddPresentFlag(0, true);
     4520      }
     4521    }
     4522    READ_UVLC( uiCode, "num_sub_layer_hrd_minus1[i]" ); vps->setNumSubLayerHrdMinus1(j, uiCode );
     4523    assert( uiCode <= vps->getMaxTLayers() - 1 );
     4524   
     4525    parseHrdParameters( vps->getBspHrd(j), vps->getCprmsAddPresentFlag(j), vps->getNumSubLayerHrdMinus1(j) );
     4526    if( i > 0 && !vps->getCprmsAddPresentFlag(i) )
     4527    {
     4528      // Copy common information parameters
     4529      if( i == vps->getNumHrdParameters() )
     4530      {
     4531        vps->getBspHrd(j)->copyCommonInformation( vps->getHrdParameters( vps->getNumHrdParameters() - 1 ) );
     4532      }
     4533      else
     4534      {
     4535        vps->getBspHrd(j)->copyCommonInformation( vps->getBspHrd( j - 1 ) );
     4536      }
     4537    }
     4538  }
     4539  for (Int h = 1; h < vps->getNumOutputLayerSets(); h++)
     4540  {
     4541    Int lsIdx = vps->getOutputLayerSetIdx( h );
     4542    READ_UVLC( uiCode, "num_signalled_partitioning_schemes[h]"); vps->setNumSignalledPartitioningSchemes(h, uiCode);
     4543    for( Int j = 0; j < vps->getNumSignalledPartitioningSchemes(h); j++ )
     4544    {
     4545      READ_UVLC( uiCode, "num_partitions_in_scheme_minus1[h][j]" ); vps->setNumPartitionsInSchemeMinus1(h, j, uiCode);
     4546      for( Int k = 0; k <= vps->getNumPartitionsInSchemeMinus1(h, j); k++ )
     4547      {
     4548        for( Int r = 0; r < vps->getNumLayersInIdList( lsIdx ); r++ )
     4549        {
     4550          READ_FLAG( uiCode, "layer_included_in_partition_flag[h][j][k][r]" ); vps->setLayerIncludedInPartitionFlag(h, j, k, r, uiCode ? true : false);
     4551        }
     4552      }
     4553    }
     4554    for( Int i = 0; i < vps->getNumSignalledPartitioningSchemes(h) + 1; i++ )
     4555    {
     4556      for( Int t = 0; t <= vps->getMaxSLayersInLayerSetMinus1(lsIdx); t++ )
     4557      {
     4558        READ_UVLC( uiCode, "num_bsp_schedules_minus1[h][i][t]");              vps->setNumBspSchedulesMinus1(h, i, t, uiCode);
     4559        for( Int j = 0; j <= vps->getNumBspSchedulesMinus1(h, i, t); j++ )
     4560        {
     4561          for( Int k = 0; k < vps->getNumPartitionsInSchemeMinus1(h, i); k++ )
     4562          {
     4563            READ_UVLC( uiCode, "bsp_comb_hrd_idx[h][i][t][j][k]");      vps->setBspHrdIdx(h, i, t, j, k, uiCode);
     4564            READ_UVLC( uiCode, "bsp_comb_sched_idx[h][i][t][j][k]");    vps->setBspSchedIdx(h, i, t, j, k, uiCode);
     4565          }
     4566        }
     4567      }
     4568    }
     4569
     4570    // To be done: Check each layer included in not more than one BSP in every partitioning scheme,
     4571    // and other related checks associated with layers in bitstream partitions.
     4572
     4573  }
     4574}
     4575#endif
    44894576#endif
    44904577//! \}
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecCAVLC.h

    r826 r894  
    8686  Void  parseVpsDpbSizeTable( TComVPS *vps );
    8787#endif
     88#if VPS_VUI_BSP_HRD_PARAMS
     89  Void  parseVpsVuiBspHrdParams( TComVPS *vps );
     90#endif
    8891#if SPS_DPB_PARAMS
    8992  Void  parseSPS            ( TComSPS* pcSPS ); // it should be removed after macro clean up
Note: See TracChangeset for help on using the changeset viewer.