/** * Opus documentation, https://opus-codec.org/docs/ * Ogg Encapsulation for the Opus Audio Codec, https://datatracker.ietf.org/doc/html/rfc7845.html * * Packet Organization: * * Page 0 Pages 1 ... n Pages (n+1) ... * +------------+ +---+ +---+ ... +---+ +-----------+ +---------+ +-- * | | | | | | | | | | | | | * |+----------+| |+-----------------+| |+-------------------+ +----- * |||ID Header|| || Comment Header || ||Audio Data Packet 1| | ... * |+----------+| |+-----------------+| |+-------------------+ +----- * | | | | | | | | | | | | | * +------------+ +---+ +---+ ... +---+ +-----------+ +---------+ +-- * ^ ^ ^ * | | | * | | Mandatory Page Break * | | * | ID header is contained on a single page * | * 'Beginning Of Stream' */ export class OPUS { static getFrameDuration(samples: any, timescale?: number): number; /** * Identification Header + Comment Header * @param {Uint8Array} data */ static parseHeaderPackets(data: Uint8Array): { outputGain: number; sampleRate: number; channelCount: number; config: Uint8Array; codec: string; originCodec: string; } | undefined; }