Edward Hervey
4f55cc12ae
tsdemux: Calculate pcr/time/offset separately per program
...
Avoids quite a few issues with multi-program streams
2012-08-14 19:05:48 +02:00
Edward Hervey
e2576f0e86
mpegtsdemux: Also parse TOT (Time Offset Section)
...
It's the same as TDT, except with descriptors at the end
2012-06-05 10:54:27 +02:00
Edward Hervey
f0867c7247
mpegtspacketizer: Avoid alloc/free where possible
...
Helps for streams with a lot of sections, like EIT
2012-06-05 10:54:26 +02:00
Edward Hervey
63f8b970af
mpegtsbase/packetizer: Add CAT section handling
...
Allows reporting the global EMM
2012-06-05 10:54:25 +02:00
Edward Hervey
c6035d403c
mpegtspacketizer: Avoid usage of GstBuffer internally
...
The overhead of creating/using 188 byte GstBuffer from GstAdapter
is too expensive.
We now peek the next packet, and provide a data/size which is only
valid until the packetizerpacket is cleared.
In addition, cleanup all the internal code to deal with that new
behaviour and remove double-checks which are no longer needed.
The section_length is now the corrected section_length (i.e. with
the additional 3 bytes).
Avoid using gst_adapter_prev_timestamp and instead track
the timestamp ourself.
2012-05-22 17:43:38 +02:00
Edward Hervey
6d01f5f1b3
mpegtspacketizer: Detect PCR wraparound in skew code
...
If the received PCR is going backwards (by a safe margin), include
that wraparound for further calculation.
https://bugzilla.gnome.org/show_bug.cgi?id=674536
2012-05-22 16:51:25 +02:00
Gil Pedersen
fcd8155d87
mpegtsdemux: port to 0.11
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=674397
2012-04-20 11:25:31 +02:00
Sebastian Dröge
a1c291ebb6
mpegtsdemux: Revert to 0.10 state as this is unmergeable, also put it into the non-ported plugins again
2012-03-29 17:55:09 +02:00
Sebastian Dröge
860ccd414d
Merge remote-tracking branch 'origin/0.10'
...
Conflicts:
NEWS
RELEASE
common
configure.ac
docs/libs/gst-plugins-bad-libs-sections.txt
docs/plugins/gst-plugins-bad-plugins.args
docs/plugins/gst-plugins-bad-plugins.hierarchy
docs/plugins/gst-plugins-bad-plugins.interfaces
docs/plugins/inspect/plugin-adpcmdec.xml
docs/plugins/inspect/plugin-adpcmenc.xml
docs/plugins/inspect/plugin-assrender.xml
docs/plugins/inspect/plugin-audiovisualizers.xml
docs/plugins/inspect/plugin-autoconvert.xml
docs/plugins/inspect/plugin-bayer.xml
docs/plugins/inspect/plugin-bz2.xml
docs/plugins/inspect/plugin-camerabin2.xml
docs/plugins/inspect/plugin-celt.xml
docs/plugins/inspect/plugin-dataurisrc.xml
docs/plugins/inspect/plugin-debugutilsbad.xml
docs/plugins/inspect/plugin-dtmf.xml
docs/plugins/inspect/plugin-dtsdec.xml
docs/plugins/inspect/plugin-dvbsuboverlay.xml
docs/plugins/inspect/plugin-dvdspu.xml
docs/plugins/inspect/plugin-faac.xml
docs/plugins/inspect/plugin-faad.xml
docs/plugins/inspect/plugin-gsm.xml
docs/plugins/inspect/plugin-h264parse.xml
docs/plugins/inspect/plugin-mms.xml
docs/plugins/inspect/plugin-modplug.xml
docs/plugins/inspect/plugin-mpeg2enc.xml
docs/plugins/inspect/plugin-mpegdemux2.xml
docs/plugins/inspect/plugin-mpegtsdemux.xml
docs/plugins/inspect/plugin-mpegvideoparse.xml
docs/plugins/inspect/plugin-mplex.xml
docs/plugins/inspect/plugin-pcapparse.xml
docs/plugins/inspect/plugin-rawparse.xml
docs/plugins/inspect/plugin-rtpmux.xml
docs/plugins/inspect/plugin-rtpvp8.xml
docs/plugins/inspect/plugin-scaletempo.xml
docs/plugins/inspect/plugin-schro.xml
docs/plugins/inspect/plugin-sdp.xml
docs/plugins/inspect/plugin-segmentclip.xml
docs/plugins/inspect/plugin-shm.xml
docs/plugins/inspect/plugin-videomaxrate.xml
docs/plugins/inspect/plugin-videoparsersbad.xml
docs/plugins/inspect/plugin-vp8.xml
docs/plugins/inspect/plugin-y4mdec.xml
ext/celt/gstceltdec.c
ext/dts/gstdtsdec.c
ext/modplug/gstmodplug.cc
ext/opus/gstopusenc.c
gst-libs/gst/video/gstbasevideocodec.c
gst-libs/gst/video/gstbasevideocodec.h
gst-libs/gst/video/gstbasevideodecoder.c
gst-libs/gst/video/gstbasevideodecoder.h
gst-libs/gst/video/gstbasevideoencoder.c
gst-libs/gst/video/gstbasevideoencoder.h
gst/adpcmdec/Makefile.am
gst/audiovisualizers/gstbaseaudiovisualizer.c
gst/h264parse/gsth264parse.c
gst/mpegdemux/mpegtsparse.c
gst/mpegtsdemux/mpegtsbase.c
gst/mpegtsdemux/mpegtspacketizer.c
gst/mpegtsdemux/mpegtsparse.c
gst/mpegtsdemux/tsdemux.c
gst/mpegtsdemux/tsdemux.h
gst/mxf/mxfdemux.c
gst/rawparse/gstaudioparse.c
gst/videoparsers/gsth263parse.c
gst/videoparsers/gsth264parse.c
sys/d3dvideosink/d3dvideosink.c
sys/decklink/gstdecklinksink.cpp
sys/dvb/gstdvbsrc.c
sys/shm/gstshmsrc.c
sys/vdpau/h264/gstvdph264dec.c
sys/vdpau/mpeg/gstvdpmpegdec.c
tests/examples/opencv/gst_element_print_properties.c
win32/common/config.h
2012-03-29 17:41:53 +02:00
Edward Hervey
416b10b991
mpegtspacketizer: Handle rollover in offset calculations
2012-03-05 12:46:13 +01:00
Edward Hervey
a4899af8d6
mpegtspacketizer: Offset calculation
...
Allows PCR<=>PTS<=>offset estimation/calculation
Right now the calculation is very naive, but can be extended later on
without disrupting the code in tsdemux/mpegtsbase
2012-03-01 18:15:51 +01:00
Edward Hervey
39cc29a7d2
mpegtspacketizer: clock fix and minor addition
...
* Don't take into account packets that arrived at the same time as
previous ones for clock skew estimation
* Add convenience method for processing the next ts packet
2012-03-01 18:15:51 +01:00
Edward Hervey
4bc7cd04c1
mpegtspacketizer: Fix issues with skew code
...
* Always try to get a timestamp for the algorithm
* Remove dead variable
* Return proper default value
2012-02-24 17:47:38 +01:00
Thibault Saunier
6a8d2c45f6
mpegtspacketizer: Estimate clock skew and retimestamps buffers more precisly
...
Apply the EPTLA algotithm to estimate clock skew.
Reusing code from -good/gst/rtpmanager/rtpjitterbuffer.c
2012-02-24 10:57:09 +01:00
Wim Taymans
21073e98cf
port to new memory API
2012-01-25 14:51:25 +01:00
Edward Hervey
6abe2134bf
tsdemux/tsparse: Port to 0.11
...
This is a naive port that somewhat works but is inefficient.
I need to rethink how to make the best out of GstMemory/GstBuffer
2011-10-12 18:06:16 +02:00
Janne Grunau
15391b29e1
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
2011-06-07 20:50:34 +02:00
Janne Grunau
f89a0abca0
mpegtsdemux: create function for pcr parsing
2011-06-07 20:50:34 +02:00
Janne Grunau
22ecf13e42
mpegtsdemux: add MPEG TS demuxer rewrite from Edward Hervey
...
with contributions from Miquel Angel Farre Guiu and Zaheer Abbas Merali
2011-02-17 17:56:59 +01:00