rawshift-video-isobmff rejects fragmented MP4 with a clear error when moov.mvex is present, rather than presenting a track with no samples:
fragmented MP4 (mvex present) is not supported yet
Fragmented files carry their sample tables in moof/traf boxes rather than in stbl, so the sample index built from stbl alone is empty.
Camera-origin files — rawshift's subject — are not fragmented, which is why this was scoped out. It matters for streaming-shaped input (DASH/CMAF) and for recordings from devices that write fMP4 for crash resilience.
mp4-atom already models Moof, Traf, Trun, Tfhd and Tfdt, so the work is extending SampleIndex to walk the fragment run tables and concatenate them onto the (possibly empty) stbl index, plus honouring trex defaults.
Follow-up to #39.
rawshift-video-isobmffrejects fragmented MP4 with a clear error whenmoov.mvexis present, rather than presenting a track with no samples:Fragmented files carry their sample tables in
moof/trafboxes rather than instbl, so the sample index built fromstblalone is empty.Camera-origin files — rawshift's subject — are not fragmented, which is why this was scoped out. It matters for streaming-shaped input (DASH/CMAF) and for recordings from devices that write fMP4 for crash resilience.
mp4-atomalready modelsMoof,Traf,Trun,TfhdandTfdt, so the work is extendingSampleIndexto walk the fragment run tables and concatenate them onto the (possibly empty)stblindex, plus honouringtrexdefaults.Follow-up to #39.