Ignore:
Timestamp:
5 Mar 2014, 03:54:16 (10 years ago)
Author:
qualcomm
Message:

JCTVC-P0204: Sub-bitstream property SEI message (Macro: H_MV_HLS_7_SEI_P0204_26)

Includes signaling, and option to input parameters of the SEI message in the configuration file.

From: Adarsh K. Ramasubramonian <aramasub@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-10.0-dev0/source/Lib/TLibDecoder/SEIread.cpp

    r852 r862  
    9999    fprintf( g_hTrace, "=========== Scalable Nesting SEI message ===========\n");
    100100    break;
     101#if H_MV_HLS_7_SEI_P0204_26
     102  case SEI::SUB_BITSTREAM_PROPERTY:
     103    fprintf( g_hTrace, "=========== Sub-bitstream property SEI message ===========\n");
     104    break;
     105#endif
    101106  default:
    102107    fprintf( g_hTrace, "=========== Unknown SEI message ===========\n");
     
    240245      xParseSEIScalableNesting((SEIScalableNesting&) *sei, nalUnitType, payloadSize, sps);
    241246      break;
     247#if H_MV_HLS_7_SEI_P0204_26
     248     case SEI::SUB_BITSTREAM_PROPERTY:
     249       sei = new SEISubBitstreamProperty;
     250       xParseSEISubBitstreamProperty((SEISubBitstreamProperty&) *sei);
     251       break;
     252#endif
    242253    default:
    243254      for (UInt i = 0; i < payloadSize; i++)
     
    766777
    767778}
     779#if H_MV_HLS_7_SEI_P0204_26
     780Void SEIReader::xParseSEISubBitstreamProperty(SEISubBitstreamProperty &sei)
     781{
     782  UInt uiCode;
     783  READ_CODE( 4, uiCode, "active_vps_id" );                      sei.m_activeVpsId = uiCode;
     784  READ_UVLC(    uiCode, "num_additional_sub_streams_minus1" );  sei.m_numAdditionalSubStreams = uiCode + 1;
     785
     786  xResizeSubBitstreamPropertySeiArrays(sei);
     787  for( Int i = 0; i < sei.m_numAdditionalSubStreams; i++ )
     788  {
     789    READ_CODE(  2, uiCode, "sub_bitstream_mode[i]"           ); sei.m_subBitstreamMode[i] = uiCode;
     790    READ_UVLC(     uiCode, "output_layer_set_idx_to_vps[i]"  ); sei.m_outputLayerSetIdxToVps[i] = uiCode;
     791    READ_CODE(  3, uiCode, "highest_sub_layer_id[i]"         ); sei.m_highestSublayerId[i] = uiCode;
     792    READ_CODE( 16, uiCode, "avg_bit_rate[i]"                 ); sei.m_avgBitRate[i] = uiCode;
     793    READ_CODE( 16, uiCode, "max_bit_rate[i]"                 ); sei.m_maxBitRate[i] = uiCode;
     794  }
     795  xParseByteAlign();
     796}
     797Void SEIReader::xResizeSubBitstreamPropertySeiArrays(SEISubBitstreamProperty &sei)
     798{
     799  sei.m_subBitstreamMode.resize( sei.m_numAdditionalSubStreams );
     800  sei.m_outputLayerSetIdxToVps.resize( sei.m_numAdditionalSubStreams );
     801  sei.m_highestSublayerId.resize( sei.m_numAdditionalSubStreams );
     802  sei.m_avgBitRate.resize( sei.m_numAdditionalSubStreams );
     803  sei.m_maxBitRate.resize( sei.m_numAdditionalSubStreams );
     804}
     805#endif
    768806
    769807Void SEIReader::xParseByteAlign()
Note: See TracChangeset for help on using the changeset viewer.