Changeset 442 in SHVCSoftware for trunk/source/Lib/TLibEncoder/SEIwrite.cpp


Ignore:
Timestamp:
21 Oct 2013, 13:41:29 (11 years ago)
Author:
seregin
Message:

reintegrate SHM-3.1-dev branch

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/source

  • trunk/source/Lib/TLibEncoder/SEIwrite.cpp

    r313 r442  
    9595    fprintf( g_hTrace, "=========== SOP Description SEI message ===========\n");
    9696    break;
     97#if N0383_IL_CONSTRAINED_TILE_SETS_SEI
     98  case SEI::INTER_LAYER_CONSTRAINED_TILE_SETS:
     99    fprintf( g_hTrace, "=========== Inter Layer Constrained Tile Sets SEI message ===========\n");
     100    break;
     101#endif
    97102  case SEI::SCALABLE_NESTING:
    98103    fprintf( g_hTrace, "=========== Scalable Nesting SEI message ===========\n");
     
    153158    xWriteSEISOPDescription(*static_cast<const SEISOPDescription*>(&sei));
    154159    break;
     160#if N0383_IL_CONSTRAINED_TILE_SETS_SEI
     161  case SEI::INTER_LAYER_CONSTRAINED_TILE_SETS:
     162    xWriteSEIInterLayerConstrainedTileSets(*static_cast<const SEIInterLayerConstrainedTileSets*>(&sei));
     163    break;
     164#endif
    155165  case SEI::SCALABLE_NESTING:
    156166    xWriteSEIScalableNesting(bs, *static_cast<const SEIScalableNesting*>(&sei), sps);
     
    559569}
    560570
     571#if N0383_IL_CONSTRAINED_TILE_SETS_SEI
     572Void SEIWriter::xWriteSEIInterLayerConstrainedTileSets(const SEIInterLayerConstrainedTileSets& sei)
     573{
     574  WRITE_FLAG( sei.m_ilAllTilesExactSampleValueMatchFlag,  "il_all_tiles_exact_sample_value_match_flag"   );
     575  WRITE_FLAG( sei.m_ilOneTilePerTileSetFlag,              "il_one_tile_per_tile_set_flag"                );
     576  if( !sei.m_ilOneTilePerTileSetFlag )
     577  {
     578    WRITE_UVLC( sei.m_ilNumSetsInMessageMinus1,             "il_num_sets_in_message_minus1"                );
     579    if( sei.m_ilNumSetsInMessageMinus1 )
     580    {
     581      WRITE_FLAG( sei.m_skippedTileSetPresentFlag,            "skipped_tile_set_present_flag"                );
     582    }
     583    UInt numSignificantSets = sei.m_ilNumSetsInMessageMinus1 - (sei.m_skippedTileSetPresentFlag ? 1 : 0) + 1;
     584    for( UInt i = 0; i < numSignificantSets; i++ )
     585    {
     586      WRITE_UVLC( sei.m_ilctsId[i],                           "ilcts_id"                                     );
     587      WRITE_UVLC( sei.m_ilNumTileRectsInSetMinus1[i],         "il_num_tile_rects_in_set_minus1"              );
     588      for( UInt j = 0; j <= sei.m_ilNumTileRectsInSetMinus1[i]; j++ )
     589      {
     590        WRITE_UVLC( sei.m_ilTopLeftTileIndex[i][j],             "il_top_left_tile_index"                       );
     591        WRITE_UVLC( sei.m_ilBottomRightTileIndex[i][j],         "il_bottom_right_tile_index"                   );
     592      }
     593      WRITE_CODE( sei.m_ilcIdc[i], 2,                         "ilc_idc"                                      );
     594      if( sei.m_ilAllTilesExactSampleValueMatchFlag )
     595      {
     596        WRITE_FLAG( sei.m_ilExactSampleValueMatchFlag[i],        "il_exact_sample_value_match_flag"            );
     597      }
     598    }
     599  }
     600  else
     601  {
     602    WRITE_CODE( sei.m_allTilesIlcIdc, 2,                    "all_tiles_ilc_idc"                          );
     603  }
     604
     605  xWriteByteAlign();
     606}
     607#endif
     608
    561609Void SEIWriter::xWriteSEIScalableNesting(TComBitIf& bs, const SEIScalableNesting& sei, TComSPS *sps)
    562610{
Note: See TracChangeset for help on using the changeset viewer.