⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sei.cpp

📁 JVT-Z203_jsvm.rar
💻 CPP
📖 第 1 页 / 共 5 页
字号:
SEI::SubSeqInfo::init( UInt  uiSubSeqLayerNum,
                       UInt  uiSubSeqId,
                       Bool  bFirstRefPicFlag,
                       Bool  bLeadingNonRefPicFlag,
                       Bool  bLastPicFlag,
                       Bool  bSubSeqFrameNumFlag,
                       UInt  uiSubSeqFrameNum ) 

{
  m_uiSubSeqLayerNum      = uiSubSeqLayerNum;
  m_uiSubSeqId            = uiSubSeqId;
  m_bFirstRefPicFlag      = bFirstRefPicFlag;
  m_bLeadingNonRefPicFlag = bLeadingNonRefPicFlag;
  m_bLastPicFlag          = bLastPicFlag;
  m_bSubSeqFrameNumFlag   = bSubSeqFrameNumFlag;
  m_uiSubSeqFrameNum      = uiSubSeqFrameNum;
  return Err::m_nOK;
}





//////////////////////////////////////////////////////////////////////////
// 
//      S C A L A B L E     S E I
//
//////////////////////////////////////////////////////////////////////////
//SEI changes update {
//SEI::ScalableSei::ScalableSei	() 
//: SEIMessage									( SCALABLE_SEI )
//// JVT-U085 LMI
//, m_temporal_level_nesting_flag( false )
////JVT-W051 {
//, m_quality_layer_info_present_flag( false )
//, m_ql_num_dId_minus1( 0 )
////JVT-W051 }
//, m_priority_id_setting_flag	 ( true )//JVT-W053
//, m_num_layers_minus1					( 0	)
//{	
//	::memset( m_layer_id, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
////	::memset( m_fgs_layer_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );  //JVT-S036 lsj
//	::memset( m_sub_pic_layer_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
//	::memset( m_sub_region_layer_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
//	//::memset( m_iroi_slice_division_info_present_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) ); //JVT-S036 lsj
//	::memset( m_iroi_division_info_present_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) ); //JVT-W051
//	::memset( m_profile_level_info_present_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
//	::memset( m_bitrate_info_present_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
//	::memset( m_frm_rate_info_present_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
//	::memset( m_frm_size_info_present_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
//	::memset( m_layer_dependency_info_present_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
//	::memset( m_init_parameter_sets_info_present_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
//	::memset( m_exact_sample_value_match_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );  //JVT-S036 lsj
//	JVT-W046 {
//	::memset( m_avc_layer_conversion_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
//  ::memset( m_avc_conversion_type_idc  , 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//	::memset( m_avc_info_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool*) );
//	::memset( m_avc_profile_level_idc, 0x00, MAX_SCALABLE_LAYERS*sizeof(Int32*) );
//	::memset( m_avc_avg_bitrate, 0x00, MAX_SCALABLE_LAYERS*sizeof(Double*) );
//	::memset( m_avc_max_bitrate, 0x00, MAX_SCALABLE_LAYERS*sizeof(Double*) );
//	JVT-W046 }
//	//::memset( m_layer_profile_idc, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//	::memset( m_layer_profile_level_idc, 0x00, MAX_SCALABLE_LAYERS*sizeof(Int32) );//JVT-W051
//	::memset( m_layer_constraint_set0_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
//	::memset( m_layer_constraint_set1_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
//	::memset( m_layer_constraint_set2_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
//	::memset( m_layer_constraint_set3_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
//	::memset( m_layer_level_idc, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//
////JVT-S036 lsj start
//	::memset( m_profile_level_info_src_layer_id_delta, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );//
//
//	::memset( m_simple_priority_id, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );//
//    ::memset( m_discardable_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );//
//	::memset( m_temporal_level, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//	::memset( m_dependency_id, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//	::memset( m_quality_level, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//
//	::memset( m_avg_bitrate, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//	::memset( m_max_bitrate_layer, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );//
//	//::memset( m_max_bitrate_decoded_picture, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );//
//	::memset( m_max_bitrate_layer_representation, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );//JVT-W051
//	::memset( m_max_bitrate_calc_window, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );//
//
//	::memset( m_constant_frm_rate_idc, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//	::memset( m_avg_frm_rate, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//
//	::memset( m_frm_rate_info_src_layer_id_delta, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );//
//
//	::memset( m_frm_width_in_mbs_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//	::memset( m_frm_height_in_mbs_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//
//	::memset( m_frm_size_info_src_layer_id_delta, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );//
//
//	::memset( m_base_region_layer_id, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//	::memset( m_dynamic_rect_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
//	::memset( m_horizontal_offset, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//	::memset( m_vertical_offset, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//	::memset( m_region_width, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//	::memset( m_region_height, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//
//	::memset( m_sub_region_info_src_layer_id_delta, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) ); //
//
//	::memset( m_roi_id, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//
//	::memset( m_iroi_division_type, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//	//::memset( m_grid_slice_width_in_mbs_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//	::memset( m_grid_width_in_mbs_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );//JVT-W051
//	//::memset( m_grid_slice_height_in_mbs_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//	::memset( m_grid_height_in_mbs_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );//JVT-W051
//	::memset( m_num_rois_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//	::memset( m_first_mb_in_roi, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt*) );
//	::memset( m_roi_width_in_mbs_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt*) );
//	::memset( m_roi_height_in_mbs_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt*) );
//	::memset( m_slice_id, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt*) );
//
//	::memset( m_num_directly_dependent_layers, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//	::memset( m_directly_dependent_layer_id_delta_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt*) ); //
//
//	::memset( m_layer_dependency_info_src_layer_id_delta, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) ); //
////JVT-S036 lsj end
//
//	::memset( m_num_init_seq_parameter_set_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//	::memset( m_init_seq_parameter_set_id_delta, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt*) );
//	::memset( m_num_init_pic_parameter_set_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
//	::memset( m_init_pic_parameter_set_id_delta, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt*) );
//
//	::memset( m_init_parameter_sets_info_src_layer_id_delta, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) ); //JVT-S036 lsj
//	//JVT-W051 {
//	::memset( m_bitstream_restriction_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool));
//	::memset( m_motion_vectors_over_pic_boundaries_flag, 0x01, MAX_SCALABLE_LAYERS*sizeof(Bool));
//	::memset( m_max_bytes_per_pic_denom, 0x02, MAX_SCALABLE_LAYERS*sizeof(UInt));
//	::memset( m_max_bits_per_mb_denom, 0x01, MAX_SCALABLE_LAYERS*sizeof(UInt));
//	::memset( m_log2_max_mv_length_horizontal, 0x10, MAX_SCALABLE_LAYERS*sizeof(UInt));
//	::memset( m_log2_max_mv_length_vertical, 0x10, MAX_SCALABLE_LAYERS*sizeof(UInt));
//	::memset( m_max_dec_frame_buffering, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt));
//	::memset( m_num_reorder_frames, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt));
//	::memset( m_ql_dependency_id, 0x00, MAX_LAYERS*sizeof(UInt));
//	::memset( m_ql_num_minus1, 0x00, MAX_LAYERS*sizeof(UInt));
//	::memset( m_ql_id, 0x00, MAX_LAYERS*MAX_QUALITY_LEVELS*sizeof(UInt));
//	::memset( m_ql_profile_level_idc, 0x00, MAX_LAYERS*MAX_QUALITY_LEVELS*sizeof(Int32));
//	::memset( m_ql_avg_bitrate, 0x00, MAX_LAYERS*MAX_QUALITY_LEVELS*sizeof(UInt));
//	::memset( m_ql_max_bitrate, 0x00, MAX_LAYERS*MAX_QUALITY_LEVELS*sizeof(UInt));
//	//JVT-W051 }
//
//}

SEI::ScalableSei::ScalableSei	() 
: SEIMessage									( SCALABLE_SEI )
// JVT-U085 LMI
, m_temporal_id_nesting_flag( false )
//JVT-W051 {
, m_priority_layer_info_present_flag( false )
, m_pr_num_dId_minus1( 0 )
//JVT-W051 }
, m_priority_id_setting_flag	 ( true )//JVT-W053
, m_num_layers_minus1					( 0	)
{	
	::memset( m_layer_id, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_priority_id, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
  ::memset( m_discardable_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
	::memset( m_temporal_level, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_dependency_id, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_quality_level, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_sub_pic_layer_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
	::memset( m_sub_region_layer_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
	::memset( m_iroi_division_info_present_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) ); //JVT-W051
	::memset( m_profile_level_info_present_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
	::memset( m_bitrate_info_present_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
	::memset( m_frm_rate_info_present_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
	::memset( m_frm_size_info_present_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
	::memset( m_layer_dependency_info_present_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
  ::memset( m_parameter_sets_info_present_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
	::memset( m_bitstream_restriction_info_present_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
	::memset( m_exact_interlayer_pred_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
	::memset( m_exact_sample_value_match_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );  //JVT-S036
  ::memset( m_layer_conversion_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
	::memset( m_layer_output_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
	::memset( m_layer_profile_level_idc, 0x00, MAX_SCALABLE_LAYERS*sizeof(Int32) );//JVT-W051
	::memset( m_avg_bitrate, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_max_bitrate_layer, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_max_bitrate_layer_representation, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );//JVT-W051
	::memset( m_max_bitrate_calc_window, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_constant_frm_rate_idc, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_avg_frm_rate, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_frm_width_in_mbs_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_frm_height_in_mbs_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_base_region_layer_id, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_dynamic_rect_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
	::memset( m_horizontal_offset, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_vertical_offset, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_region_width, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_region_height, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_roi_id, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_iroi_grid_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool) );
	::memset( m_grid_width_in_mbs_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );//JVT-W051
	::memset( m_grid_height_in_mbs_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );//JVT-W051
	::memset( m_num_rois_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_first_mb_in_roi, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt*) );
	::memset( m_roi_width_in_mbs_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt*) );
	::memset( m_roi_height_in_mbs_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt*) );
	::memset( m_num_directly_dependent_layers, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_directly_dependent_layer_id_delta_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt*) );
	::memset( m_layer_dependency_info_src_layer_id_delta, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_num_seq_parameter_set_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_seq_parameter_set_id_delta, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt*) );
	::memset( m_num_subset_seq_parameter_set_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
  ::memset( m_subset_seq_parameter_set_id_delta, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt*) );
	::memset( m_num_pic_parameter_set_minus1, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_pic_parameter_set_id_delta, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt*) );
	::memset( m_parameter_sets_info_src_layer_id_delta, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) ); //JVT-S036
	//JVT-W051 {	
	::memset( m_motion_vectors_over_pic_boundaries_flag, 0x01, MAX_SCALABLE_LAYERS*sizeof(Bool));
	::memset( m_max_bytes_per_pic_denom, 0x02, MAX_SCALABLE_LAYERS*sizeof(UInt));
	::memset( m_max_bits_per_mb_denom, 0x01, MAX_SCALABLE_LAYERS*sizeof(UInt));
	::memset( m_log2_max_mv_length_horizontal, 0x10, MAX_SCALABLE_LAYERS*sizeof(UInt));
	::memset( m_log2_max_mv_length_vertical, 0x10, MAX_SCALABLE_LAYERS*sizeof(UInt));
	::memset( m_num_reorder_frames, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt));
	::memset( m_max_dec_frame_buffering, 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt));	
	//JVT-W051 }
	//JVT-W046 {
  ::memset( m_conversion_type_idc  , 0x00, MAX_SCALABLE_LAYERS*sizeof(UInt) );
	::memset( m_rewriting_info_flag, 0x00, MAX_SCALABLE_LAYERS*sizeof(Bool*) );
	::memset( m_rewriting_profile_level_idc, 0x00, MAX_SCALABLE_LAYERS*sizeof(Int32*) );
	::memset( m_rewriting_avg_bitrate, 0x00, MAX_SCALABLE_LAYERS*sizeof(Double*) );
	::memset( m_rewriting_max_bitrate, 0x00, MAX_SCALABLE_LAYERS*sizeof(Double*) );
	//JVT-W046 }
	//JVT-W051 {
	::memset( m_pr_dependency_id, 0x00, MAX_LAYERS*sizeof(UInt));
	::memset( m_pr_num_minus1, 0x00, MAX_LAYERS*sizeof(UInt));
	::memset( m_pr_id, 0x00, MAX_LAYERS*MAX_QUALITY_LEVELS*sizeof(UInt));
	::memset( m_pr_profile_level_idc, 0x00, MAX_LAYERS*MAX_QUALITY_LEVELS*sizeof(Int32));
	::memset( m_pr_avg_bitrate, 0x00, MAX_LAYERS*MAX_QUALITY_LEVELS*sizeof(UInt));
	::memset( m_pr_max_bitrate, 0x00, MAX_LAYERS*MAX_QUALITY_LEVELS*sizeof(UInt));
	//JVT-W051 }
}

SEI::ScalableSei::~ScalableSei()
{
	// JVT-S054 (ADD) ->
	UInt i;
	for( i = 0; i < MAX_SCALABLE_LAYERS; i++ )
	{
		if ( m_first_mb_in_roi[i] != NULL )
		{
			free( m_first_mb_in_roi[i] );
			m_first_mb_in_roi[i] = NULL;
		}
		if ( m_roi_width_in_mbs_minus1[i] != NULL )
		{
			free( m_roi_width_in_mbs_minus1[i] );
			m_roi_width_in_mbs_minus1[i] = NULL;
		}
		if ( m_roi_height_in_mbs_minus1[i] != NULL )
		{
			free( m_roi_height_in_mbs_minus1[i] );
			m_roi_height_in_mbs_minus1[i] = NULL;
		}
    //SEI changes update
		//if ( m_slice_id[i] != NULL )
		//{
		//	free( m_slice_id[i] );
		//	m_slice_id[i] = NULL;
		//}
	}
	// JVT-S054 (ADD) <-
}

ErrVal
SEI::ScalableSei::create( ScalableSei*& rpcSeiMessage )
{
	rpcSeiMessage = new ScalableSei();
	ROT( NULL == rpcSeiMessage )
		return Err::m_nOK;
}

//TMM_FIX
ErrVal
SEI::ScalableSei::destroy() 
{
	delete this;
	return Err::m_nOK;
}
//TMM_FIX

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -