UNPKG

isobmff-inspector

Version:

Simple ISOBMFF parser, compatible with JavaScript and Node.JS

188 lines 6.56 kB
export type VisualSampleEntry = { /** * - 6 reserved bytes */ reserved: number[]; data_reference_index: number; pre_defined: number; reserved_1: number; pre_defined_1: [number, number, number]; width: number; height: number; /** * - 16.16 fixed point */ horizresolution: import("../types.js").ParsedFixedPointField; /** * - 16.16 fixed point */ vertresolution: import("../types.js").ParsedFixedPointField; reserved_2: number; frame_count: number; compressorname: string; depth: number; pre_defined_2: number; }; export type AudioSampleEntryVersion1Fields = { samples_per_packet: number; bytes_per_packet: number; bytes_per_frame: number; bytes_per_sample: number; }; export type AudioSampleEntryVersion2Fields = { struct_size: number; sample_rate: import("../types.js").ParsedFixedPointField; channel_count: number; reserved_1: number; bits_per_channel: number; format_specific_flags: number; bytes_per_audio_packet: number; LPCM_frames_per_audio_packet: number; }; export type AudioSampleEntryBase = { /** * - 6 reserved bytes */ reserved: number[]; data_reference_index: number; version: number; revision_level: number; vendor: number; channelcount: number; samplesize: number; compression_id: number; packet_size: number; samplerate: import("../types.js").ParsedFixedPointField; }; export type AudioSampleEntryV1 = AudioSampleEntryBase & { version: 1; } & AudioSampleEntryVersion1Fields; export type AudioSampleEntryV2 = AudioSampleEntryBase & { version: 2; } & AudioSampleEntryVersion2Fields; export type AudioSampleEntry = AudioSampleEntryBase | AudioSampleEntryV1 | AudioSampleEntryV2; /** * Internal field shape used by `BoxReader` while parsing audio sample entries. * * It intentionally accepts both version-specific field sets so the helper can * emit them conditionally while the public `AudioSampleEntry` typedef remains * strict. */ export type AudioSampleEntryParserShape = AudioSampleEntryBase & Partial<AudioSampleEntryVersion1Fields> & Partial<AudioSampleEntryVersion2Fields>; export type Descriptor = { tag: number; size: number; header_size: number; payload: any; }; /** * @param {string} name * @param {string} description * @returns {import("./types.js").BoxDefinition<{ * track_IDs: Array<number>, * trailing_bytes?: Uint8Array, * }>} */ export function createTrackReferenceTypeBox(name: string, description: string): import("./types.js").BoxDefinition<{ track_IDs: Array<number>; trailing_bytes?: Uint8Array; }>; import { decodeFixedPoint } from "../fields.js"; import { decodeSignedFixedPoint } from "../fields.js"; /** * @typedef {Object} AudioSampleEntryVersion1Fields * @property {number} samples_per_packet * @property {number} bytes_per_packet * @property {number} bytes_per_frame * @property {number} bytes_per_sample */ /** * @typedef {Object} AudioSampleEntryVersion2Fields * @property {number} struct_size * @property {import("../types.js").ParsedFixedPointField} sample_rate * @property {number} channel_count * @property {number} reserved_1 * @property {number} bits_per_channel * @property {number} format_specific_flags * @property {number} bytes_per_audio_packet * @property {number} LPCM_frames_per_audio_packet */ /** * @typedef {Object} AudioSampleEntryBase * @property {number[]} reserved - 6 reserved bytes * @property {number} data_reference_index * @property {number} version * @property {number} revision_level * @property {number} vendor * @property {number} channelcount * @property {number} samplesize * @property {number} compression_id * @property {number} packet_size * @property {import("../types.js").ParsedFixedPointField} samplerate */ /** * @typedef {AudioSampleEntryBase & { version: 1 } & AudioSampleEntryVersion1Fields} AudioSampleEntryV1 * @typedef {AudioSampleEntryBase & { version: 2 } & AudioSampleEntryVersion2Fields} AudioSampleEntryV2 * @typedef {AudioSampleEntryBase | AudioSampleEntryV1 | AudioSampleEntryV2} AudioSampleEntry */ /** * Internal field shape used by `BoxReader` while parsing audio sample entries. * * It intentionally accepts both version-specific field sets so the helper can * emit them conditionally while the public `AudioSampleEntry` typedef remains * strict. * * @typedef {AudioSampleEntryBase & Partial<AudioSampleEntryVersion1Fields> & Partial<AudioSampleEntryVersion2Fields>} AudioSampleEntryParserShape */ /** * @param {import("../BoxReader.js").BoxReader<AudioSampleEntryParserShape>} r * @returns {void} */ export function parseAudioSampleEntry(r: import("../BoxReader.js").BoxReader<AudioSampleEntryParserShape>): void; /** * @typedef {Object} Descriptor * @property {number} tag * @property {number} size * @property {number} header_size * @property {any} payload */ /** * @template {{ [k: string]: unknown }} T * @param {import("../BoxReader.js").BoxReader<T>} r * @returns {Descriptor} */ export function parseDescriptor<T extends { [k: string]: unknown; }>(r: import("../BoxReader.js").BoxReader<T>): Descriptor; /** * @template {{ [k: string]: unknown }} T * @param {import("../BoxReader.js").BoxReader<T>} r * @returns {import("../types.js").ParsedStructField} */ export function parseTransformationMatrix<T extends { [k: string]: unknown; }>(r: import("../BoxReader.js").BoxReader<T>): import("../types.js").ParsedStructField; /** * @typedef {Object} VisualSampleEntry * @property {number[]} reserved - 6 reserved bytes * @property {number} data_reference_index * @property {number} pre_defined * @property {number} reserved_1 * @property {[number, number, number]} pre_defined_1 * @property {number} width * @property {number} height * @property {import("../types.js").ParsedFixedPointField} horizresolution - 16.16 fixed point * @property {import("../types.js").ParsedFixedPointField} vertresolution - 16.16 fixed point * @property {number} reserved_2 * @property {number} frame_count * @property {string} compressorname * @property {number} depth * @property {number} pre_defined_2 */ /** * @param {import("../BoxReader.js").BoxReader<VisualSampleEntry>} reader */ export function readVisualSampleEntry(reader: import("../BoxReader.js").BoxReader<VisualSampleEntry>): void; import { toSignedInt } from "../fields.js"; export { decodeFixedPoint, decodeSignedFixedPoint, toSignedInt }; //# sourceMappingURL=helpers.d.ts.map