mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-20 21:16:24 +00:00
In push mode, when qtdemux can't use a seek to skip the mdat buffer it has to buffer it for later use. The issue is that after parsing the next moov/moof, there might be some trailing bytes from the next atom in the file. This data was being discarded along with the already parsed moov/moof and playback would fail to continue after the contents of this moov/moof are played. This is particularly bad on fragmented files that have the mdat before the corresponding moof. So you'd get: mdat|moof|mdat|moof ... When a moof was received, it usually came with some extra bytes that would belong to the next mdat (because upstream doesn't care about atoms alignment). So those bytes were being discarded and playback would fail. This patch makes qtdemux store those extra bytes to reuse them later after the mdat is emptied. https://bugzilla.gnome.org/show_bug.cgi?id=710623 |
||
---|---|---|
.. | ||
atoms.c | ||
atoms.h | ||
atomsrecovery.c | ||
atomsrecovery.h | ||
descriptors.c | ||
descriptors.h | ||
fourcc.h | ||
ftypcc.h | ||
gstqtmoovrecover.c | ||
gstqtmoovrecover.h | ||
gstqtmux-doc.c | ||
gstqtmux-doc.h | ||
gstqtmux.c | ||
gstqtmux.h | ||
gstqtmuxmap.c | ||
gstqtmuxmap.h | ||
gstrtpxqtdepay.c | ||
gstrtpxqtdepay.h | ||
isomp4-plugin.c | ||
LEGAL | ||
Makefile.am | ||
properties.c | ||
properties.h | ||
qtatomparser.h | ||
qtdemux.c | ||
qtdemux.h | ||
qtdemux.vcproj | ||
qtdemux_dump.c | ||
qtdemux_dump.h | ||
qtdemux_fourcc.h | ||
qtdemux_lang.c | ||
qtdemux_lang.h | ||
qtdemux_types.c | ||
qtdemux_types.h | ||
qtpalette.h |