UNPKG

asf-file-props

Version:

Extract basic metadata from ASF/WMA/WMV files

32 lines (27 loc) 1.06 kB
import { ASFFileProps } from "./ASFFileProps"; import { filePropsObjectGuid, getFields } from "./common.js"; export const getASFProps = async (file: File): Promise<ASFFileProps | null> => { const arrayBuffer: ArrayBuffer = await file.slice(0, 1024).arrayBuffer(); const buffer = new DataView(arrayBuffer); // Search for ASF file properties object GUID in first 1024 bytes let filePropsObjectPos = -1; for (let i = 0; i <= arrayBuffer.byteLength - filePropsObjectGuid.length; i++) { let found = true; for (let j = 0; j < filePropsObjectGuid.length; j++) { if (buffer.getUint8(i + j) !== filePropsObjectGuid[j]) { found = false; break; } } if (found) { filePropsObjectPos = i; break; } } if (filePropsObjectPos === -1) { console.error("ASF file header not found."); return null; } const result = getFields(buffer, filePropsObjectPos); return (result); };