gstreamer/gst
Edward Hervey 56ae254dd3 mpegtbase: Improve last PCR detection
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
2014-12-01 15:04:25 +01:00
..
accurip gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
adpcmdec adpcmdec: Require caps to be set before any data processing 2013-12-05 12:05:21 +01:00
adpcmenc Fix up one-element lists in template caps 2014-09-10 17:24:39 +01:00
aiff gst: remove unnecessary GLIB_DISABLE_DEPRECATION_WARNINGS 2014-10-02 10:51:35 +03:00
asfmux asfmux: allocate byte readers on the stack 2014-09-10 19:19:32 +01:00
audiobuffer gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
audiofxbad audiofxbad: Change plugin name to audiofxbad from audiochannelmix 2013-09-19 20:17:01 +02:00
audiomixer audiomixer: Do not try to resize a buffer to a negative size on EOS 2014-11-27 19:10:58 +01:00
audiovisualizers audiovisualizer: post QoS messages when dropping frames due to QoS 2014-11-02 19:26:20 +00:00
autoconvert autoconvert: factories don't need the lock 2014-05-09 23:05:28 -04:00
bayer Release 1.3.2 2014-05-21 13:06:35 +02:00
camerabin2 Add some missing G_END_DECLS 2014-10-28 21:42:31 +00:00
cdxaparse gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
coloreffects gst: remove unnecessary GLIB_DISABLE_DEPRECATION_WARNINGS 2014-10-02 10:51:35 +03:00
compositor compositor: Failure to map a video frame is not just a warning 2014-11-28 10:23:55 +01:00
dataurisrc Revert "dataurisrc: Remove unnecessary else if condition" 2014-09-07 01:30:16 -03:00
dccp gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
debugutils watchdog: Handle FLUSHING seek events even in PAUSED state 2014-11-27 19:10:58 +01:00
dvbsuboverlay dvbsuboverlay: remove code that can't be reached 2014-08-29 19:24:52 +01:00
dvdspu gst: remove unnecessary GLIB_DISABLE_DEPRECATION_WARNINGS 2014-10-02 10:51:35 +03:00
faceoverlay gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
festival festival: fix fd leak 2014-04-08 12:20:40 +01:00
fieldanalysis Release 1.3.1 2014-05-03 19:57:57 +02:00
freeverb freeverb: Don't pass floats to abs() but instead cast them to ints first 2014-05-19 11:34:42 +02:00
frei0r frei0rfilter: fix memory corruption on sink caps changes. 2014-03-11 16:49:11 +01:00
games gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
gaudieffects gaudieffects: remove < 0 comparison on guint32 2014-10-30 17:06:01 +00:00
gdp gdppay: minor caps event payloading optimisation 2014-11-30 14:38:22 +00:00
geometrictransform all: Don't declare variables in 'for' loops 2014-06-24 14:51:32 +02:00
hdvparse gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
id3tag id3tag: Remove unused function to fix compiler warning 2014-02-27 21:41:53 +01:00
inter interaudiosink: Make sure to store at least period-time samples at once in the adapter 2014-11-12 18:10:45 +01:00
interlace interlace: fix caps refcounting 2014-08-10 12:04:38 +01:00
ivfparse ivfparse: detect and propagate resolution changes. 2014-04-18 18:31:15 +02:00
ivtc ivtc: Use input framerate when possible 2013-08-20 16:02:59 +02:00
jp2kdecimator style: remove unnecessary break statements 2014-09-25 16:41:15 +01:00
jpegformat style: remove unnecessary break statements 2014-09-25 16:41:15 +01:00
librfb rfbsrc: Clamp out of bounds resolutions to prevent segfaults 2014-08-28 09:53:17 +03:00
liveadder liveadder: handle gap buffer flag 2014-06-03 14:59:30 -04:00
midi midiparse: mention fluiddec instead of fluidsynth 2014-10-10 11:29:45 +01:00
mixmatrix gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
mpeg1sys gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
mpegdemux mpegdemux: start pushing data again when a pad gets linked later 2014-11-02 22:49:05 +00:00
mpegpsmux mpegpsmux: refactor duplicate else branches 2014-09-23 17:55:36 +01:00
mpegtsdemux mpegtbase: Improve last PCR detection 2014-12-01 15:04:25 +01:00
mpegtsmux gst: remove unnecessary GLIB_DISABLE_DEPRECATION_WARNINGS 2014-10-02 10:51:35 +03:00
mve gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
mxf gst: remove unnecessary GLIB_DISABLE_DEPRECATION_WARNINGS 2014-10-02 10:51:35 +03:00
nuvdemux style: remove unnecessary break statements 2014-09-25 16:41:15 +01:00
overlay gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
patchdetect gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
pcapparse pcapparse: Add support for LINKTYPE_RAW 2014-10-09 12:46:10 -04:00
pnm pnmenc: Port PNM Encoder to use GstVideoEncoder Class 2014-07-22 06:19:48 -03:00
rawparse rawparse: send SEEKING query upstream first 2014-11-22 17:51:01 +00:00
real gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
removesilence gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
rtjpeg gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
rtp rtpbad: Fix make dist by removing non-existing file from EXTRA_DIST 2014-10-19 13:44:38 +02:00
sdi gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
sdp gst: remove unnecessary GLIB_DISABLE_DEPRECATION_WARNINGS 2014-10-02 10:51:35 +03:00
segmentclip gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
siren siren: fix sample rate list 2014-10-30 15:21:15 +00:00
smooth gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
smoothwave smoothwave: remove element unported from 0.8 2011-11-23 08:42:01 +01:00
speed speed: Fix position query some more 2014-06-09 10:57:32 +02:00
stereo stereo: Port to GStreamer 1.0 API 2013-12-06 17:58:13 -05:00
subenc webvttenc: Separate cues with two line breaks instead of one. 2013-07-05 18:32:43 +01:00
tta gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
vbidec gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
videofilters videofilters: Add support for more YUV formats 2014-09-23 19:34:06 +03:00
videomeasure docs: remove outdated and pointless 'Last reviewed' lines from docs 2014-04-27 00:36:32 +01:00
videoparsers pngparse: optimise reading of png files 2014-11-09 21:02:15 +00:00
videosignal docs: remove outdated and pointless 'Last reviewed' lines from docs 2014-04-27 00:36:32 +01:00
vmnc vmncdec: modify wrong packetized mode logic 2014-09-16 11:24:53 +03:00
y4m y4mdec: check for VIDEO meta instead of CROP meta 2014-03-15 15:22:42 +01:00
yadif yadif: basetransform is creating pads for us already, don't do it twice 2014-06-29 22:19:07 +02:00
Makefile.am build: build plugins and examples in parallel where possible, if make -jN is used 2010-03-30 01:17:15 +01:00