UNPKG

@svta/common-media-library

Version:
33 lines 1.06 kB
import { createIsoView } from './createIsoView.js'; function filter(iterator, fn, recursive, result) { for (const box of iterator) { if (fn(box)) { result.push(box); } const { boxes } = box; if (recursive && Array.isArray(boxes)) { filter(boxes, fn, recursive, result); } } return result; } /** * Filters boxes based on the given filter function. * * @param raw - The raw boxes to filter. * @param config - The box parser configuration. * @param fn - The filter function. * @returns The filtered boxes. * * @group ISOBMFF * @beta */ export function filterBoxes(raw, fn, config) { var _a; if (raw instanceof DataView || raw instanceof Uint8Array || raw instanceof ArrayBuffer) { raw = createIsoView(raw, { ...config, recursive: false }); } const recursive = (_a = config === null || config === void 0 ? void 0 : config.recursive) !== null && _a !== void 0 ? _a : true; return filter(raw, fn, recursive, []); } //# sourceMappingURL=filterBoxes.js.map