import { ByteVector } from "../byteVector"; import { Tag, TagTypes } from "../tag"; /** * Represents a DivX tag that behaves similar to an ID3v1 tag. */ export default class DivxTag extends Tag { /** * FOURCC ID for a DivX tag chunk */ static readonly CHUNK_FOURCC = "IDVX"; /** * Identifier used to recognize DivX tags. */ static readonly FILE_IDENTIFIER: ByteVector; /** * Size of a DivX tag in bytes. */ static readonly SIZE = 128; private _artist; private _comment; private _extraData; private _genre; private _title; private _year; private constructor(); /** * Constructs and initializes a new instance by reading the raw tag data stored in a specified * {@link ByteVector} object. * @param data {@link ByteVector} that contains the raw tag data */ static fromData(data: ByteVector): DivxTag; /** * Constructs and initializes a new instance with no contents. */ static fromEmpty(): DivxTag; /** @inheritDoc */ get tagTypes(): TagTypes; /** @inheritDoc */ get sizeOnDisk(): number; /** @inheritDoc */ get title(): string; /** @inheritDoc */ set title(value: string); /** @inheritDoc */ get performers(): string[]; /** @inheritDoc */ set performers(value: string[]); /** @inheritDoc */ get comment(): string; /** @inheritDoc */ set comment(value: string); /** * @inheritDoc * @remarks * Genre is stored as a numeric genre. This is translated into the human-readable genre. */ get genres(): string[]; /** * @inheritDoc * @remarks * Genre is stored as a numeric genre, so only video genres are supported. Only one genre * can be stored. */ set genres(value: string[]); /** @inheritDoc */ get year(): number; /** @inheritDoc */ set year(value: number); /** @inheritDoc */ clear(): void; /** * Renders the current instance as a raw DivX tag. */ render(): ByteVector; }