mpegtsdemux: push based seeking based on PCR
authorJanne Grunau <janne.grunau@collabora.co.uk>
Tue, 22 Feb 2011 11:33:56 +0000 (12:33 +0100)
committerEdward Hervey <bilboed@bilboed.com>
Tue, 7 Jun 2011 18:50:34 +0000 (20:50 +0200)
commit15391b29e16ca971e94cc572fdd56275305cdaf2
tree09decd7ac8f50d29f6103d17098df98f922d8c9f
parentf89a0abca02a7a06d13718d674b835baafc8effe
mpegtsdemux: push based seeking based on PCR

buffer timestamps are converted to GstClockTime to cover pcr/pts wraps.
multiple pcr/pts wraps are handled with an index which ensures at most
a single pcr wraparound between two entries.
the last seen pcr is recorded to have a nearby index point for short seeks
resuming playback might be delayed if the postion is not a keyframe

TODO: replace manual packet scanning and parsing in the initial duration estimation
gst/mpegtsdemux/mpegtsbase.c
gst/mpegtsdemux/mpegtsbase.h
gst/mpegtsdemux/mpegtspacketizer.c
gst/mpegtsdemux/mpegtspacketizer.h
gst/mpegtsdemux/tsdemux.c
gst/mpegtsdemux/tsdemux.h