import IOggCodec from "./iOggCodec"; import XiphComment from "../../xiph/xiphComment"; import { ByteVector } from "../../byteVector"; import { IVideoCodec, MediaTypes } from "../../properties"; /** * Represents an Ogg Theora bitstream for use in an Ogg file. */ export default class Theora implements IOggCodec, IVideoCodec { private static readonly IDENTIFIER; private readonly _fpsDenominator; private readonly _fpsNumerator; private readonly _height; private readonly _keyframeGranuleShift; private readonly _majorVersion; private readonly _minorVersion; private readonly _reversionVersion; private readonly _width; private _commentData; private _durationMilliseconds; /** * Constructs and initializes a new instance using the provided header packet. * @param headerPacket Packet that contains the Theora header data */ constructor(headerPacket: ByteVector); /** @inheritDoc */ get commentData(): ByteVector; /** @inheritDoc */ get description(): string; /** @inheritDoc */ get durationMilliseconds(): number; /** @inheritDoc */ get mediaTypes(): MediaTypes; /** @inheritDoc */ get videoHeight(): number; /** @inheritDoc */ get videoWidth(): number; /** * Checks to see if packet is a Theora header packet. * @param packet Packet to check */ static isHeaderPacket(packet: ByteVector): boolean; /** @inheritDoc */ readPacket(packet: ByteVector): boolean; /** @inheritDoc */ setDuration(firstGranularPosition: ByteVector, lastGranularPosition: ByteVector): void; /** @inheritDoc */ writeCommentPacket(packets: ByteVector[], comment: XiphComment): void; private getGranuleTime; }