Edward Hervey
8b80114101
mpegts: Use G_GNUC_INTERNAL
2012-08-14 19:07:24 +02:00
Edward Hervey
4d4d2f6eb0
mpegtspacketizer: Use gst_structure_*_take_value where applicable
...
Saves copying/freeing data
2012-08-14 19:06:16 +02:00
Edward Hervey
5de6fd1ff8
mpegtspacketizer: Cache the GIConv
...
Avoids having to constantly open/free them (which will end up being
very often with EIT/NIT).
2012-08-14 19:06:11 +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
b1295aef14
mpegtspacketizer: Use more Quarks
2012-08-14 19:05:58 +02:00
Edward Hervey
d54624aa49
tsdemux: Remove useless code
...
PCR/OPCR is meant to be handled by the packetizer
2012-08-14 19:05:52 +02:00
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
a8d1e88bda
tsparse: Push out buffer on main source pad
2012-08-14 19:05:44 +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
Sebastian Dröge
bdc46898de
gst: Add stream-id to stream-start events
2012-08-06 14:05:08 +02:00
Tim-Philipp Müller
489b102a43
gst_tag_list_free -> gst_tag_list_unref
2012-08-04 16:31:30 +01:00
Sebastian Dröge
afd50a79f4
tag: Update for taglist/tag event API changes
2012-07-28 00:32:58 +02:00
Mark Nauwelaerts
76aedf5641
tsdemux: more correctly determine expected PES packet payload size
...
... particularly considering that packet_length == 0 is possible.
2012-07-12 10:17:57 +02:00
Mark Nauwelaerts
006fe188e7
tsdemux: correctly determine expected PES packet payload size
...
Avoids consistently failing to detect that a packet is complete, which
would then only be pushed upon the start of a next packet, which leads
to quite a delay in case of a sparse (subtitle) stream.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=666674
2012-07-11 20:43:46 +02: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
b5967d2323
tsdemux: Fix AAC LATM caps
2012-06-29 09:23:32 +02:00
Tony Houghton
a996d2f01a
Correct satellite delivery descriptor parsing.
...
Original code to parse satellite delivery descriptors to generate
"satellite" structures appeared to be copy & pasted from cable's code
without amending for satellite.
Also added 8PSK to dvbsrc's enum for modulation.
https://bugzilla.gnome.org/show_bug.cgi?id=654485
Conflicts:
gst/mpegdemux/gstmpegdesc.h
gst/mpegdemux/mpegtspacketizer.c
2012-06-21 11:37:21 +01:00
Edward Hervey
b8f32811ca
tsparse: Rework handling and cleanups
...
tspad always has a static source pad which output everything received
(not functional yet).
Program pads are now request pads.
Remove all cruft that should have been removed from the switch over
to mpegtsbase.
Conflicts:
gst/mpegtsdemux/mpegtsparse.c
2012-06-21 11:34:28 +01: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
a931620208
mpegtspacketizer: Don't use GByteArray
...
Using a simple array comes to the same result for a fraction of the cost
2012-06-19 10:49:45 +01:00
Edward Hervey
8fd2d43d60
mpegtbase: Avoid copying GstStructure
2012-06-19 10:49:37 +01:00
Edward Hervey
94c68115ef
mpegdesc: Don't allocate/free GstMPEGDescriptor
...
Just use static variables
2012-06-19 10:49:26 +01:00
Wim Taymans
b98ec32380
update for tag event change
2012-06-06 13:02:40 +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
d9121c38ea
mpegtsdemux: FIXME/Comment about issues/errors
2012-06-05 10:54:26 +02:00
Edward Hervey
9e117b83fc
mpegtspacketizer: Fix leak
2012-06-05 10:54:26 +02:00
Edward Hervey
5f7ecaa0f1
mpegtspacketizer: Reduce usage of GstAdapter
...
Peek as much as possible in one go. Ideally we should remove usage of
adapter altogether, but for the time being it provides a big enough
speedup (around 2 times faster per packet processed).
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
0e86e68c6a
mpegtspacketizer: Clarify debug statements
...
Use hex values in more cases (since that's how PID/table_id/... are
represented in the various specs).
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
8b2f229553
mpegdesc: Add more comments/info
...
Namely where they belong to
2012-05-26 15:54:51 +02:00
Edward Hervey
8aa64c5d7d
tsdemux: Make sure we have a language code before using it
2012-05-26 15:54:48 +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
b6732a27d3
pesparse: Be a bit more permissive with PTS/DTS parsing
...
According to the specifications a PTS_DTS_flags value of 0x01 is forbidden.
... but there are some rare files out there that do that.
Instead of erroring out, let's warn, carry on parsing accordingly.
If the packet is really corrupted there are enough checks afterward to
detect that.
2012-05-26 15:54:41 +02:00
Edward Hervey
12f24874aa
mpegtsbase: Fix bit operation
...
"a % 8" corresponds to "a & 0x7" (and not 0xf).
spotted by Julian Scheel
2012-05-25 14:16:59 +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
Julian Scheel
a0a184931a
tsdemux: Add language code to taglist.
...
Read the language codes for tracks from the mpegts descriptors and add it into
the pads taglist.
https://bugzilla.gnome.org/show_bug.cgi?id=673896
2012-05-22 18:13:30 +02:00
Edward Hervey
6bf54ff850
tsdemux: Adapt to new packetizer API
...
We no longer use GstBufferList and instead copy the incoming data
into newly allocated memory.
This makes tsdemux behaviour 3 to 4 times faster.
2012-05-22 17:43:38 +02:00
Edward Hervey
7fdf1cb0c8
tsparse: Adapt to new packetizer API
2012-05-22 17:43:38 +02:00
Edward Hervey
3c73d29162
mpegtsbase: Adapt to new packetizer behaviour
2012-05-22 17:43:38 +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