Ignore:
Timestamp:
14 Oct 2015, 04:03:38 (9 years ago)
Author:
nict-htm
Message:

FIX: TAppDecoder No Option (Help View) Abnormal end.
FIX: VC10 Compile order.
ADD: VC12, VC14 support.
NEW: ALTERNATIVE_DEPTH_INFO, not TBD.
BUG: TAppDecoder 15 frame abnormal end. (debug now)

Location:
branches/HTM-15.1-dev0-NICT/source/Lib/TLibEncoder
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-15.1-dev0-NICT/source/Lib/TLibEncoder/SEIwrite.cpp

    r1344 r1349  
    132132   case SEI::LAYERS_NOT_PRESENT:
    133133       xWriteSEILayersNotPresent(*static_cast<const SEILayersNotPresent*>(&sei));
    134      break; 
     134     break;
    135135#endif
    136136   case SEI::INTER_LAYER_CONSTRAINED_TILE_SETS:
    137137     xWriteSEIInterLayerConstrainedTileSets(*static_cast<const SEIInterLayerConstrainedTileSets*>(&sei));
    138      break; 
     138     break;
    139139#if NH_MV_SEI_TBD
    140140   case SEI::BSP_NESTING:
    141141     xWriteSEIBspNesting(*static_cast<const SEIBspNesting*>(&sei));
    142      break; 
     142     break;
    143143   case SEI::BSP_INITIAL_ARRIVAL_TIME:
    144144     xWriteSEIBspInitialArrivalTime(*static_cast<const SEIBspInitialArrivalTime*>(&sei));
    145      break; 
     145     break;
    146146#endif
    147147   case SEI::SUB_BITSTREAM_PROPERTY:
    148148     xWriteSEISubBitstreamProperty(*static_cast<const SEISubBitstreamProperty*>(&sei));
    149      break; 
     149     break;
    150150   case SEI::ALPHA_CHANNEL_INFO:
    151151     xWriteSEIAlphaChannelInfo(*static_cast<const SEIAlphaChannelInfo*>(&sei));
     
    153153   case SEI::OVERLAY_INFO:
    154154     xWriteSEIOverlayInfo(*static_cast<const SEIOverlayInfo*>(&sei));
    155      break; 
     155     break;
    156156   case SEI::TEMPORAL_MV_PREDICTION_CONSTRAINTS:
    157157     xWriteSEITemporalMvPredictionConstraints(*static_cast<const SEITemporalMvPredictionConstraints*>(&sei));
    158      break; 
     158     break;
    159159#if NH_MV_SEI_TBD
    160160   case SEI::FRAME_FIELD_INFO:
    161161     xWriteSEIFrameFieldInfo(*static_cast<const SEIFrameFieldInfo*>(&sei));
    162      break; 
     162     break;
    163163#endif
    164164   case SEI::THREE_DIMENSIONAL_REFERENCE_DISPLAYS_INFO:
    165165     xWriteSEIThreeDimensionalReferenceDisplaysInfo(*static_cast<const SEIThreeDimensionalReferenceDisplaysInfo*>(&sei));
    166      break; 
     166     break;
    167167#if SEI_DRI_F0169
    168168   case SEI::DEPTH_REPRESENTATION_INFO:
    169169       xWriteSEIDepthRepresentationInfo(*static_cast<const SEIDepthRepresentationInfo*>(&sei));
    170170       break;
    171 #endif 
     171#endif
    172172   case SEI::MULTIVIEW_SCENE_INFO:
    173173     xWriteSEIMultiviewSceneInfo(*static_cast<const SEIMultiviewSceneInfo*>(&sei));
    174      break; 
     174     break;
    175175   case SEI::MULTIVIEW_ACQUISITION_INFO:
    176176     xWriteSEIMultiviewAcquisitionInfo(*static_cast<const SEIMultiviewAcquisitionInfo*>(&sei));
    177      break; 
     177     break;
    178178
    179179   case SEI::MULTIVIEW_VIEW_POSITION:
    180180     xWriteSEIMultiviewViewPosition(*static_cast<const SEIMultiviewViewPosition*>(&sei));
    181      break; 
     181     break;
    182182#if NH_3D
    183183   case SEI::ALTERNATIVE_DEPTH_INFO:
    184184     xWriteSEIAlternativeDepthInfo(*static_cast<const SEIAlternativeDepthInfo*>(&sei));
    185      break; 
     185     break;
    186186#endif
    187187#endif
     
    307307  for (Int i = 0; i < sei.activeSeqParameterSetId.size(); i++)
    308308  {
    309     WRITE_UVLC(sei.activeSeqParameterSetId[i], "active_seq_parameter_set_id"); 
     309    WRITE_UVLC(sei.activeSeqParameterSetId[i], "active_seq_parameter_set_id");
    310310  }
    311311}
     
    445445{
    446446  WRITE_FLAG( sei.m_arrangementCancelFlag,          "segmented_rect_frame_packing_arrangement_cancel_flag" );
    447   if( sei.m_arrangementCancelFlag == 0 ) 
     447  if( sei.m_arrangementCancelFlag == 0 )
    448448  {
    449449    WRITE_CODE( sei.m_contentInterpretationType, 2, "segmented_rect_content_interpretation_type" );
     
    614614{
    615615  //UInt code;
    616   WRITE_FLAG((sei.m_mc_all_tiles_exact_sample_value_match_flag ? 1 : 0), "mc_all_tiles_exact_sample_value_match_flag"); 
     616  WRITE_FLAG((sei.m_mc_all_tiles_exact_sample_value_match_flag ? 1 : 0), "mc_all_tiles_exact_sample_value_match_flag");
    617617  WRITE_FLAG((sei.m_each_tile_one_tile_set_flag                ? 1 : 0), "each_tile_one_tile_set_flag"               );
    618618
     
    629629
    630630        if(sei.m_limited_tile_set_display_flag)
    631         { 
    632           WRITE_FLAG((sei.tileSetData(i).m_display_tile_set_flag ? 1 : 0), "display_tile_set_flag"); 
    633         }
    634 
    635         WRITE_UVLC((sei.tileSetData(i).getNumberOfTileRects() - 1), "num_tile_rects_in_set_minus1"); 
    636        
     631        {
     632          WRITE_FLAG((sei.tileSetData(i).m_display_tile_set_flag ? 1 : 0), "display_tile_set_flag");
     633        }
     634
     635        WRITE_UVLC((sei.tileSetData(i).getNumberOfTileRects() - 1), "num_tile_rects_in_set_minus1");
     636
    637637        for(Int j = 0; j < sei.tileSetData(i).getNumberOfTileRects(); j++)
    638638        {
    639           WRITE_UVLC(sei.tileSetData(i).topLeftTileIndex    (j), "top_left_tile_index"); 
    640           WRITE_UVLC(sei.tileSetData(i).bottomRightTileIndex(j), "bottom_right_tile_index"); 
     639          WRITE_UVLC(sei.tileSetData(i).topLeftTileIndex    (j), "top_left_tile_index");
     640          WRITE_UVLC(sei.tileSetData(i).bottomRightTileIndex(j), "bottom_right_tile_index");
    641641        }
    642642
    643643        if(!sei.m_mc_all_tiles_exact_sample_value_match_flag)
    644644        {
    645           WRITE_FLAG((sei.tileSetData(i).m_exact_sample_value_match_flag ? 1 : 0), "exact_sample_value_match_flag"); 
     645          WRITE_FLAG((sei.tileSetData(i).m_exact_sample_value_match_flag ? 1 : 0), "exact_sample_value_match_flag");
    646646        }
    647647
     
    651651        {
    652652          WRITE_FLAG((sei.tileSetData(i).m_mcts_tier_flag ? 1 : 0), "mcts_tier_flag");
    653           WRITE_CODE( sei.tileSetData(i).m_mcts_level_idc, 8,       "mcts_level_idc"); 
     653          WRITE_CODE( sei.tileSetData(i).m_mcts_level_idc, 8,       "mcts_level_idc");
    654654        }
    655655      }
     
    662662    if(sei.m_max_mcs_tier_level_idc_present_flag)
    663663    {
    664       WRITE_FLAG((sei.m_max_mcts_tier_flag ? 1 : 0), "max_mcts_tier_flag"); 
    665       WRITE_CODE( sei.m_max_mcts_level_idc, 8,       "max_mcts_level_idc"); 
     664      WRITE_FLAG((sei.m_max_mcts_tier_flag ? 1 : 0), "max_mcts_tier_flag");
     665      WRITE_CODE( sei.m_max_mcts_level_idc, 8,       "max_mcts_level_idc");
    666666    }
    667667  }
     
    763763  userVerticalCoefficients[2][2] = 100;
    764764  userVerticalCoefficients[2][3] = -10;
    765  
     765
    766766  Int const iNumHorizontalFilters = 1;
    767767  Int horizontalTapLength_minus1[iNumHorizontalFilters] = {3};
     
    832832{
    833833  WRITE_UVLC( sei.m_kneeId, "knee_function_id" );
    834   WRITE_FLAG( sei.m_kneeCancelFlag, "knee_function_cancel_flag" ); 
     834  WRITE_FLAG( sei.m_kneeCancelFlag, "knee_function_cancel_flag" );
    835835  if ( !sei.m_kneeCancelFlag )
    836836  {
     
    863863  WRITE_CODE( sei.values.whitePoint[0],    16,  "white_point_x" );
    864864  WRITE_CODE( sei.values.whitePoint[1],    16,  "white_point_y" );
    865    
     865
    866866  WRITE_CODE( sei.values.maxLuminance,     32,  "max_display_mastering_luminance" );
    867867  WRITE_CODE( sei.values.minLuminance,     32,  "min_display_mastering_luminance" );
     
    10331033
    10341034    // byte alignment
    1035     while ( m_pcBitIf->getNumberOfWrittenBits() % 8 != 0 ) 
     1035    while ( m_pcBitIf->getNumberOfWrittenBits() % 8 != 0 )
    10361036    {
    10371037      WRITE_FLAG( 0, "overlay_zero_bit" );
    10381038    }
    1039    
     1039
    10401040    UChar* stmp;
    10411041    UInt ilength;
     
    10441044      if( sei.m_languageOverlayPresentFlag[i] )
    10451045      {
    1046         stmp = (UChar*) strdup( sei.m_overlayLanguage[i].c_str() );       
     1046        stmp = (UChar*) strdup( sei.m_overlayLanguage[i].c_str() );
    10471047        ilength = (UInt) sei.m_overlayLanguage[i].size();
    10481048        WRITE_STRING( stmp, ilength, "overlay_language" );
     
    10651065    }
    10661066    WRITE_FLAG( ( sei.m_overlayInfoPersistenceFlag ? 1 : 0 ), "overlay_info_persistence_flag" );
    1067   } 
     1067  }
    10681068};
    10691069
     
    11571157{
    11581158    UInt x_sign, x_exp, x_mantissa,x_mantissa_len;
    1159     if (f < 0) 
     1159    if (f < 0)
    11601160    {
    11611161        f = f * (-1);
     
    13171317  if( sei.m_alternativeDepthInfoCancelFlag  ==  0 )
    13181318  {
     1319#if DEBUG_NH_3D_SEI
     1320    printf("\n################## xWriteSEIAlternativeDepthInfo() ################\n");
     1321#endif
    13191322    WRITE_CODE( sei.m_depthType, 2, "depth_type" );
    13201323
    1321 #if NH_MV_SEI_TBD
    13221324    if( sei.m_depthType  ==  0 )
    13231325    {
     
    13301332      if( sei.m_zGvdFlag )
    13311333      {
    1332         for( Int i = 0; i  <=  sei.m_numConstituentViewsGvdMinus1 + 1; i++ )
    1333         {
    1334           WRITE_FLAG( ( sei.m_signGvdZNearFlag[i] ? 1 : 0 ), "sign_gvd_z_near_flag" );
    1335           WRITE_CODE( sei.m_expGvdZNear[i], 7, "exp_gvd_z_near" );
    1336           WRITE_CODE( sei.m_manLenGvdZNearMinus1[i], 5, "man_len_gvd_z_near_minus1" );
    1337           WRITE_CODE( sei.m_manGvdZNear[i], getManGvdZNearLen ), "man_gvd_z_near" );
    1338           WRITE_FLAG( ( sei.m_signGvdZFarFlag[i] ? 1 : 0 ), "sign_gvd_z_far_flag" );
    1339           WRITE_CODE( sei.m_expGvdZFar[i], 7, "exp_gvd_z_far" );
    1340           WRITE_CODE( sei.m_manLenGvdZFarMinus1[i], 5, "man_len_gvd_z_far_minus1" );
    1341           WRITE_CODE( sei.m_manGvdZFar[i], getManGvdZFarLen ), "man_gvd_z_far" );
     1334        for( Int i = 0, j = 0; j  <=  sei.m_numConstituentViewsGvdMinus1 + 1; j++ )
     1335        {
     1336#if DEBUG_NH_3D_SEI
     1337          printf("sign_gvd_z_near_flag          : sei.m_signGvdZNearFlag[%d][%d]: %u\n", i, j, sei.m_signGvdZNearFlag[i][j]);
     1338          printf("exp_gvd_z_near                : sei.m_expGvdZNear[%d][%d]: %u\n", i, j, sei.m_expGvdZNear[i][j]);
     1339          printf("man_len_gvd_z_near_minus1     : sei.m_manLenGvdZNearMinus1[%d][%d]: %u\n", i, j, sei.m_manLenGvdZNearMinus1[i][j]);
     1340          printf("man_gvd_z_near                : sei.m_manGvdZNear[%d][%d]: %u\n", i, j, sei.m_manGvdZNear[i][j]);
     1341          printf("sign_gvd_z_far_flag           : sei.m_signGvdZFarFlag[%d][%d]: %u\n", i, j, sei.m_signGvdZFarFlag[i][j]);
     1342          printf("exp_gvd_z_far                 : sei.m_expGvdZFar[%d][%d]: %u\n", i, j, sei.m_expGvdZFar[i][j]);
     1343          printf("man_len_gvd_z_far_minus1      : sei.m_manLenGvdZFarMinus1[%d][%d]: %u\n", i, j, sei.m_manLenGvdZFarMinus1[i][j]);
     1344          printf("man_gvd_z_far                 : sei.m_manGvdZFar[%d][%d]: %u\n", i, j, sei.m_manGvdZFar[i][j]);
     1345#endif
     1346          WRITE_FLAG( ( sei.m_signGvdZNearFlag[i][j] ? 1 : 0 ), "sign_gvd_z_near_flag" );
     1347          WRITE_CODE( sei.m_expGvdZNear[i][j], 7, "exp_gvd_z_near" );
     1348          WRITE_CODE( sei.m_manLenGvdZNearMinus1[i][j], 5, "man_len_gvd_z_near_minus1" );
     1349          WRITE_CODE( sei.m_manGvdZNear[i][j], sei.m_manLenGvdZNearMinus1[i][j] + 1, "man_gvd_z_near" );
     1350          WRITE_FLAG( ( sei.m_signGvdZFarFlag[i][j] ? 1 : 0 ), "sign_gvd_z_far_flag" );
     1351          WRITE_CODE( sei.m_expGvdZFar[i][j], 7, "exp_gvd_z_far" );
     1352          WRITE_CODE( sei.m_manLenGvdZFarMinus1[i][j], 5, "man_len_gvd_z_far_minus1" );
     1353          WRITE_CODE( sei.m_manGvdZFar[i][j], sei.m_manLenGvdZFarMinus1[i][j] + 1, "man_gvd_z_far" );
    13421354        }
    13431355      }
    13441356      if( sei.m_intrinsicParamGvdFlag )
    13451357      {
     1358#if DEBUG_NH_3D_SEI
     1359        printf("prec_gvd_focal_length         : sei.m_precGvdFocalLength: %u\n", sei.m_precGvdFocalLength);
     1360        printf("prec_gvd_principal_point      : sei.m_precGvdPrincipalPoint: %u\n", sei.m_precGvdPrincipalPoint);
     1361#endif
    13461362        WRITE_UVLC( sei.m_precGvdFocalLength, "prec_gvd_focal_length" );
    13471363        WRITE_UVLC( sei.m_precGvdPrincipalPoint, "prec_gvd_principal_point" );
     
    13491365      if( sei.m_rotationGvdFlag )
    13501366      {
     1367#if DEBUG_NH_3D_SEI
     1368        printf("prec_gvd_focal_length         : sei.m_precGvdFocalLength: %u\n", sei.m_precGvdFocalLength);
     1369#endif
    13511370        WRITE_UVLC( sei.m_precGvdRotationParam, "prec_gvd_rotation_param" );
    13521371      }
    13531372      if( sei.m_translationGvdFlag )
    13541373      {
     1374#if DEBUG_NH_3D_SEI
     1375        printf("prec_gvd_focal_length         : sei.m_precGvdFocalLength: %u\n", sei.m_precGvdFocalLength);
     1376#endif
    13551377        WRITE_UVLC( sei.m_precGvdTranslationParam, "prec_gvd_translation_param" );
    13561378      }
    1357       for( Int i = 0; i  <=  sei.m_numConstituentViewsGvdMinus1 + 1; i++ )
     1379      for( Int i = 0, j = 0; j  <=  sei.m_numConstituentViewsGvdMinus1 + 1; j++ )
    13581380      {
    13591381        if( sei.m_intrinsicParamGvdFlag )
    13601382        {
    1361           WRITE_FLAG( ( sei.m_signGvdFocalLengthX[i] ? 1 : 0 ), "sign_gvd_focal_length_x" );
    1362           WRITE_CODE( sei.m_expGvdFocalLengthX[i], 6, "exp_gvd_focal_length_x" );
    1363           WRITE_CODE( sei.m_manGvdFocalLengthX[i], getManGvdFocalLengthXLen ), "man_gvd_focal_length_x" );
    1364           WRITE_FLAG( ( sei.m_signGvdFocalLengthY[i] ? 1 : 0 ), "sign_gvd_focal_length_y" );
    1365           WRITE_CODE( sei.m_expGvdFocalLengthY[i], 6, "exp_gvd_focal_length_y" );
    1366           WRITE_CODE( sei.m_manGvdFocalLengthY[i], getManGvdFocalLengthYLen ), "man_gvd_focal_length_y" );
    1367           WRITE_FLAG( ( sei.m_signGvdPrincipalPointX[i] ? 1 : 0 ), "sign_gvd_principal_point_x" );
    1368           WRITE_CODE( sei.m_expGvdPrincipalPointX[i], 6, "exp_gvd_principal_point_x" );
    1369           WRITE_CODE( sei.m_manGvdPrincipalPointX[i], getManGvdPrincipalPointXLen ), "man_gvd_principal_point_x" );
    1370           WRITE_FLAG( ( sei.m_signGvdPrincipalPointY[i] ? 1 : 0 ), "sign_gvd_principal_point_y" );
    1371           WRITE_CODE( sei.m_expGvdPrincipalPointY[i], 6, "exp_gvd_principal_point_y" );
    1372           WRITE_CODE( sei.m_manGvdPrincipalPointY[i], getManGvdPrincipalPointYLen ), "man_gvd_principal_point_y" );
     1383#if DEBUG_NH_3D_SEI
     1384          printf("sign_gvd_focal_length_x       : sei.m_signGvdFocalLengthX[%d][%d]: %u\n", i, j, sei.m_signGvdFocalLengthX[i][j]);
     1385          printf("exp_gvd_focal_length_x        : sei.m_expGvdFocalLengthX[%d][%d]: %u\n", i, j, sei.m_expGvdFocalLengthX[i][j]);
     1386          printf("man_gvd_focal_length_x        : sei.m_manGvdFocalLengthX[%d][%d]: %u\n", i, j, sei.m_manGvdFocalLengthX[i][j]);
     1387          printf("sign_gvd_focal_length_y       : sei.m_signGvdFocalLengthY[%d][%d]: %u\n", i, j, sei.m_signGvdFocalLengthY[i][j]);
     1388          printf("exp_gvd_focal_length_y        : sei.m_expGvdFocalLengthY[%d][%d]: %u\n", i, j, sei.m_expGvdFocalLengthY[i][j]);
     1389          printf("man_gvd_focal_length_y        : sei.m_manGvdFocalLengthY[%d][%d]: %u\n", i, j, sei.m_manGvdFocalLengthY[i][j]);
     1390          printf("sign_gvd_principal_point_x    : sei.m_signGvdPrincipalPointX[%d][%d]: %u\n", i, j, sei.m_signGvdPrincipalPointX[i][j]);
     1391          printf("exp_gvd_principal_point_x     : sei.m_expGvdPrincipalPointX[%d][%d]: %u\n", i, j, sei.m_expGvdPrincipalPointX[i][j]);
     1392          printf("man_gvd_principal_point_x     : sei.m_manGvdPrincipalPointX[%d][%d]: %u\n", i, j, sei.m_manGvdPrincipalPointX[i][j]);
     1393          printf("sign_gvd_principal_point_y    : sei.m_signGvdPrincipalPointY[%d][%d]: %u\n", i, j, sei.m_signGvdPrincipalPointY[i][j]);
     1394          printf("exp_gvd_principal_point_y     : sei.m_expGvdPrincipalPointY[%d][%d]: %u\n", i, j, sei.m_expGvdPrincipalPointY[i][j]);
     1395          printf("man_gvd_principal_point_y     : sei.m_manGvdPrincipalPointY[%d][%d]: %u\n", i, j, sei.m_manGvdPrincipalPointY[i][j]);
     1396#endif
     1397          WRITE_FLAG( ( sei.m_signGvdFocalLengthX[i][j] ? 1 : 0 ), "sign_gvd_focal_length_x" );
     1398          WRITE_CODE( sei.m_expGvdFocalLengthX[i][j], 6, "exp_gvd_focal_length_x" );
     1399          WRITE_CODE( sei.m_manGvdFocalLengthX[i][j], sei.m_precGvdFocalLength, "man_gvd_focal_length_x" );
     1400          WRITE_FLAG( ( sei.m_signGvdFocalLengthY[i][j] ? 1 : 0 ), "sign_gvd_focal_length_y" );
     1401          WRITE_CODE( sei.m_expGvdFocalLengthY[i][j], 6, "exp_gvd_focal_length_y" );
     1402          WRITE_CODE( sei.m_manGvdFocalLengthY[i][j], sei.m_precGvdFocalLength, "man_gvd_focal_length_y" );
     1403          WRITE_FLAG( ( sei.m_signGvdPrincipalPointX[i][j] ? 1 : 0 ), "sign_gvd_principal_point_x" );
     1404          WRITE_CODE( sei.m_expGvdPrincipalPointX[i][j], 6, "exp_gvd_principal_point_x" );
     1405          WRITE_CODE( sei.m_manGvdPrincipalPointX[i][j], sei.m_precGvdPrincipalPoint, "man_gvd_principal_point_x" );
     1406          WRITE_FLAG( ( sei.m_signGvdPrincipalPointY[i][j] ? 1 : 0 ), "sign_gvd_principal_point_y" );
     1407          WRITE_CODE( sei.m_expGvdPrincipalPointY[i][j], 6, "exp_gvd_principal_point_y" );
     1408          WRITE_CODE( sei.m_manGvdPrincipalPointY[i][j], sei.m_precGvdPrincipalPoint, "man_gvd_principal_point_y" );
    13731409        }
    13741410        if( sei.m_rotationGvdFlag )
    13751411        {
    1376           for( Int j = 10; j  <=  3; j++ ) /* row */
     1412          for( Int k = 0; k < 3; k++ )  // column
    13771413          {
    1378             for( Int k = 10; k  <=  3; k++ )  /* column */
    1379             {
    1380               WRITE_FLAG( ( sei.m_signGvdR[i][j][k] ? 1 : 0 ), "sign_gvd_r" );
    1381               WRITE_CODE( sei.m_expGvdR[i][j][k], 6, "exp_gvd_r" );
    1382               WRITE_CODE( sei.m_manGvdR[i][j][k], getManGvdRLen ), "man_gvd_r" );
    1383             }
     1414#if DEBUG_NH_3D_SEI
     1415            printf("sign_gvd_r                    : sei.m_signGvdR[%d][%d][%d]: %u\n", i, j, k, sei.m_signGvdR[i][j][k]);
     1416            printf("exp_gvd_r                     : sei.m_expGvdR[%d][%d][%d]: %u\n", i, j, k, sei.m_expGvdR[i][j][k]);
     1417            printf("man_gvd_r                     : sei.m_manGvdR[%d][%d][%d]: %u\n", i, j, k, sei.m_manGvdR[i][j][k]);
     1418#endif
     1419            WRITE_FLAG( ( sei.m_signGvdR[i][j][k] ? 1 : 0 ), "sign_gvd_r" );
     1420            WRITE_CODE( sei.m_expGvdR[i][j][k], 6, "exp_gvd_r" );
     1421            WRITE_CODE( sei.m_manGvdR[i][j][k], sei.m_precGvdTranslationParam, "man_gvd_r" );
    13841422          }
    13851423        }
    13861424        if( sei.m_translationGvdFlag )
    13871425        {
    1388           WRITE_FLAG( ( sei.m_signGvdTX[i] ? 1 : 0 ), "sign_gvd_t_x" );
    1389           WRITE_CODE( sei.m_expGvdTX[i], 6, "exp_gvd_t_x" );
    1390           WRITE_CODE( sei.m_manGvdTX[i], getManGvdTXLen ), "man_gvd_t_x" );
    1391         }
    1392       }
    1393     }
    1394 #endif
     1426#if DEBUG_NH_3D_SEI
     1427          printf("sign_gvd_t_x                  : sei.m_signGvdTX[%d][%d]: %u\n", i, j, sei.m_signGvdTX[i][j]);
     1428          printf("exp_gvd_t_x                   : sei.m_expGvdTX[%d][%d]: %u\n", i, j, sei.m_expGvdTX[i][j]);
     1429          printf("man_gvd_t_x                   : sei.m_manGvdTX[%d][%d]: %u\n", i, j, sei.m_manGvdTX[i][j]);
     1430#endif
     1431          WRITE_FLAG( ( sei.m_signGvdTX[i][j] ? 1 : 0 ), "sign_gvd_t_x" );
     1432          WRITE_CODE( sei.m_expGvdTX[i][j], 6, "exp_gvd_t_x" );
     1433          WRITE_CODE( sei.m_manGvdTX[i][j], sei.m_numConstituentViewsGvdMinus1, "man_gvd_t_x" );
     1434        }
     1435      }
     1436    }
    13951437
    13961438    if( sei.m_depthType  ==  1 )
  • branches/HTM-15.1-dev0-NICT/source/Lib/TLibEncoder/TEncGOP.cpp

    r1331 r1349  
    100100  m_layerId      = 0;
    101101  m_viewId       = 0;
    102   m_pocLastCoded = -1; 
     102  m_pocLastCoded = -1;
    103103#if NH_3D
    104   m_viewIndex  =   0; 
     104  m_viewIndex  =   0;
    105105  m_isDepth = false;
    106106#endif
     
    147147
    148148#if NH_MV
    149   m_ivPicLists           = pcTEncTop->getIvPicLists(); 
     149  m_ivPicLists           = pcTEncTop->getIvPicLists();
    150150  m_layerId              = pcTEncTop->getLayerId();
    151151  m_viewId               = pcTEncTop->getViewId();
     
    156156#endif
    157157#if NH_3D_IC
    158   m_aICEnableCandidate   = pcTEncTop->getICEnableCandidate(); 
    159   m_aICEnableNum         = pcTEncTop->getICEnableNum(); 
     158  m_aICEnableCandidate   = pcTEncTop->getICEnableCandidate();
     159  m_aICEnableNum         = pcTEncTop->getICEnableNum();
    160160#endif
    161161#if KWU_FIX_URQ
     
    207207#if NH_MV
    208208  if ( getLayerId() == 0 )
    209   { 
     209  {
    210210    actualTotalBits += xWriteVPS(accessUnit, m_pcEncTop->getVPS());
    211211  }
     
    232232  OutputNALUnit nalu(naluType, temporalId);
    233233#endif
     234  printf("\nDEBUG: TEncGOP::xWriteSEI() call SEIWriter::writeSEImessages()\n");
    234235  m_seiWriter.writeSEImessages(nalu.m_Bitstream, seiMessages, sps, false);
    235236  auPos = accessUnit.insert(auPos, new NALUnitEBSP(nalu));
     
    277278
    278279  while ( (itNalu!=accessUnit.end())&&
    279     ( (*itNalu)->m_nalUnitType==NAL_UNIT_ACCESS_UNIT_DELIMITER 
     280    ( (*itNalu)->m_nalUnitType==NAL_UNIT_ACCESS_UNIT_DELIMITER
    280281    || (*itNalu)->m_nalUnitType==NAL_UNIT_VPS
    281282    || (*itNalu)->m_nalUnitType==NAL_UNIT_SPS
     
    288289  SEIMessages localMessages = seiMessages;
    289290  SEIMessages currentMessages;
    290  
     291
    291292#if ENC_DEC_TRACE
    292293  g_HLSTraceEnable = !testWrite;
     
    299300  xWriteSEI(NAL_UNIT_PREFIX_SEI, currentMessages, accessUnit, itNalu, temporalId, sps);
    300301  xClearSEIs(currentMessages, !testWrite);
    301  
     302
    302303  // Buffering period SEI must always be following active parameter sets
    303304  currentMessages = extractSeisByType(localMessages, SEI::BUFFERING_PERIOD);
     
    476477    seiMessages.push_back(sei);
    477478  }
    478    
     479
    479480  if(m_pcCfg->getMasteringDisplaySEI().colourVolumeSEIEnabled)
    480481  {
     
    490491  {
    491492    SEISubBitstreamProperty *sei = new SEISubBitstreamProperty;
    492     m_seiEncoder.initSEISubBitstreamProperty( sei, sps );   
     493    m_seiEncoder.initSEISubBitstreamProperty( sei, sps );
    493494    seiMessages.push_back(sei);
    494495  }
     
    685686      }
    686687    }
    687    
     688
    688689    if( m_pcCfg->getPictureTimingSEIEnabled() )
    689690    {
     
    721722    return;
    722723  }
    723   // fix first 
     724  // fix first
    724725  UInt numNalUnits = (UInt)testAU.size();
    725726  UInt numRBSPBytes = 0;
     
    933934          IRAPGOPid = iGOPid;
    934935          IRAPtoReorder = true;
    935           swapIRAPForward = true; 
     936          swapIRAPForward = true;
    936937          break;
    937938        }
     
    941942          IRAPGOPid = iGOPid;
    942943          IRAPtoReorder = true;
    943           swapIRAPForward = false; 
     944          swapIRAPForward = false;
    944945          break;
    945946        }
     
    10721073#endif
    10731074#if NH_MV
    1074 Void TEncGOP::compressPicInGOP( Int iPOCLast, Int iNumPicRcvd, TComList<TComPic*>& rcListPic, 
    1075                                 TComList<TComPicYuv*>& rcListPicYuvRecOut,  std::list<AccessUnit>& accessUnitsInGOP, 
     1075Void TEncGOP::compressPicInGOP( Int iPOCLast, Int iNumPicRcvd, TComList<TComPic*>& rcListPic,
     1076                                TComList<TComPicYuv*>& rcListPicYuvRecOut,  std::list<AccessUnit>& accessUnitsInGOP,
    10761077                                Bool isField, Bool isTff, const InputColourSpaceConversion snr_conversion, const Bool printFrameMSE, Int iGOPid )
    10771078#else
     
    11761177    pcPic->setCurrSliceIdx(0);
    11771178#if NH_MV
    1178     m_pcSliceEncoder->initEncSlice ( pcPic, iPOCLast, pocCurr, iGOPid, pcSlice, m_pcEncTop->getVPS(), getLayerId(), isField  );     
     1179    m_pcSliceEncoder->initEncSlice ( pcPic, iPOCLast, pocCurr, iGOPid, pcSlice, m_pcEncTop->getVPS(), getLayerId(), isField  );
    11791180#else
    11801181    m_pcSliceEncoder->initEncSlice ( pcPic, iPOCLast, pocCurr, iGOPid, pcSlice, isField );
     
    11871188    pcSlice->setSliceIdx(0);
    11881189#if NH_MV
    1189     pcSlice->setRefPicSetInterLayer ( &m_refPicSetInterLayer0, &m_refPicSetInterLayer1 ); 
     1190    pcSlice->setRefPicSetInterLayer ( &m_refPicSetInterLayer0, &m_refPicSetInterLayer1 );
    11901191    pcPic  ->setLayerId     ( getLayerId()   );
    1191     pcPic  ->setViewId      ( getViewId()    );   
     1192    pcPic  ->setViewId      ( getViewId()    );
    11921193#if !NH_3D
    11931194    pcSlice->setLayerId     ( getLayerId() );
    1194     pcSlice->setViewId      ( getViewId()  );   
     1195    pcSlice->setViewId      ( getViewId()  );
    11951196    pcSlice->setVPS         ( m_pcEncTop->getVPS() );
    11961197#else
    1197     pcPic  ->setViewIndex   ( getViewIndex() ); 
     1198    pcPic  ->setViewIndex   ( getViewIndex() );
    11981199    pcPic  ->setIsDepth( getIsDepth() );
    1199     pcSlice->setCamparaSlice( pcPic->getCodedScale(), pcPic->getCodedOffset() );   
    1200 #endif
    1201 #endif 
     1200    pcSlice->setCamparaSlice( pcPic->getCodedScale(), pcPic->getCodedOffset() );
     1201#endif
     1202#endif
    12021203    //set default slice level flag to the same as SPS level flag
    12031204    pcSlice->setLFCrossSliceBoundaryFlag(  pcSlice->getPPS()->getLoopFilterAcrossSlicesEnabledFlag()  );
     
    12071208    if( pcSlice->getSliceType() == B_SLICE )
    12081209    {
    1209       if( m_pcCfg->getGOPEntry( ( pcSlice->getRapPicFlag() && getLayerId() > 0 ) ? MAX_GOP : iGOPid ).m_sliceType == 'P' ) 
    1210       { 
     1210      if( m_pcCfg->getGOPEntry( ( pcSlice->getRapPicFlag() && getLayerId() > 0 ) ? MAX_GOP : iGOPid ).m_sliceType == 'P' )
     1211      {
    12111212        pcSlice->setSliceType( P_SLICE );
    12121213      }
     
    12161217    if( pcSlice->getSliceType() == B_SLICE )
    12171218    {
    1218       if( m_pcCfg->getGOPEntry( ( pcSlice->getRapPicFlag() && getLayerId() > 0 ) ? MAX_GOP : iGOPid ).m_sliceType == 'I' ) 
    1219       { 
     1219      if( m_pcCfg->getGOPEntry( ( pcSlice->getRapPicFlag() && getLayerId() > 0 ) ? MAX_GOP : iGOPid ).m_sliceType == 'I' )
     1220      {
    12201221        pcSlice->setSliceType( I_SLICE );
    12211222      }
     
    12311232      pcSlice->setSliceType(I_SLICE);
    12321233    }
    1233    
     1234
    12341235    // Set the nal unit type
    12351236    pcSlice->setNalUnitType(getNalUnitType(pocCurr, m_iLastIDR, isField));
     
    12851286    pcSlice->setAssociatedIRAPPOC(m_associatedIRAPPOC);
    12861287    }
    1287     if ((pcSlice->checkThatAllRefPicsAreAvailable(rcListPic, pcSlice->getRPS(), false, m_iLastRecoveryPicPOC, m_pcCfg->getDecodingRefreshType() == 3) != 0) || (pcSlice->isIRAP()) 
     1288    if ((pcSlice->checkThatAllRefPicsAreAvailable(rcListPic, pcSlice->getRPS(), false, m_iLastRecoveryPicPOC, m_pcCfg->getDecodingRefreshType() == 3) != 0) || (pcSlice->isIRAP())
    12881289      || (m_pcCfg->getEfficientFieldIRAPEnabled() && isField && pcSlice->getAssociatedIRAPType() >= NAL_UNIT_CODED_SLICE_BLA_W_LP && pcSlice->getAssociatedIRAPType() <= NAL_UNIT_CODED_SLICE_CRA && pcSlice->getAssociatedIRAPPOC() == pcSlice->getPOC()+1)
    12891290      )
     
    12941295    pcSlice->applyReferencePictureSet(rcListPic, pcSlice->getRPS());
    12951296
    1296     if(pcSlice->getTLayer() > 0 
     1297    if(pcSlice->getTLayer() > 0
    12971298      &&  !( pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_RADL_N     // Check if not a leading picture
    12981299          || pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_RADL_R
     
    13641365    if ( pcSlice->getPPS()->getNumExtraSliceHeaderBits() > 0 )
    13651366    {
    1366       // Some more sophisticated algorithm to determine discardable_flag might be added here. 
    1367       pcSlice->setDiscardableFlag           ( false );     
    1368     }   
    1369 
    1370     const TComVPS*           vps = pcSlice->getVPS();     
     1367      // Some more sophisticated algorithm to determine discardable_flag might be added here.
     1368      pcSlice->setDiscardableFlag           ( false );
     1369    }
     1370
     1371    const TComVPS*           vps = pcSlice->getVPS();
    13711372#if NH_3D
    1372     Int numDirectRefLayers = vps    ->getNumRefListLayers( getLayerId() ); 
     1373    Int numDirectRefLayers = vps    ->getNumRefListLayers( getLayerId() );
    13731374#else
    1374     Int numDirectRefLayers = vps    ->getNumDirectRefLayers( getLayerId() ); 
     1375    Int numDirectRefLayers = vps    ->getNumDirectRefLayers( getLayerId() );
    13751376#endif
    13761377#if NH_3D
    1377     pcSlice->setIvPicLists( m_ivPicLists );         
     1378    pcSlice->setIvPicLists( m_ivPicLists );
    13781379
    13791380    Int gopNum = (pcSlice->getRapPicFlag() && getLayerId() > 0) ? MAX_GOP : iGOPid;
    1380     GOPEntry gopEntry      = m_pcCfg->getGOPEntry( gopNum );     
     1381    GOPEntry gopEntry      = m_pcCfg->getGOPEntry( gopNum );
    13811382#else
    1382     GOPEntry gopEntry      = m_pcCfg->getGOPEntry( (pcSlice->getRapPicFlag() && getLayerId() > 0) ? MAX_GOP : iGOPid );     
    1383 #endif
    1384 
    1385 
    1386    
    1387     Bool interLayerPredLayerIdcPresentFlag = false; 
     1383    GOPEntry gopEntry      = m_pcCfg->getGOPEntry( (pcSlice->getRapPicFlag() && getLayerId() > 0) ? MAX_GOP : iGOPid );
     1384#endif
     1385
     1386
     1387
     1388    Bool interLayerPredLayerIdcPresentFlag = false;
    13881389    if ( getLayerId() > 0 && !vps->getAllRefLayersActiveFlag() && numDirectRefLayers > 0 )
    1389     {         
    1390       pcSlice->setInterLayerPredEnabledFlag ( gopEntry.m_numActiveRefLayerPics > 0 );     
     1390    {
     1391      pcSlice->setInterLayerPredEnabledFlag ( gopEntry.m_numActiveRefLayerPics > 0 );
    13911392      if ( pcSlice->getInterLayerPredEnabledFlag() && numDirectRefLayers > 1 )
    13921393      {
    13931394        if ( !vps->getMaxOneActiveRefLayerFlag() )
    1394         {   
    1395           pcSlice->setNumInterLayerRefPicsMinus1( gopEntry.m_numActiveRefLayerPics - 1 ); 
     1395        {
     1396          pcSlice->setNumInterLayerRefPicsMinus1( gopEntry.m_numActiveRefLayerPics - 1 );
    13961397        }
    13971398#if NH_3D
     
    14001401        if ( gopEntry.m_numActiveRefLayerPics != vps->getNumDirectRefLayers( getLayerId() ) )
    14011402#endif
    1402         {       
    1403           interLayerPredLayerIdcPresentFlag = true; 
     1403        {
     1404          interLayerPredLayerIdcPresentFlag = true;
    14041405          for (Int i = 0; i < gopEntry.m_numActiveRefLayerPics; i++ )
    14051406          {
    1406             pcSlice->setInterLayerPredLayerIdc( i, gopEntry.m_interLayerPredLayerIdc[ i ] ); 
     1407            pcSlice->setInterLayerPredLayerIdc( i, gopEntry.m_interLayerPredLayerIdc[ i ] );
    14071408          }
    14081409        }
     
    14111412    if ( !interLayerPredLayerIdcPresentFlag )
    14121413    {
    1413       for( Int i = 0; i < pcSlice->getNumActiveRefLayerPics(); i++ )   
     1414      for( Int i = 0; i < pcSlice->getNumActiveRefLayerPics(); i++ )
    14141415      {
    14151416        pcSlice->setInterLayerPredLayerIdc(i, pcSlice->getRefLayerPicIdc( i ) );
     
    14181419
    14191420
    1420     assert( pcSlice->getNumActiveRefLayerPics() == gopEntry.m_numActiveRefLayerPics ); 
    1421    
     1421    assert( pcSlice->getNumActiveRefLayerPics() == gopEntry.m_numActiveRefLayerPics );
     1422
    14221423#if NH_3D
    14231424    if ( m_pcEncTop->decProcAnnexI() )
    1424     {   
    1425       pcSlice->deriveInCmpPredAndCpAvailFlag( ); 
     1425    {
     1426      pcSlice->deriveInCmpPredAndCpAvailFlag( );
    14261427      if ( pcSlice->getInCmpPredAvailFlag() )
    1427       {     
    1428         pcSlice->setInCompPredFlag( gopEntry.m_interCompPredFlag ); 
     1428      {
     1429        pcSlice->setInCompPredFlag( gopEntry.m_interCompPredFlag );
    14291430      }
    14301431      else
     
    14401441            printf( "\nError: Frame%d_l%d cannot enable inter-component prediction on slice level. All reference layers need to be available and at least one tool using inter-component prediction must be enabled in the SPS. \n", gopNum, pcSlice->getVPS()->getLayerIdInVps( getLayerId() ) );
    14411442          }
    1442          
     1443
    14431444          exit(EXIT_FAILURE);
    14441445        }
    14451446      }
    1446       pcSlice->init3dToolParameters(); 
    1447       pcSlice->checkInCompPredRefLayers(); 
    1448     }   
     1447      pcSlice->init3dToolParameters();
     1448      pcSlice->checkInCompPredRefLayers();
     1449    }
    14491450#if NH_3D_IV_MERGE
    14501451    // This needs to be done after initialization of 3D tool parameters.
     
    14531454#endif
    14541455
    1455     pcSlice->createInterLayerReferencePictureSet( m_ivPicLists, m_refPicSetInterLayer0, m_refPicSetInterLayer1 ); 
     1456    pcSlice->createInterLayerReferencePictureSet( m_ivPicLists, m_refPicSetInterLayer0, m_refPicSetInterLayer1 );
    14561457    pcSlice->setNumRefIdx(REF_PIC_LIST_0,min(gopEntry.m_numRefPicsActive,( pcSlice->getRPS()->getNumberOfPictures() + (Int) m_refPicSetInterLayer0.size() + (Int) m_refPicSetInterLayer1.size()) ) );
    14571458    pcSlice->setNumRefIdx(REF_PIC_LIST_1,min(gopEntry.m_numRefPicsActive,( pcSlice->getRPS()->getNumberOfPictures() + (Int) m_refPicSetInterLayer0.size() + (Int) m_refPicSetInterLayer1.size()) ) );
     
    14621463
    14631464    pcSlice->getTempRefPicLists( rcListPic, m_refPicSetInterLayer0, m_refPicSetInterLayer1, tempRefPicLists, usedAsLongTerm, numPocTotalCurr, true );
    1464    
    1465 
    1466     xSetRefPicListModificationsMv( tempRefPicLists, pcSlice, iGOPid );   
     1465
     1466
     1467    xSetRefPicListModificationsMv( tempRefPicLists, pcSlice, iGOPid );
    14671468#else
    14681469    pcSlice->setNumRefIdx(REF_PIC_LIST_0,min(m_pcCfg->getGOPEntry(iGOPid).m_numRefPicsActive,pcSlice->getRPS()->getNumberOfPictures()));
     
    14701471#endif
    14711472    //  Set reference list
    1472 #if NH_MV   
    1473     pcSlice->setRefPicList( tempRefPicLists, usedAsLongTerm, numPocTotalCurr ); 
     1473#if NH_MV
     1474    pcSlice->setRefPicList( tempRefPicLists, usedAsLongTerm, numPocTotalCurr );
    14741475#else
    14751476    pcSlice->setRefPicList ( rcListPic );
     
    14831484#endif
    14841485#if NH_3D_IC
    1485     pcSlice->setICEnableCandidate( m_aICEnableCandidate );         
    1486     pcSlice->setICEnableNum( m_aICEnableNum );         
     1486    pcSlice->setICEnableCandidate( m_aICEnableCandidate );
     1487    pcSlice->setICEnableNum( m_aICEnableNum );
    14871488#endif
    14881489
     
    14911492    if ( pcSlice->getSliceType() == B_SLICE )
    14921493    {
    1493       if( m_pcCfg->getGOPEntry( ( pcSlice->getRapPicFlag() == true && getLayerId() > 0 ) ? MAX_GOP : iGOPid ).m_sliceType == 'P' ) 
    1494       { 
    1495         pcSlice->setSliceType( P_SLICE ); 
     1494      if( m_pcCfg->getGOPEntry( ( pcSlice->getRapPicFlag() == true && getLayerId() > 0 ) ? MAX_GOP : iGOPid ).m_sliceType == 'P' )
     1495      {
     1496        pcSlice->setSliceType( P_SLICE );
    14961497      }
    14971498    }
     
    15721573
    15731574#if NH_3D_VSO
    1574   // Should be moved to TEncTop !!! 
     1575  // Should be moved to TEncTop !!!
    15751576  Bool bUseVSO = m_pcEncTop->getUseVSO();
    1576  
    1577   TComRdCost* pcRdCost = m_pcEncTop->getRdCost();   
     1577
     1578  TComRdCost* pcRdCost = m_pcEncTop->getRdCost();
    15781579
    15791580  pcRdCost->setUseVSO( bUseVSO );
     
    17311732#endif
    17321733#if NH_3D
    1733       pcSlice->setDepthToDisparityLUTs(); 
     1734      pcSlice->setDepthToDisparityLUTs();
    17341735
    17351736#endif
     
    19901991    cabac_zero_word_padding(pcSlice, pcPic, binCountsInNalUnits, numBytesInVclNalUnits, accessUnit.back()->m_nalUnitData, m_pcCfg->getCabacZeroWordPaddingEnabled());
    19911992#if NH_3D
    1992       pcPic->compressMotion(2); 
     1993      pcPic->compressMotion(2);
    19931994#else
    19941995    pcPic->compressMotion();
     
    20652066    pcPic->setReconMark   ( true );
    20662067#if NH_MV
    2067       TComSlice::markIvRefPicsAsShortTerm( m_refPicSetInterLayer0, m_refPicSetInterLayer1 ); 
    2068       std::vector<Int> temp; 
    2069       TComSlice::markCurrPic( pcPic ); 
     2068      TComSlice::markIvRefPicsAsShortTerm( m_refPicSetInterLayer0, m_refPicSetInterLayer1 );
     2069      std::vector<Int> temp;
     2070      TComSlice::markCurrPic( pcPic );
    20702071#endif
    20712072    m_bFirst = false;
     
    21042105  //-- all
    21052106#if NH_MV
    2106   printf( "\n\nSUMMARY -------------------------------------------- LayerId %2d\n", getLayerId() );   
     2107  printf( "\n\nSUMMARY -------------------------------------------- LayerId %2d\n", getLayerId() );
    21072108#else
    21082109  printf( "\n\nSUMMARY --------------------------------------------------------\n" );
     
    24122413#if H_3D_VSO_SYNTH_DIST_OUT
    24132414}
    2414 #endif 
    2415 #endif 
     2415#endif
     2416#endif
    24162417  /* calculate the size of the access unit, excluding:
    24172418   *  - any AnnexB contributions (start_code_prefix, zero_byte, etc.,)
     
    25362537
    25372538#if  NH_MV
    2538   assert( 0 ); // Field coding and MV need to be aligned. 
     2539  assert( 0 ); // Field coding and MV need to be aligned.
    25392540#else
    25402541
     
    29792980#if NH_MV
    29802981Void TEncGOP::xSetRefPicListModificationsMv( std::vector<TComPic*> tempPicLists[2], TComSlice* pcSlice, UInt iGOPid )
    2981 { 
    2982  
     2982{
     2983
    29832984  if( pcSlice->getSliceType() == I_SLICE || !(pcSlice->getPPS()->getListsModificationPresentFlag()) || pcSlice->getNumActiveRefLayerPics() == 0 )
    29842985  {
    29852986    return;
    29862987  }
    2987  
     2988
    29882989  GOPEntry ge = m_pcCfg->getGOPEntry( (pcSlice->getRapPicFlag() && ( pcSlice->getLayerId( ) > 0) ) ? MAX_GOP : iGOPid );
    2989   assert( ge.m_numActiveRefLayerPics == pcSlice->getNumActiveRefLayerPics() ); 
    2990 
    2991   Int numPicsInTempList     = pcSlice->getNumRpsCurrTempList(); 
    2992 
    2993   // GT: check if SliceType should be checked here. 
     2990  assert( ge.m_numActiveRefLayerPics == pcSlice->getNumActiveRefLayerPics() );
     2991
     2992  Int numPicsInTempList     = pcSlice->getNumRpsCurrTempList();
     2993
     2994  // GT: check if SliceType should be checked here.
    29942995  for (Int li = 0; li < 2; li ++) // Loop over lists L0 and L1
    29952996  {
    2996     Int numPicsInFinalRefList = pcSlice->getNumRefIdx( ( li == 0 ) ? REF_PIC_LIST_0 : REF_PIC_LIST_1 ); 
    2997            
     2997    Int numPicsInFinalRefList = pcSlice->getNumRefIdx( ( li == 0 ) ? REF_PIC_LIST_0 : REF_PIC_LIST_1 );
     2998
    29982999    Int finalIdxToTempIdxMap[16];
    29993000    for( Int k = 0; k < 16; k++ )
     
    30093010        // get position in temp. list
    30103011        Int refPicLayerId = pcSlice->getRefPicLayerId(k);
    3011         Int idxInTempList = 0; 
     3012        Int idxInTempList = 0;
    30123013        for (; idxInTempList < numPicsInTempList; idxInTempList++)
    30133014        {
    30143015          if ( (tempPicLists[li][idxInTempList])->getLayerId() == refPicLayerId )
    30153016          {
    3016             break; 
     3017            break;
    30173018          }
    30183019        }
    30193020
    30203021        Int idxInFinalList = ge.m_interViewRefPosL[ li ][ k ];
    3021        
    3022         // Add negative from behind 
    3023         idxInFinalList = ( idxInFinalList < 0 )? ( numPicsInTempList + idxInFinalList ) : idxInFinalList; 
    3024        
     3022
     3023        // Add negative from behind
     3024        idxInFinalList = ( idxInFinalList < 0 )? ( numPicsInTempList + idxInFinalList ) : idxInFinalList;
     3025
    30253026        Bool curIsModified = ( idxInFinalList != idxInTempList ) && ( ( idxInTempList < numPicsInFinalRefList ) || ( idxInFinalList < numPicsInFinalRefList ) ) ;
    30263027        if ( curIsModified )
    30273028        {
    3028           isModified = true; 
     3029          isModified = true;
    30293030          assert( finalIdxToTempIdxMap[ idxInFinalList ] == -1 ); // Assert when two inter layer reference pictures are sorted to the same position
    30303031        }
    3031         finalIdxToTempIdxMap[ idxInFinalList ] = idxInTempList;             
     3032        finalIdxToTempIdxMap[ idxInFinalList ] = idxInTempList;
    30323033      }
    30333034    }
    30343035
    30353036    TComRefPicListModification* refPicListModification = pcSlice->getRefPicListModification();
    3036     refPicListModification->setRefPicListModificationFlagL( li, isModified ); 
     3037    refPicListModification->setRefPicListModificationFlagL( li, isModified );
    30373038
    30383039    if( isModified )
    30393040    {
    30403041      Int refIdx = 0;
    3041      
     3042
    30423043      for( Int i = 0; i < numPicsInFinalRefList; i++ )
    30433044      {
    3044         if( finalIdxToTempIdxMap[i] >= 0 ) 
     3045        if( finalIdxToTempIdxMap[i] >= 0 )
    30453046        {
    30463047          refPicListModification->setRefPicSetIdxL( li, i, finalIdxToTempIdxMap[i] );
     
    30523053          while( ( refIdx < numPicsInTempList ) && ( tempPicLists[li][refIdx]->getLayerId() != getLayerId())  )
    30533054          {
    3054             refIdx++; 
     3055            refIdx++;
    30553056          }
    30563057          refPicListModification->setRefPicSetIdxL( li, i, refIdx );
Note: See TracChangeset for help on using the changeset viewer.