Skip to content

isomp4/mux: fixes for fragmented mp4 output

commit a4fe0af4

isomp4/mux: add a function for seeking to a specific output byte position

We do it enough times that this makes sense.  Also add a debug log line
for the seek position requested.

commit d1a54019

isomp4/mux: don't overwrite with a bigger moov when fragmenting

When outputting fragmented mp4, with a seekable downstream, we rewrite
the moov to maybe add a duration to the mvex.  If we start by not
writing the initial moov->mvex->mhed duration and then overwrite with a
moov containing mhed atom, the moov's will have different sizes and
could overwrite subsequent data and result in an unplayable file.

e.g. The initial moov would be of size 842 and the final moov would have
a size of 862.

Fix by always pushing out the mhed duration in the moov when
fragmenting.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/898

commit 422d2266

isomp4: actually make streamable fallback work

We weren't setting the fragment_mode field anymore now that the
implementation doesn't change based on the value of the streamable
property.  This lead to invalid files.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/362

commit 417ea504

isomp4: fix trun data offset handling

The trun offset was missing a calculation for one of the box type
headers.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/866

commit 2c928e5a

isomp4/mux: fixes for fragmented mp4 output

Various buffer offset calculations were not quite correct in all cases.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/866
Edited by Matthew Waters

Merge request reports