UNPKG

mediabunny

Version:

Pure TypeScript media toolkit for reading, writing, and converting media files, directly in the browser.

106 lines 3.79 kB
/*! * Copyright (c) 2026-present, Vanilagy and contributors * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ import { Demuxer } from '../demuxer.js'; import { Input } from '../input.js'; import { InputAudioTrackBacking } from '../input-track.js'; import { PacketRetrievalOptions } from '../media-sink.js'; import { AsyncMutex } from '../misc.js'; import { EncodedPacket } from '../packet.js'; import { FileSlice, Reader } from '../reader.js'; import { MetadataTags } from '../metadata.js'; type FlacAudioInfo = { numberOfChannels: number; sampleRate: number; totalSamples: number; minimumBlockSize: number; maximumBlockSize: number; minimumFrameSize: number; maximumFrameSize: number; description: Uint8Array; }; type Sample = { blockOffset: number; blockSize: number; byteOffset: number; byteSize: number; }; type NextFlacFrameResult = { num: number; blockSize: number; sampleRate: number; size: number; isLastFrame: boolean; }; export declare class FlacDemuxer extends Demuxer { reader: Reader; loadedSamples: Sample[]; metadataPromise: Promise<void> | null; trackBacking: FlacAudioTrackBacking | null; metadataTags: MetadataTags; audioInfo: FlacAudioInfo | null; lastLoadedPos: number | null; blockingBit: number | null; readingMutex: AsyncMutex; lastSampleLoaded: boolean; constructor(input: Input); getMetadataTags(): Promise<MetadataTags>; getTrackBackings(): Promise<FlacAudioTrackBacking[]>; getMimeType(): Promise<string>; readMetadata(): Promise<void>; readNextFlacFrame({ startPos, isFirstPacket, }: { startPos: number; isFirstPacket: boolean; }): Promise<NextFlacFrameResult | null>; readFlacFrameHeader({ slice, isFirstPacket, }: { slice: FileSlice; isFirstPacket: boolean; }): { num: number; blockSize: number; sampleRate: number; } | null; advanceReader(): Promise<void>; } declare class FlacAudioTrackBacking implements InputAudioTrackBacking { demuxer: FlacDemuxer; constructor(demuxer: FlacDemuxer); getType(): "audio"; getId(): number; getNumber(): number; getCodec(): "flac"; getInternalCodecId(): string | number | Uint8Array | null; getNumberOfChannels(): number; getSampleRate(): number; getName(): string | null; getLanguageCode(): string; getTimeResolution(): number; isRelativeToUnixEpoch(): boolean; getPairingMask(): bigint; getBitrate(): null; getAverageBitrate(): null; getDurationFromMetadata(): Promise<number | null>; getLiveRefreshInterval(): Promise<null>; getDisposition(): { default: boolean; primary: boolean; forced: boolean; original: boolean; commentary: boolean; hearingImpaired: boolean; visuallyImpaired: boolean; }; getDecoderConfig(): Promise<AudioDecoderConfig | null>; getPacket(timestamp: number, options: PacketRetrievalOptions): Promise<EncodedPacket | null>; getNextPacket(packet: EncodedPacket, options: PacketRetrievalOptions): Promise<EncodedPacket | null>; getKeyPacket(timestamp: number, options: PacketRetrievalOptions): Promise<EncodedPacket | null>; getNextKeyPacket(packet: EncodedPacket, options: PacketRetrievalOptions): Promise<EncodedPacket | null>; getPacketAtIndex(sampleIndex: number, options: PacketRetrievalOptions): Promise<EncodedPacket | null>; getFirstPacket(options: PacketRetrievalOptions): Promise<EncodedPacket | null>; } export {}; //# sourceMappingURL=flac-demuxer.d.ts.map