@remotion/media-parser
Version:
A pure JavaScript library for parsing video files
42 lines (41 loc) • 1.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseList = void 0;
const parseList = ({ state, }) => {
const { iterator } = state;
const ckSize = iterator.getUint32Le(); // chunkSize
const box = iterator.startBox(ckSize);
const startOffset = iterator.counter.getOffset();
const type = iterator.getByteString(4, false);
if (type !== 'INFO') {
throw new Error(`Only supporting LIST INFO, but got ${type}`);
}
const metadata = [];
const remainingBytes = () => ckSize - (iterator.counter.getOffset() - startOffset);
while (remainingBytes() > 0) {
// Padding
// https://discord.com/channels/809501355504959528/1308803317480292482/1343979547246333983
// Indie_Hacker_Podcast (2).wav
const byte = iterator.getUint8();
if (byte === 0) {
continue;
}
iterator.counter.decrement(1);
const key = iterator.getByteString(4, false);
const size = iterator.getUint32Le();
const value = iterator.getByteString(size, true);
metadata.push({
key,
trackId: null,
value,
});
}
const wavList = {
type: 'wav-list',
metadata,
};
state.structure.getWavStructure().boxes.push(wavList);
box.expectNoMoreBytes();
return Promise.resolve(null);
};
exports.parseList = parseList;