David Schleef
303a2eaec4
mpegtsdemux: check value before using as denominator
2013-04-15 17:05:30 -07:00
Sebastian Dröge
e51cd4fe2f
gst: Add better support for static plugins
2013-04-15 15:59:22 +02:00
Sebastian Dröge
2713fd1058
tsdemux: Check the continuity counter for non-section packets too
...
And if we detect a discontinuity there (like... when losing packets
or having MPEGTS over raw UDP with out-of-order packets) we just
drop the corresponding packet.
A future version could try to implement a re-ordering algorithm based
on that, similar to what rtpjitterbuffer does.
2013-04-11 13:11:44 +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
98265d0b28
tsdemux: Add support for TrueHD audio
2013-04-07 18:41:38 +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
Douglas Bagnall
0c9db072ce
tsdemux: remove unused current_program_number field
...
https://bugzilla.gnome.org/show_bug.cgi?id=690934
2013-03-24 20:58:28 +00:00
Sebastian Dröge
acacef9fbb
mpegtsdemux: Fix various compiler warnings
2013-03-03 12:30:32 +01:00
Josep Torra
7fafbe2e22
tsdemux: expose VC1 streams with missing descriptor.
...
Fixes playback of VC1 streams when the descriptor is missing.
2013-02-05 23:07:12 +01:00
David Schleef
a19c0b5697
tsdemux: Add descriptors for SMPTE 302m audio
2013-02-04 18:07:17 -08:00
Matthias Hardt
0e3fdb1e16
tsdemux: extract ISO 639 language codes for subtitles into taglists
...
https://bugzilla.gnome.org/show_bug.cgi?id=680200
2012-12-28 23:32:55 +00:00
Josep Torra
3d012665f0
tsdemux: forward upstream time segments after flushes
...
Also reset segment info and drop the segment event when demuxer is
flushed.
Restore demuxer segment with the info stored in base when demuxer is
going to push data again if needed.
Drop code to recover the segment info from base in the initial program
becauses it's superseded by the new code.
2012-11-14 22:51:35 +01:00
Josep Torra
0b3e0ed080
tsdemux: reset the stream some more in the flushes
...
Now that we handle flushing in the FLUSH_STOP event we need to make
the streams ready if they were flushing.
2012-11-12 22:57:19 +01:00
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