Edward Hervey
db0633918a
mpegtsbase: Refactor scan loop
...
Avoids ending up leaking packets when we got one and res was different
from GST_FLOW_OK.
It also looks more comprehensible
2011-10-13 16:55:54 +02:00
Edward Hervey
e4b7967c9d
mpegtsbase: Don't leak upstream events
2011-10-13 16:55:40 +02:00
Edward Hervey
0c80f63c5b
mpegtsbase: Refactor code to cope with g_hash_table_foreach_remove()
2011-10-13 16:55:05 +02: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
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
Janne Grunau
74a8e966f5
mpegtsdemux: fix playback if PMT is seen before PAT
...
The stream for the PMT pid has to be cleared since the version checking
in the packetizer won't emit the same PMT again otherwise.
2011-03-21 19:24:08 +01:00
Janne Grunau
92d5ea2926
mpegtsdemux: use G_GUINT64_FORMAT as format specifier for guint64
...
fixes compilation on 32bit
2011-02-17 12:51:07 -08: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