Files

82 lines
3.5 KiB
TypeScript

import type { MediaParserCodecData } from './codec-data';
import type { MediaParserMatrixCoefficients, MediaParserPrimaries, MediaParserTransferCharacteristics } from './containers/avc/color';
import type { MoovBox } from './containers/iso-base-media/moov/moov';
import type { TrakBox } from './containers/iso-base-media/trak/trak';
import type { M3uPlaylistContext } from './options';
import type { IsoBaseMediaState } from './state/iso-base-media/iso-state';
import type { ParserState } from './state/parser-state';
import type { StructureState } from './state/structure';
export type MediaParserSampleAspectRatio = {
numerator: number;
denominator: number;
};
export type MediaParserAdvancedColor = {
transfer: MediaParserTransferCharacteristics | null;
matrix: MediaParserMatrixCoefficients | null;
primaries: MediaParserPrimaries | null;
fullRange: boolean | null;
};
export type MediaParserVideoCodec = 'vp8' | 'vp9' | 'h264' | 'av1' | 'h265' | 'prores';
export type MediaParserAudioCodec = 'opus' | 'aac' | 'mp3' | 'ac3' | 'vorbis' | 'pcm-u8' | 'pcm-s16' | 'pcm-s24' | 'pcm-s32' | 'pcm-f32' | 'flac' | 'aiff';
export type MediaParserVideoTrack = {
codec: string;
description: Uint8Array | undefined;
colorSpace: VideoColorSpaceInit;
codedWidth: number;
codedHeight: number;
displayAspectWidth: number;
displayAspectHeight: number;
type: 'video';
trackId: number;
codecEnum: MediaParserVideoCodec;
codecData: MediaParserCodecData | null;
sampleAspectRatio: MediaParserSampleAspectRatio;
width: number;
height: number;
rotation: number;
fps: number | null;
timescale: 1000000;
originalTimescale: number;
advancedColor: MediaParserAdvancedColor;
m3uStreamFormat: 'ts' | 'mp4' | null;
startInSeconds: number;
trackMediaTimeOffsetInTrackTimescale: number;
};
export type MediaParserAudioTrack = {
codec: string;
sampleRate: number;
description: Uint8Array | undefined;
numberOfChannels: number;
type: 'audio';
trackId: number;
codecEnum: MediaParserAudioCodec;
timescale: 1000000;
originalTimescale: number;
codecData: MediaParserCodecData | null;
startInSeconds: number;
trackMediaTimeOffsetInTrackTimescale: number;
};
export type MediaParserOtherTrack = {
type: 'other';
trackId: number;
timescale: 1000000;
originalTimescale: number;
trakBox: TrakBox | null;
startInSeconds: number;
trackMediaTimeOffsetInTrackTimescale: number;
};
export type MediaParserTrack = MediaParserVideoTrack | MediaParserAudioTrack | MediaParserOtherTrack;
export declare const getNumberOfTracks: (moovBox: MoovBox) => number;
export declare const isoBaseMediaHasTracks: (state: ParserState, mayUsePrecomputed: boolean) => boolean;
export declare const getHasTracks: (state: ParserState, mayUsePrecomputed: boolean) => boolean;
export declare const getTracksFromMoovBox: (moovBox: MoovBox) => MediaParserTrack[];
export declare const getTracksFromIsoBaseMedia: ({ mayUsePrecomputed, structure, isoState, m3uPlaylistContext, }: {
structure: StructureState;
isoState: IsoBaseMediaState;
m3uPlaylistContext: M3uPlaylistContext | null;
mayUsePrecomputed: boolean;
}) => MediaParserTrack[];
export declare const defaultGetTracks: (parserState: ParserState) => MediaParserTrack[];
export declare const defaultHasallTracks: (parserState: ParserState) => boolean;
export declare const getTracks: (state: ParserState, mayUsePrecomputed: boolean) => MediaParserTrack[];