Files
suaveplan/packages/media/audio/audio-codecs/src/codecs/aac.ts
2026-05-27 23:47:53 +01:00

21 lines
643 B
TypeScript

import { createWasmCodec } from "./wasm-base.js";
function aacMagic(bytes: Uint8Array): boolean {
if (bytes.byteLength < 2) return false;
// ADTS sync word: 0xFFFx
return bytes[0] === 0xff && (bytes[1]! & 0xf0) === 0xf0;
}
/** Lazy AAC codec backed by `@audio/decode-aac`. Decode-only. */
export const AacCodec = createWasmCodec({
name: "aac",
extensions: ["aac", "m4a"],
mimeTypes: ["audio/aac", "audio/mp4"],
module: "@audio/decode-aac",
magic: aacMagic,
supportsEncode: false,
load: () =>
// @ts-expect-error optional dependency resolved at runtime
import("@audio/decode-aac"),
});