Sebastian Dröge
6a0965cb8a
tsdemux: Set number of channels to 2 for dual mono Opus
...
Instead of leaving it at 0, which will then cause caps creation to fail.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4445 >
2023-04-18 14:56:44 +03:00
Edward Hervey
38dd5deb66
tsdemux: Minor refactoring
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4336 >
2023-04-04 20:54:50 +00:00
Edward Hervey
8e51399334
mpegts: Fix include headers
...
<gst/mpegts/mpegts.h> is the unique header to use
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4336 >
2023-04-04 20:54:50 +00:00
Brad Hards
4087bb9a55
mpegts: remove stream-type from KLV meta
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4310 >
2023-03-31 07:03:54 +00:00
Brad Hards
6f2eb752c5
mpegts: add support for KLV metadata in PES packets
...
Co-authored-by: Andoni Morales Alastruey <ylatuya@gmail.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1312 >
2023-03-30 12:16:52 +00:00
Brad Hards
4e14bac1ff
mpegts: implement metadata in PES packets
...
Co-authored-by: Andoni Morales Alastruey <ylatuya@gmail.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1312 >
2023-03-30 12:16:52 +00:00
Sebastian Dröge
84e08a377b
mpegtsdemux: Fix handling of explicit Opus channel mapping
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4180 >
2023-03-23 08:46:50 +00:00
Sebastian Dröge
3851c2da12
tsdemux: Fix reading of extended Opus channel configuration
...
Argument evaluation order is implementation defined in C, and gcc is
evaluating right-to-left (works) while clang is evaluating left-to-right
(does not work).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4210 >
2023-03-18 10:01:25 +00:00
Tim-Philipp Müller
2b4b23d2a2
mpegtsdemux: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Vivia Nikolaidou
ccb0e6e435
tsdemux: Add pad-name to warning for continuity mismatch
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3141 >
2022-11-18 12:22:03 +00:00
Edward Hervey
3305d7ce8d
tsdemux: Push GST_EVENT_STREAM_COLLECTION
...
Demuxers that are not streams-aware will have that handled by parsebin. This
created a difference in results downstream between streams-aware and
non-streams-aware demuxers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784 >
2022-11-16 14:01:46 +00:00
Edward Hervey
d678d7136c
tsdemux: Fix AC-4 detection
...
This regression was introduced by
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1102
and has been present since 1.18
* Stream Type 0x06 is defined in the base mpeg-ts specification as Private PES
Packets. Determining the content should be solely based on descriptors found
within the PMT.
* This was abused in that commit by defining a "bluray-only" stream type for AC4
: `ST_BD_AUDIO_AC4`
* This should be entirely handled in the regular private pes handling further
down in the code
Fixes #1154
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2175 >
2022-04-14 08:33:34 +02:00
Vivia Nikolaidou
fabf948194
tsdemux: Don't check SCTE events for being too far from the PCR
...
Otherwise it happens that SCTE events can only be scheduled up to 15
seconds since the last seen PCR, which is a useless restriction.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2021 >
2022-03-24 18:59:37 +00:00
Edward Hervey
03b1790e0d
tsdemux: Handle PES headers bigger than a mpeg-ts packet
...
While the actual PES header parser could notify us that it needed more data, we
would never actually act on it.
This commit will accumulate incoming packets in such situation and re-attempt
the header parsing.
Fixes #1027
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1852 >
2022-03-04 15:14:31 +00:00
Stéphane Cerveau
a4b83810fe
tsdemux: unlock mutex on -1 start_offfset
...
Closing #1013
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1694 >
2022-02-14 12:58:33 +00:00
Vivia Nikolaidou
6bf36f6e0f
tsdemux: Change many GST_{DEBUG, LOG, etc} into _OBJECT
...
Log files with several demuxers running at once can otherwise get
confusing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1096 >
2021-10-18 18:34:04 +00:00
Vivia Nikolaidou
300e784a20
tsdemux: Issue GST_ELEMENT_WARNING for continuity errors
...
The application might want to make use of these.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1096 >
2021-10-18 18:34:04 +00:00
Edward Hervey
d9b1e1e99f
tsdemux: Improve gap detection
...
We should also take into account whether data is currently pending when checking
for gap on streams. It could very well be that some streams have very low
bitrate (and spread out) data. For those we don't want to push out a gap event.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1179 >
2021-10-18 11:23:25 +00:00
Edward Hervey
0ff569d408
tsdemux: Handle "negative" timestamps
...
This is only enabled in push time mode. Furthermore it's only enabled for now if
PCR is to be ignored.
The problem is dealing with streams where the initial PTS/DTS observation might
be greater than following ones (from other PID for example). Before this patch,
this would result in sending buffers without any timestamp which would cause a
wide variety of issues.
Instead, pad segment and buffer timestamps with an extra
value (packetizer->extra_shift, default to 2s), to ensure that we can get valid
timestamps on outgoing buffers (even if that means they are before the segment
start).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1179 >
2021-10-18 11:23:25 +00:00
Edward Hervey
74e9d44db3
tsdemux: Handle streams with bogus PTS vs DTS
...
PTS and DTS should be within a reasonable distance of each other.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1179 >
2021-10-18 11:23:25 +00:00
Vivia Nikolaidou
23bf9f75b6
tsdemux: Handle delayed seek events
...
Store the event in case it cannot be processed immediately and process
it after the first segment has been produced.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/980 >
2021-10-14 21:45:00 +00:00
Vivia Nikolaidou
5800ffea0f
tsdemux: Protect demux->segment_event with a mutex
...
Would otherwise cause weird issues when processing a delayed seek event
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/980 >
2021-10-14 21:45:00 +00:00
Mathieu Duponchelle
f0a158407c
mpegts: add missing Since comments after SCTE 35 work
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/913 >
2021-09-25 01:29:38 +00:00
Mathieu Duponchelle
4af003bc02
tsdemux: switch SCTE 35 sections handling to a passthrough model
...
Instead of modifying the splice times in the incoming sections
to running time and expecting eg mpegtsmux to convert those back
to its local PES time domain, which might be impossible when
those splice times are encrypted or the specification is extended,
transmit the needed information to the muxer as separate fields in
the event:
* A pts offset field can be used by the muxer in order to calculate
a final pts_adjustment
* A rtime_map can be used by the muxer to determine the correct
running times at which it should request keyframes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/913 >
2021-09-25 01:29:38 +00:00
Mathieu Duponchelle
1ca08bff57
tsdemux: Expose send-scte35-events property
...
When enabled, SCTE 35 sections (eg ad placement opportunities)
are forwarded as events donwstream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/913 >
2021-09-25 01:29:37 +00:00
Thibault Saunier
019971a3c7
Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir
2021-09-24 16:14:36 -03:00