Edward Hervey
a633347ed1
mpegtsbase: Speed up _is_psi()
...
By making it inline and simplifying the bit macros
2012-05-23 09:37:49 +02:00
Edward Hervey
3c73d29162
mpegtsbase: Adapt to new packetizer behaviour
2012-05-22 17:43:38 +02:00
Wim Taymans
7394deef33
tsbase: unref bad packets too
...
Conflicts:
gst/mpegtsdemux/mpegtsbase.c
2012-05-01 11:50:39 +02:00
Wim Taymans
eaf4d97815
mpegtsbase: don't push events upstream in pull mode
...
In pull mode, don't push the seek event upstream.
2012-05-01 11:43:07 +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
Gil Pedersen
095a17ad03
mpegtsdemux: fix memory leaks
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=674393
2012-04-20 11:25:31 +02:00
Edward Hervey
cd728627af
mpegtsbase: Don't leak corrupt section packet buffer
2012-04-02 15:25:16 +02:00
Edward Hervey
881350f34c
tsdemux: Fix several leaks
...
* dont' leak buffers when a stream is in discont state
* don't leak buffers when a program is removed/deactivated
* remove all programs when disposing
2012-03-30 19:20:17 +02:00
Edward Hervey
d798cb7be3
tsdemux: printf fix
2012-03-05 11:27:51 +01:00
Tim-Philipp Müller
0bb5a01639
tsdemux: fix confusing variable name
2012-03-03 15:47:01 +00:00
Edward Hervey
a3ae51be29
mpegtsbase: Flush out the packetizer on flushing seeks
...
... else we end up with bogus data/offsets
2012-03-02 17:19:45 +01:00
Edward Hervey
671550714f
mpegtsbase: Check harder for program changes
...
And don't just rely on the section crc/version_number changing to
indicate that the program actually changed.
2012-03-02 10:54:48 +01:00
Edward Hervey
097f09b823
mpegtsbase/tsdemux: Refactor seek and segment handling
...
All calculations go through the mpegtspacketizer
Remove unused variables/code
2012-03-01 18:15:51 +01:00
Edward Hervey
77ece06a3f
mpegtsbase: Error out on EOS without any pad
...
Avoids ending up with hanging pipelines
2012-03-01 18:15:51 +01:00
Edward Hervey
c10fc17a1e
Revert "mpegtsdemux: Not apply various time the same PMT to a program when repetead"
...
This reverts commit 8cb0e87f56
.
mpegtspacketizer already checks if it's a new PMT or not
2012-03-01 18:15:51 +01:00
Edward Hervey
d920d9d64f
tsdemux: Remove all seeking code
...
It was more than bogus
2012-03-01 18:15:51 +01:00
Thibault Saunier
336710d355
tsbase: Fix parsing of PSI table IDs
...
(Ported from mpegtsdemux d8fd874f52
)
2012-02-24 19:08:40 -03: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
Edward Hervey
c492b00b69
mpegtsbase: Query whether upstream is live or not
2012-02-23 16:39:48 +01:00
Thibault Saunier
8cb0e87f56
mpegtsdemux: Not apply various time the same PMT to a program when repetead
...
Sometimes their are several times the same PMT applying to a same program in a stream,
tsdemux was totally baffled when this was happening, we now keep the one we
already applied so it works properly.
2012-02-17 12:19:20 -03:00
Thibault Saunier
6094ec27b1
tsdemux: Minor refactoring/code cleaning
...
... add some debugging symbols in the mean time.
2012-02-15 15:48:44 -03:00
Vincent Penquerc'h
8147669971
plenty: fixup glib deprecations
2012-01-27 15:47:07 +00:00
Mark Nauwelaerts
b00ed32c5a
mpegtsdemux: avoid NULL manipulation if invalid input
2012-01-23 14:22:18 +01:00
Vincent Penquerc'h
7521b597f4
various: fix pad template ref leaks
...
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:08:27 +00:00
Youness Alaoui
894ac8f493
hlsdemux/tsdemux: Add HP copyright on work done on HLS
2011-09-09 12:12:12 +02:00
Youness Alaoui
59c61209cf
tsdemux: Need to flush all streams when we receive a flush-start
2011-08-30 16:17:47 +02:00
Youness Alaoui
e380fbb019
tsdemux: In push mode, do not start pull loop if upstream seek fails
2011-08-26 09:51:46 +02:00
Youness Alaoui
cfd28a6f90
tsdemux: Forward seek/duration query/event to the sinkpad
2011-08-24 07:48:52 +02:00
Sebastian Dröge
6edff48378
mpegtsbase: First try if upstream handles seeking in TIME format before seeking in the demuxer
2011-08-23 09:52:20 +02:00
Youness Alaoui
4cc1dfb360
tsdemux: interpolate gap and fix timestamps depending on upstream segment
2011-08-22 15:55:47 +02:00
Youness Alaoui
02bc614163
tsbase: reinitiate segment at flush-stop event only
2011-08-18 14:54:22 +02:00
Edward Hervey
adfb090b59
mpegtsbase: Remove programs on EOS
...
Allows subclasses to properly flush out pending data.
2011-08-01 15:46:12 +02:00
Nicolas Dufresne
cbc0a2f056
mpegtsbase: Prevent stack gardening by using the right type
...
stream_type is stored as guint inside the GstStructure but was retreived
using valist with a pointer to guint16. This would cause stack gardening
when code is compiled without optimisation (e.g. in -O0 the compiler wont
pad the stack to optimise out required mask).
https://bugzilla.gnome.org/show_bug.cgi?id=655540
2011-08-01 09:33:25 +02:00
Edward Hervey
634d29cd88
mpegtsbase/tsdemux: Fix stream/pad activation order
...
We first activate new streams before shutting down old ones.
We emit no-more-pads after we add new streams and emit EOS before
removing old ones.
Also cleanup/refactor a bit more of the code accordingly
2011-07-25 18:56:49 +02:00
Edward Hervey
a960e72efa
mpegtsbase/tsdemux: Add more comments and removal unused variable
2011-07-19 09:49:40 +02:00
Edward Hervey
2b127601e9
mpegtsbase: Avoid double removal of streams
...
This can happen if the PCR pid is the same as a audio/video PID.
2011-07-19 09:49:40 +02:00
Edward Hervey
b170b2020c
mpegtsbase: Add a GList of streams to the program
...
Allows faster iteration of all program streams.
We still keep the Array to allow fast retrieval of stream by PID.
2011-07-19 09:49:40 +02:00
Edward Hervey
dc18e2b16d
mpegtsbase: Use a bit array instead of an array of gboolean
...
Makes know_psi and is_pes 32 times smaller
2011-07-19 09:49:39 +02:00
Edward Hervey
b73679e13d
mpegtsbase: Store incoming newsegments
2011-07-16 12:27:50 +02:00
Alessandro Decina
d439f2d38d
mpegtsbase: actually set seen_pat=TRUE when we see a PAT
2011-07-15 00:03:52 +02:00
Edward Hervey
a82483e367
mpegtsbase: Split up whether we saw a PAT and its offset
...
Fixes the issue with streams that don't set an offset on their buffers,
like those coming from hlsdemux.
Fixes #653481
2011-07-14 22:10:27 +02:00
Janne Grunau
ff15d6fa80
mpegtsdemux: implement key_unit seeking for MPEG2 video
2011-06-07 20:50:34 +02:00
Janne Grunau
3ce1ec7c9c
mpegtsdemux: accurate seeking
...
* pes header parsing for pts is ugly, refactor
* timestamps/newsegment after seeking is still off
2011-06-07 20:50:34 +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
Edward Hervey
e3839f0241
mpegtsbase: Don't call program_stopped with a NULL program
2011-05-31 12:58:11 +02:00
Edward Hervey
565f068049
mpegtsbase: Unref buffers we don't use.
...
Avoids a massive leak :)
https://bugzilla.gnome.org/show_bug.cgi?id=648929
2011-04-29 12:47:34 +02:00
Edward Hervey
c26ca36cf0
mpegtsbase: Don't forget to free the program streams array
...
https://bugzilla.gnome.org/show_bug.cgi?id=648929
2011-04-29 12:47:34 +02:00
Tim-Philipp Müller
5d6bdf6052
Fix some unused-but-set-variable warnings with gcc 4.6
2011-04-15 00:24:47 +01:00
Janne Grunau
bc91adcf55
mpegtsdemux: fix stream_info descriptor parsing
2011-03-24 15:18:34 +01:00
Janne Grunau
3ebc8a43e2
mpegtsdemux: do not try to parse packets containing section data as PES
2011-03-21 19:30:17 +01:00