Ignore:
Timestamp:
7 Nov 2014, 14:05:45 (9 years ago)
Author:
tech
Message:

H_MV_HLS_FIX. Various fixes for MV-HEVC HLS syntax.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-12.2-dev2-HHI/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r1109 r1110  
    10711071  READ_FLAG( uiCode, "pps_infer_scaling_list_flag" ); pcPPS->setPpsInferScalingListFlag( uiCode == 1 );
    10721072  READ_CODE( 6, uiCode, "pps_scaling_list_ref_layer_id" ); pcPPS->setPpsScalingListRefLayerId( uiCode );
     1073#if H_MV_HLS_FIX
     1074
     1075  UInt numRefLocOffsets;;
     1076  READ_UVLC( numRefLocOffsets, "num_ref_loc_offsets" );
     1077
     1078  // All of the following stuff is not needed, but allowed to be present.
     1079  for (Int i = 0; i < numRefLocOffsets; i++ )
     1080  {
     1081    Int   iCode = 0;
     1082    READ_CODE( 6, uiCode, "ref_loc_offset_layer_id" );
     1083    READ_FLAG( uiCode, "scaled_ref_layer_offset_present_flag" );
     1084
     1085    if (uiCode)
     1086    {   
     1087      READ_SVLC( iCode, "scaled_ref_layer_left_offset" );   
     1088      READ_SVLC( iCode, "scaled_ref_layer_top_offset" );   
     1089      READ_SVLC( iCode, "scaled_ref_layer_right_offset" ); 
     1090      READ_SVLC( iCode, "scaled_ref_layer_bottom_offset" );
     1091    }
     1092
     1093    READ_FLAG( uiCode, "ref_region_offset_present_flag" ); 
     1094    if (uiCode)
     1095    {   
     1096      READ_SVLC( iCode, "ref_region_left_offset" );     
     1097      READ_SVLC( iCode, "ref_region_top_offset" );     
     1098      READ_SVLC( iCode, "ref_region_right_offset" );   
     1099      READ_SVLC( iCode, "ref_region_bottom_offset" );   
     1100    }
     1101
     1102    READ_FLAG( uiCode, "resample_phase_set_present_flag" );
     1103    if (uiCode)
     1104    {     
     1105      READ_UVLC( uiCode, "phase_hor_luma" );             
     1106      READ_UVLC( uiCode, "phase_ver_luma" );             
     1107      READ_UVLC( uiCode, "phase_hor_chroma_plus8" );     
     1108      READ_UVLC( uiCode, "phase_ver_chroma_plus8" );     
     1109    }
     1110  }
     1111  READ_FLAG( uiCode, "colour_mapping_enabled_flag" );   
     1112  // This is required to equal to 0 for Multiview Main profile.
     1113  assert( uiCode == 0 );
     1114#else
    10731115  READ_UVLC( uiCode, "num_ref_loc_offsets" ); assert( uiCode == 0 );
     1116#endif
    10741117}
    10751118
     
    13941437  for( Int i = 1; i < pcVPS->getNumOutputLayerSets( ); i++ )
    13951438  {
     1439#if H_MV_HLS_FIX
     1440    if( pcVPS->getNumLayerSets() > 2 && i >= pcVPS->getNumLayerSets( ) )   
     1441#else
    13961442    if( i >= pcVPS->getNumLayerSets( ) )   
     1443#endif
    13971444    {       
    13981445      READ_CODE( pcVPS->getLayerSetIdxForOlsMinus1Len( i ), uiCode, "layer_set_idx_for_ols_minus1[i]" ); pcVPS->setLayerSetIdxForOlsMinus1( i, uiCode );
     
    14651512
    14661513  READ_FLAG( uiCode, "max_one_active_ref_layer_flag" ); pcVPS->setMaxOneActiveRefLayerFlag ( uiCode == 1 );
    1467 #if H_MV_HLS7_GEN
     1514
     1515#if H_MV_HLS7_GEN || H_MV_HLS_FIX
    14681516  READ_FLAG( uiCode, "vps_poc_lsb_aligned_flag" ); pcVPS->setVpsPocLsbAlignedFlag( uiCode == 1 );
    14691517#endif
     
    15151563    parseVPSVUI( pcVPS );
    15161564  }     
     1565#if H_MV_HLS_FIX
     1566  else
     1567#endif
    15171568  {
    15181569    TComVPSVUI* pcVPSVUI = pcVPS->getVPSVUI( );
     
    21292180    rpcSlice->checkCrossLayerBlaFlag( );
    21302181
    2131 #if !H_MV_HLS7_GEN
     2182#if !H_MV_HLS7_GEN && !H_MV_HLS_FIX
    21322183    if ( rpcSlice->getPPS()->getNumExtraSliceHeaderBits() > esb )
    21332184    {
     
    28382889
    28392890    // Derive the value of PocMs8bValRequiredFlag
     2891#if !H_MV_HLS_FIX
    28402892    rpcSlice->setPocMsbValRequiredFlag( rpcSlice->getCraPicFlag() || rpcSlice->getBlaPicFlag()
    28412893                                          /* || TODO related to vps_poc_lsb_aligned_flag */
    28422894                                          );
    2843 
     2895#endif
     2896
     2897#if H_MV_HLS_FIX
     2898    if( !rpcSlice->getPocMsbValRequiredFlag() && rpcSlice->getVPS()->getVpsPocLsbAlignedFlag() )
     2899#else
    28442900    if( !rpcSlice->getPocMsbValRequiredFlag() /* TODO &&  rpcSlice->getVPS()->getVpsPocLsbAlignedFlag() */ )
     2901#endif
    28452902    {
    28462903      READ_FLAG( uiCode, "poc_msb_val_present_flag" ); rpcSlice->setPocMsbValPresentFlag( uiCode == 1 );
Note: See TracChangeset for help on using the changeset viewer.