mediabunny
Version:
Pure TypeScript media toolkit for reading, writing, and converting media files, directly in the browser.
79 lines • 2.86 kB
TypeScript
/*!
* 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 { MetadataTags } from './metadata.js';
import { FileSlice } from './reader.js';
import { Writer } from './writer.js';
export type Id3V2Header = {
majorVersion: number;
revision: number;
flags: number;
size: number;
};
export declare enum Id3V2HeaderFlags {
Unsynchronisation = 128,
ExtendedHeader = 64,
ExperimentalIndicator = 32,
Footer = 16
}
export declare enum Id3V2TextEncoding {
ISO_8859_1 = 0,
UTF_16_WITH_BOM = 1,
UTF_16_BE_NO_BOM = 2,
UTF_8 = 3
}
export declare const ID3_V1_TAG_SIZE = 128;
export declare const ID3_V2_HEADER_SIZE = 10;
export declare const ID3_V1_GENRES: string[];
export declare const parseId3V1Tag: (slice: FileSlice, tags: MetadataTags) => void;
export declare const readId3V1String: (slice: FileSlice, length: number) => string;
export declare const readId3V2Header: (slice: FileSlice) => Id3V2Header | null;
export declare const parseId3V2Tag: (slice: FileSlice, header: Id3V2Header, tags: MetadataTags) => void;
export declare class Id3V2Reader {
header: Id3V2Header;
bytes: Uint8Array;
pos: number;
view: DataView;
constructor(header: Id3V2Header, bytes: Uint8Array);
frameHeaderSize(): 6 | 10;
ununsynchronizeAll(): void;
ununsynchronizeRegion(start: number, end: number): void;
removeFooter(): void;
readBytes(length: number): Uint8Array<ArrayBufferLike>;
readU8(): number;
readU16(): number;
readU24(): number;
readU32(): number;
readAscii(length: number): string;
readId3V2Frame(): {
id: string;
size: number;
flags: number;
} | null;
readId3V2TextEncoding(): Id3V2TextEncoding;
readId3V2Text(encoding: Id3V2TextEncoding, until: number): string;
readId3V2EncodingAndText(until: number): string;
}
export declare class Id3V2Writer {
writer: Writer;
helper: Uint8Array<ArrayBuffer>;
helperView: DataView<ArrayBufferLike>;
constructor(writer: Writer);
writeId3V2Tag(metadata: MetadataTags): number;
writeU8(value: number): void;
writeU16(value: number): void;
writeU32(value: number): void;
writeAscii(text: string): void;
writeSynchsafeU32(value: number): void;
writeIsoString(text: string): void;
writeUtf8String(text: string): void;
writeId3V2TextFrame(frameId: string, text: string): void;
writeId3V2LyricsFrame(lyrics: string): void;
writeId3V2CommentFrame(comment: string): void;
writeId3V2ApicFrame(mimeType: string, pictureType: number, description: string, imageData: Uint8Array): void;
}
//# sourceMappingURL=id3.d.ts.map