@remotion/media-parser
Version:
A pure JavaScript library for parsing video files
51 lines (50 loc) • 1.91 kB
TypeScript
import type { AvcState } from '../../state/avc/avc-state';
import type { MediaParserAvcDeltaFrameInfo, MediaParserAvcKeyframeInfo } from '../../webcodec-sample-types';
type VuiParameters = {
sar_width: number | null;
sar_height: number | null;
overscan_appropriate_flag: number | null;
video_format: number | null;
video_full_range_flag: boolean | null;
colour_primaries: number | null;
transfer_characteristics: number | null;
matrix_coefficients: number | null;
chroma_sample_loc_type_top_field: number | null;
chroma_sample_loc_type_bottom_field: number | null;
};
export type SpsInfo = {
profile: number;
compatibility: number;
level: number;
seq_parameter_set_id: number;
separate_colour_plane_flag: number | null;
bit_depth_luma_minus8: number | null;
bit_depth_chroma_minus8: number | null;
qpprime_y_zero_transform_bypass_flag: number | null;
log2_max_frame_num_minus4: number;
log2_max_pic_order_cnt_lsb_minus4: number | null;
max_num_ref_frames: number | null;
gaps_in_frame_num_value_allowed_flag: number | null;
pic_width_in_mbs_minus1: number;
pic_height_in_map_units_minus1: number;
mb_adaptive_frame_field_flag: number | null;
direct_8x8_inference_flag: number | null;
frame_crop_left_offset: number | null;
frame_crop_right_offset: number | null;
frame_crop_top_offset: number | null;
frame_crop_bottom_offset: number | null;
vui_parameters: VuiParameters | null;
pic_order_cnt_type: number;
};
export type AvcProfileInfo = {
spsData: SpsInfo;
sps: Uint8Array;
type: 'avc-profile';
};
export type AvcPPs = {
type: 'avc-pps';
pps: Uint8Array;
};
export type AvcInfo = AvcProfileInfo | AvcPPs | MediaParserAvcKeyframeInfo | MediaParserAvcDeltaFrameInfo;
export declare const parseAvc: (buffer: Uint8Array, avcState: AvcState) => AvcInfo[];
export {};