21 lines
643 B
TypeScript
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"),
|
|
});
|