Edward Hervey
1f2bb15618
mpegtsdemux: GstMpegTS => GstMpegTs
2013-07-03 14:00:58 +02:00
Edward Hervey
92edd82c86
mpegtsdemux: Switch to MPEG-TS SI library
...
* Only mpeg-ts section packetization remains.
* Improve code to detect duplicated sections as early as possible
* Add FIXME for various issues that need fixing (but are not regressions)
https://bugzilla.gnome.org/show_bug.cgi?id=702724
2013-07-03 09:17:25 +02:00
Edward Hervey
26689fc437
mpegtsbase: Only warn for added streams when needed
...
We use add_stream(stream_type:-1) to ensure a programs' PCR Stream is
also taken into account. For most programs this will re-use an
existing ES stream.
So only warn that we are re-adding a stream if it was already present
AND it is not to ensure the PCR stream is taken into account.
2013-06-24 08:24:58 +02:00
Edward Hervey
40bcf48b0c
mpegtbase: simplify code
...
We don't need generic methods for push/flush since we know all the
subclass that we control
2013-06-19 12:29:47 +02:00
Edward Hervey
e66d543f00
tsparse: Ensure initial events are sent in the right order
...
First send stream-start, then caps, then segment.
The segment we push is from upstream in push-mode. If we work in pull-mode
then we initialize the base segment to BYTES.
https://bugzilla.gnome.org/show_bug.cgi?id=702422
2013-06-19 07:40:28 +02:00
Josep Torra
28a2902a7b
tsdemux: fixes seeking in pull mode
...
Preserve the current segment and observations in pull mode seeks with
flushing.
https://bugzilla.gnome.org/show_bug.cgi?id=698050
2013-06-12 08:01:06 +02:00
Michael Rubinstein
e6c8224609
mpegtsdemux: Free memory behind GString if we don't use it
...
https://bugzilla.gnome.org/show_bug.cgi?id=700903
2013-05-25 15:49:21 +02:00
Edward Hervey
ce441cbff7
mpegtsbase: Post an error message when EOS'ing without source pads
...
This ensures we don't "hang" when files can't be decoded, or contain
no valid streams.
2013-05-23 14:59:34 +02:00
Sebastian Dröge
4ca886c53b
mpegtsbase: Call ::program_stopped after removing all streams
...
Subclasses want to access the program while removing the streams
and will currently crash because of dereferencing NULL in some cases.
2013-04-10 16:19:00 +02:00
Edward Hervey
ca3146a2cd
tsparse: Ensure segment events are forwarded
...
We skip them for tsdemux though (recreated later)
Fixes #690949
2013-03-30 13:54:37 +01:00
Sebastian Dröge
acacef9fbb
mpegtsdemux: Fix various compiler warnings
2013-03-03 12:30:32 +01:00
Josep Torra
1fc5fffe08
mpegtsbase: fix double unref of seek event
2012-11-12 22:57:19 +01:00
Josep Torra
cc40d49bed
mpegtsbase: flush in FLUSH_STOP to avoid race conditions
...
Ensure the chain is not running before reset the state to avoid race
conditions and random corruptions downstream.
Also fixes segfaults in the packetizer due wrong available values that
causes gst_adapter_map to return a NULL pointer.
2012-11-12 22:57:19 +01:00
Josep Torra
80dd130fb0
Revert "tsbase: add a guard with an atomic boolean when flushing"
...
This reverts commit e14e310f71
.
Would be better move the packetizer flushing to FLUSH_STOP and avoid
the race that way. Without introducing a memory barrier that could
have impact in the performance.
2012-11-10 19:46:40 +01:00
Josep Torra
e14e310f71
tsbase: add a guard with an atomic boolean when flushing
2012-11-10 00:08:35 +01:00
Edward Hervey
651203de07
mpegts: Only use timestamp-based PCR/PTS estimation when needed
...
When dealing with non-time based push-mode streams, we need to revert
to using the offset-based PCR/PTS estimation logic of packetizer.
This solves uses cases such as:
pushfile:// ! tsdemux
src ! queue ! tsdemux
https://bugzilla.gnome.org/show_bug.cgi?id=687178
2012-11-09 12:15:24 +01:00
Tim-Philipp Müller
9e1b75fda3
Fix FSF address
...
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:09:59 +00:00
Sebastian Dröge
e5eceaaa73
mpegtsdemux: First push EOS, then destroy all programs
...
And also properly remove the program from the subclass
2012-10-12 15:38:44 +02:00
Mark Nauwelaerts
b807753453
ext, gst: only activate in pull mode if upstream is seekable
2012-09-11 17:47:33 +02:00
Edward Hervey
e3c0bbe5f6
mpegtbase: reset element in READY=>PAUSED
...
Ensures all subclass reset vmethods are called
2012-08-14 19:06:04 +02:00
Edward Hervey
558beab1b4
mpegtbase: vmethod to notify when we're done processing input
...
This can be used to notify subclasses no more data is expected this
round.
tsparse will use it to push whole buffers (without copy) on the main
source pad.
It could also be used later to decide whether to push pending data
in order to reduce latency.
2012-08-14 19:05:37 +02:00
Tim-Philipp Müller
489b102a43
gst_tag_list_free -> gst_tag_list_unref
2012-08-04 16:31:30 +01:00
Edward Hervey
d3271381ee
mpegtsbase: Move known PSI PIDs to where they belong
...
This avoids tsdemux parsing data is doesn't really care about
Conflicts:
gst/mpegtsdemux/mpegtsparse.c
2012-06-29 10:02:30 +02:00
Edward Hervey
ada9990092
mpegtbase: Add more known default SI PIDs
2012-06-29 09:59:13 +02:00
Edward Hervey
a8dd05742a
mpegtbase: Always send EOS
...
subclass will take care of handling it more if needed
2012-06-21 11:25:17 +01:00
Wim Taymans
dbed726057
update for task api change
2012-06-20 10:40:42 +02:00
Edward Hervey
8fd2d43d60
mpegtbase: Avoid copying GstStructure
2012-06-19 10:49:37 +01: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
d9121c38ea
mpegtsdemux: FIXME/Comment about issues/errors
2012-06-05 10:54:26 +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
aab8c46f10
mpegtbase: Add more sections that don't have a CRC
2012-06-05 10:54:26 +02:00
Edward Hervey
25f6c78d79
mpegdefs: Add list of known table_id
...
Along with the specifications from which they come. Avoids having
to search for which spec a table_id belongs to
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
dfe6863387
mpegtbase: Add more debug in PSI handling
...
Allows us to identify which SI we don't handle
2012-06-05 10:47:49 +02:00
Edward Hervey
d47d1713d9
mpegtbase: Add more default known PSI table_id
2012-06-05 10:47:49 +02:00
Edward Hervey
9924c178c8
mpegtbase: Refactor PSI detection
2012-06-05 10:47:49 +02:00
Edward Hervey
9f7e70f754
mpegtbase: ECM/CA sections don't have a CRC
...
So don't check for it :)
Also add a bit more info in the warning message to speed up detecting
whether it's a false-positive or not.
2012-06-01 16:42:41 +02:00
Edward Hervey
7784c0d350
mpegtsbase: Check before getting descriptors from structure
...
Avoids spurious warnings. Not having those descriptors is nothing
fatal, so check their presence before trying to get them.
2012-05-26 15:54:44 +02:00
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