isobmff-inspector
Version:
Simple ISOBMFF parser, compatible with JavaScript and Node.JS
188 lines • 6.56 kB
TypeScript
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