82 lines
3.5 KiB
TypeScript
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[];
|