UNPKG

mediabunny

Version:

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

97 lines 4.03 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 { MetadataTags, TrackDisposition } from '../metadata.js'; import { AsyncMutex } from '../misc.js'; import { EncodedPacket } from '../packet.js'; import { Reader } from '../reader.js'; import { OggCodecInfo } from './ogg-misc.js'; import { Page } from './ogg-reader.js'; type LogicalBitstream = { serialNumber: number; bosPage: Page; description: Uint8Array | null; numberOfChannels: number; sampleRate: number; codecInfo: OggCodecInfo; lastMetadataPacket: Packet | null; }; type Packet = { data: Uint8Array; endPage: Page; endSegmentIndex: number; }; export declare class OggDemuxer extends Demuxer { reader: Reader; metadataPromise: Promise<void> | null; bitstreams: LogicalBitstream[]; trackBackings: OggAudioTrackBacking[]; metadataTags: MetadataTags; constructor(input: Input); readMetadata(): Promise<void>; readVorbisMetadata(firstPacket: Packet, bitstream: LogicalBitstream): Promise<void>; readOpusMetadata(firstPacket: Packet, bitstream: LogicalBitstream): Promise<void>; readPacket(startPage: Page, startSegmentIndex: number): Promise<Packet | null>; findNextPacketStart(lastPacket: Packet): Promise<{ startPage: Page; startSegmentIndex: number; } | null>; getMimeType(): Promise<string>; getTrackBackings(): Promise<OggAudioTrackBacking[]>; getMetadataTags(): Promise<MetadataTags>; } type EncodedPacketMetadata = { packet: Packet; timestampInSamples: number; durationInSamples: number; vorbisLastBlockSize: number | null; vorbisBlockSize: number | null; }; declare class OggAudioTrackBacking implements InputAudioTrackBacking { bitstream: LogicalBitstream; demuxer: OggDemuxer; internalSampleRate: number; encodedPacketToMetadata: WeakMap<EncodedPacket, EncodedPacketMetadata>; sequentialScanCache: EncodedPacketMetadata[]; sequentialScanMutex: AsyncMutex; constructor(bitstream: LogicalBitstream, demuxer: OggDemuxer); getType(): "audio"; getId(): number; getNumber(): number; getNumberOfChannels(): number; getSampleRate(): number; getTimeResolution(): number; isRelativeToUnixEpoch(): boolean; getPairingMask(): bigint; getBitrate(): null; getAverageBitrate(): null; getDurationFromMetadata(): Promise<null>; getLiveRefreshInterval(): Promise<null>; getCodec(): "vorbis" | "opus" | null; getInternalCodecId(): null; getDecoderConfig(): Promise<AudioDecoderConfig | null>; getName(): null; getLanguageCode(): string; getDisposition(): TrackDisposition; granulePositionToTimestampInSamples(granulePosition: number): number; createEncodedPacketFromOggPacket(packet: Packet | null, additional: { timestampInSamples: number; vorbisLastBlocksize: number | null; }, options: PacketRetrievalOptions): EncodedPacket | null; getFirstPacket(options: PacketRetrievalOptions): Promise<EncodedPacket | null>; getNextPacket(prevPacket: EncodedPacket, options: PacketRetrievalOptions): Promise<EncodedPacket | null>; getPacket(timestamp: number, options: PacketRetrievalOptions): Promise<EncodedPacket | null>; getPacketSequential(timestamp: number, options: PacketRetrievalOptions): Promise<EncodedPacket | null>; getKeyPacket(timestamp: number, options: PacketRetrievalOptions): Promise<EncodedPacket | null>; getNextKeyPacket(packet: EncodedPacket, options: PacketRetrievalOptions): Promise<EncodedPacket | null>; } export {}; //# sourceMappingURL=ogg-demuxer.d.ts.map