@svta/common-media-library
Version:
A common library for media playback in JavaScript
47 lines • 1.35 kB
JavaScript
/**
* Parse a SegmentIndexBox from an IsoView
*
* @param view - The IsoView to read data from
*
* @returns A parsed SegmentIndexBox
*
* @group ISOBMFF
*
* @beta
*/
export function sidx(view) {
const { readUint } = view;
const { version, flags } = view.readFullBox();
const v1 = version === 1;
const size = v1 ? 8 : 4;
const referenceId = readUint(4);
const timescale = readUint(4);
const earliestPresentationTime = readUint(size);
const firstOffset = readUint(size);
const reserved = readUint(2);
const referenceCount = readUint(2);
const references = view.readEntries(referenceCount, () => {
const entry = {};
entry.reference = readUint(4);
entry.subsegmentDuration = readUint(4);
entry.sap = readUint(4);
entry.referenceType = (entry.reference >> 31) & 0x00000001;
entry.referencedSize = entry.reference & 0x7FFFFFFF;
entry.startsWithSap = (entry.sap >> 31) & 0x00000001;
entry.sapType = (entry.sap >> 28) & 0x00000007;
entry.sapDeltaTime = (entry.sap & 0x0FFFFFFF);
return entry;
});
return {
version,
flags,
referenceId,
timescale,
earliestPresentationTime,
firstOffset,
reserved,
references,
};
}
;
//# sourceMappingURL=sidx.js.map