ISOMedia.Layout (ISOMedia v0.1.0)

Copy Markdown View Source

Computes absolute byte offsets for a box tree in its current arrangement, matching exactly how ISOMedia.Serializer lays bytes out. Used to find where boxes land after editing so chunk offsets can be recomputed.

Summary

Functions

Total serialized byte length of a box (header + uuid + payload/children).

Byte length of a box's header (size+type, +8 for largesize, +16 for uuid).

Byte length of one segment part: a binary, a FileSlice, or a nested segment list.

Total byte length of a (possibly nested) segment list's parts.

Absolute layout of the top-level boxes: a list of %{box: box, offset: abs_offset, payload_offset: abs_payload_offset} in order.

Functions

box_size(box)

Total serialized byte length of a box (header + uuid + payload/children).

header_size(box)

Byte length of a box's header (size+type, +8 for largesize, +16 for uuid).

segment_size(bin)

Byte length of one segment part: a binary, a FileSlice, or a nested segment list.

segments_size(parts)

Total byte length of a (possibly nested) segment list's parts.

top_level_layout(boxes)

Absolute layout of the top-level boxes: a list of %{box: box, offset: abs_offset, payload_offset: abs_payload_offset} in order.