mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 16:50:47 +00:00
56ae254dd3
When dealing with random-access content (such as files), we initially search for the last PCR in order to figure out duration and to handle other position estimation such as those used in seeking. Previously, the code looking for that last PCR would search in the last 640kB of the file going forward, and stop at the first PCR encountered. The problem with that was two-fold: * It wouldn't really be the last PCR (it would be the first one within those last 640kB. In case of VBR files, this would put off duration and seek code slightly. * It would fail on files with bitrates higher than 52Mbit/s (not common) Instead this patch modifies that code by: * Scanning over the last 2048kB (allows to cope with streams up to 160Mbit/s) * Starts by the end of the file, going over chunks of 300 MPEG-TS packets * Doesn't stop at the first PCR detected in a chunk, but instead records all of them, and only stop searching if there was "at least" one PCR within that chunk This should improve duration reporting and seeking operations on VBR files https://bugzilla.gnome.org/show_bug.cgi?id=708532 |
||
---|---|---|
.. | ||
gstmpegdefs.h | ||
gstmpegdesc.h | ||
gsttsdemux.c | ||
Makefile.am | ||
mpegtsbase.c | ||
mpegtsbase.h | ||
mpegtspacketizer.c | ||
mpegtspacketizer.h | ||
mpegtsparse.c | ||
mpegtsparse.h | ||
pesparse.c | ||
pesparse.h | ||
TODO | ||
tsdemux.c | ||
tsdemux.h |