Josep Torra
150376efe4
mpegtspacketizer: flush observations too
...
Flush the previous observations when the packetizer is flushed.
Also don't leak them in the dispose.
2012-11-12 22:57:19 +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
996da425a9
Revert "tspacketizer: ensure that a null pointer isn't accessed"
...
This reverts commit 6efd611b8c
.
Also this extra check won't be needed if it's fixed the race by moving
flush actions to FLUSH_STOP.
2012-11-10 19:52:46 +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
Josep Torra
6efd611b8c
tspacketizer: ensure that a null pointer isn't accessed
...
Mitigates segfault due race condition in FLUSH_START handling and
mpegts_base_chain.
2012-11-09 22:17:11 +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 Pölsterl
43938bbf54
tsdemux: Fix name of CAT GstStructure
...
The structure previously was assigned the name "pat".
https://bugzilla.gnome.org/show_bug.cgi?id=686948
2012-10-29 13:16:46 +01:00
Tim-Philipp Müller
465374f3c8
tsdemux: fix program packet sequence counter parsing in PES header
2012-10-19 01:05:44 +01:00
Tim-Philipp Müller
10c881b107
tsdemux: fix some inconsequential PES header parsing issues
...
additional_copy_info: need to get rid of the highest
bit, not the lowest one
program_packet_sequence_counter: also need to get rid
of the highest bit instead of multiplying with a random
value
original_stuff_length: want to AND 0x3f to extract the
lowest 6 bits, not multiply by it.
None of these fields are actually used though, so these
should not have caused any issues.
2012-10-19 01:05:34 +01:00
Raimo Järvi
9640669689
tsdemux: Fix parsing P-STD_buffer in PES header
...
https://bugzilla.gnome.org/show_bug.cgi?id=686294
2012-10-19 00:29:40 +01:00
Andoni Morales Alastruey
f768dfd925
tsdemux: fix potential crash dereferencing NULL program pointer
...
https://bugzilla.gnome.org/show_bug.cgi?id=686358
2012-10-18 17:54:41 +01:00
Tim-Philipp Müller
32ba17cd0f
Use gst_element_class_set_static_metadata()
...
where possible. Avoids some string copies. Also re-indent
some stuff. Also some indent fixes here and there.
2012-10-17 17:46:34 +01: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
578861abea
replace gst_element_class_set_details_simple with gst_element_class_set_metadata
2012-09-14 17:27:49 +02:00
Mark Nauwelaerts
b807753453
ext, gst: only activate in pull mode if upstream is seekable
2012-09-11 17:47:33 +02:00
Tim-Philipp Müller
2483c82bd7
video/x-dvd-subpicture -> subpicture/x-dvd
2012-08-20 23:37:00 +01:00
Edward Hervey
105737db54
mpegtspacketizer: Fix flushing/sync handling
...
There was a stray adapter_flush() now that we used a temporary buffer
2012-08-14 19:07:58 +02:00
Edward Hervey
121aa3ad13
mpegtspacketizer: Better detect PCR resets
...
Assume that any differences in PCR greater than 15s means there is
a reset in the stream.
2012-08-14 19:07:51 +02:00
Edward Hervey
3153965658
mpegtspacketizer: Remove/demote some debugging
2012-08-14 19:07:39 +02:00
Edward Hervey
9abedc97ff
tsdemux: Always use current PTS/DTS
...
This avoids setting old PTS and/or DTS
2012-08-14 19:07:33 +02:00
Edward Hervey
e25c2e8e74
mpegtspacketizer: Remove unneeded memset(0)
2012-08-14 19:07:28 +02:00
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