h264-sps-parser
Version:
Parse H.264 SPS NAL units
156 lines (155 loc) • 5.21 kB
TypeScript
import { HRDParams } from "./hrd";
import { SPSInfo, /*getFrameCropping,*/ FrameCropping } from './sps';
export { FrameCropping };
export declare type SPS_SVC_EXT = {
inter_layer_deblocking_filter_control_present_flag: 0 | 1;
extended_spatial_scalability_idc: number;
chroma_phase_x_flag: 0 | 1;
chroma_phase_y: number;
seq_ref_layer_chroma_phase_x_flag: 0 | 1;
seq_ref_layer_chroma_phase_y: number;
seq_scaled_ref_layer_left_offset: number;
seq_scaled_ref_layer_top_offset: number;
seq_scaled_ref_layer_right_offset: number;
seq_scaled_ref_layer_bottom_offset: number;
seq_tcoeff_level_prediction_flag: 0 | 1;
adaptive_tcoeff_level_prediction_flag: 0 | 1;
slice_header_restriction_flag: 0 | 1;
};
export declare type SVC_VUI = {
dependency_id: number;
quality_id: number;
temporal_id: number;
timing_info_present_flag: 0 | 1;
num_units_in_tick: number;
time_scale: number;
fixed_frame_rate_flag: 0 | 1;
nal_hrd_parameters_present_flag: 0 | 1;
nal_hrd_parameters: HRDParams;
vcl_hrd_parameters_present_flag: 0 | 1;
vcl_hrd_parameters: HRDParams;
low_delay_hrd_flag: 0 | 1;
pic_struct_present_flag: 0 | 1;
};
export declare type MVC_VUI = {
temporal_id: number;
view_id: number[];
timing_info_present_flag: 0 | 1;
num_units_in_tick: number;
time_scale: number;
fixed_frame_rate_flag: 0 | 1;
nal_hrd_parameters_present_flag: 0 | 1;
nal_hrd_parameters: HRDParams;
vcl_hrd_parameters_present_flag: 0 | 1;
vcl_hrd_parameters: HRDParams;
low_delay_hrd_flag: 0 | 1;
pic_struct_present_flag: 0 | 1;
};
export declare type MVCView = {
view_id: number;
anchor_ref_l0: number[];
anchor_ref_l1: number[];
non_anchor_ref_l0: number[];
non_anchor_ref_l1: number[];
};
export declare type MVCLevel = {
level_idc: number;
applicable_op_temporal_id: number[];
applicable_op_num_target_views: number[];
applicable_op_target_view_id: number[][];
applicable_op_num_views: number[];
};
export declare type MVC_EXT = {
views: MVCView[];
levels: MVCLevel[];
mfc_format_idc: number;
default_grid_position_flag: 0 | 1;
view0_grid_position_x: number;
view0_grid_position_y: number;
view1_grid_position_x: number;
view1_grid_position_y: number;
rpu_filter_enabled_flag: 0 | 1;
rpu_field_processing_flag: 0 | 1;
};
export declare type MVCD_VUI = {
temporal_id: number;
view_id: number[];
depth_flag: (0 | 1)[];
texture_flag: (0 | 1)[];
timing_info_present_flag: 0 | 1;
num_units_in_tick: number;
time_scale: number;
fixed_frame_rate_flag: 0 | 1;
nal_hrd_parameters_present_flag: 0 | 1;
nal_hrd_parameters: HRDParams;
vcl_hrd_parameters_present_flag: 0 | 1;
vcl_hrd_parameters: HRDParams;
low_delay_hrd_flag: 0 | 1;
pic_struct_present_flag: 0 | 1;
};
export declare type MVCDView = {
view_id: number;
depth_view_present_flag: 0 | 1;
texture_view_present_flag: 0 | 1;
anchor_ref_l0: number[];
anchor_ref_l1: number[];
non_anchor_ref_l0: number[];
non_anchor_ref_l1: number[];
};
export declare type MVCDLevel = {
level_idc: number;
applicable_op_temporal_id: number[];
applicable_op_target_view_id: number[][];
applicable_op_depth_flag: (0 | 1)[][];
applicable_op_texture_flag: (0 | 1)[][];
applicable_op_num_texture_views: number[];
applicable_op_num_depth_views: number[];
};
export declare type MVCD_EXT = {
num_views: number;
views: MVCDView[];
num_depth_views: number;
depth_view_id: number[];
levels: MVCDLevel[];
mvcd_vui_parameters_present_flag: 0 | 1;
mvcd_vui_parameters: MVCD_VUI[];
texture_vui_parameters_present_flag: 0 | 1;
texture_vui_parameters: MVC_VUI[];
};
export declare type ThreeDAVC = {
view_id_3dv: number[];
threedv_acquisition_idc: number;
depth_pic_width_in_mbs: number;
depth_pic_height_in_map_units: number;
depth_hor_mult: number;
depth_ver_mult: number;
depth_hor_rsh: number;
depth_ver_rsh: number;
depth_frame_cropping_flag: 0 | 1;
depth_frame_crop: FrameCropping;
grid_pos_num_view: number;
grid_pos_view_id: number[];
grid_pos_x: number[];
grid_pos_y: number[];
slice_header_prediction_flag: 0 | 1;
seq_view_synthesis_flag: 0 | 1;
alc_sps_enable_flag: 0 | 1;
enable_rle_skip_flag: 0 | 1;
anchor_ref_l0: number[][];
anchor_ref_l1: number[][];
non_anchor_ref_l0: number[][];
non_anchor_ref_l1: number[][];
};
export declare type SSPSInfo = {
nalu_type: 15;
sps_data: SPSInfo;
svc_vui_parameters_present_flag: 0 | 1;
mvc_vui_parameters_present_flag: 0 | 1;
seq_parameter_set_svc_ext: SPS_SVC_EXT;
svc_vui_parameters_ext: SVC_VUI[];
seq_parameter_set_mvc_ext: MVC_EXT;
mvc_vui_parameters_ext: MVC_VUI[];
seq_parameter_set_mvcd_ext: MVCD_EXT;
seq_parameter_set_3davc_ext: ThreeDAVC;
};
export declare function parseSSPS(nalu: Uint8Array): SSPSInfo;