Tim-Philipp Müller
e66f8cff26
rtp: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:06 +00:00
Olivier Crête
c593930055
rtopuspay: Use GstStaticCaps to cache parsed caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3674 >
2023-01-12 18:48:35 -05:00
Olivier Crête
46a6f72f03
rtopuspay: Ignore the stereo parameter in multiopus caps
...
Also add unit tests for the various variants
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3674 >
2023-01-12 18:48:35 -05:00
Olivier Crête
f1cf457811
rtpopuspay: Leave original caps as-is
...
This should make it work if someone specifies stereo with MULTIOPUS
somehow.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3674 >
2023-01-12 18:48:35 -05:00
Olivier Crête
c52c66b575
rtpopuspay: Return upstream channel filter based on OPUS vs MULTICAPS
...
Only allow 1 or 2 channels if the caps are OPUS, or 3+ if they are
MULTIOPUS.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3674 >
2023-01-12 18:48:35 -05:00
Olivier Crête
c51ae6112d
rtpopus: Put MULTIOPUS in all caps
...
The RTP payload encoding-name are always in caps in GStreamer.
In SDP, they are not case-sensitive, but since caps are, we need to pick
a caps, and we picked upper-case along time ago.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3674 >
2023-01-12 18:48:35 -05:00
Mathieu Duponchelle
fa71217502
rtpvp9depay: expose keyframe-related properties
...
This simply brings in the wait-for-keyframe and request-keyframe
properties from rtpvp8depay.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/909 >
2022-12-10 13:28:07 +00:00
Matthew Waters
093e9c8c9d
rtpulpfecdec: add property for passthrough
...
Support for enabling and disabling decoding of FEC data decoding on
packet loss events and unconditional seqnum rewriting of packets.
See
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/581
for background.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3212 >
2022-10-23 23:44:07 +00:00
Patricia Muscalu
3c9e4f4886
rtph265: keep delta unit flag
...
Without this patch all buffers that pass the payloader
are marked as non-delta-unit buffers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2969 >
2022-09-02 08:56:13 +00:00
Thibault Saunier
6a4425e46a
meson: Call pkgconfig.generate in the loop where we declare plugins dependencies
...
Removing some copy pasted code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970 >
2022-09-01 21:17:35 +00:00
Sebastian Dröge
cbc6761199
rtpvp8depay: If configured to wait for keyframes after packet loss, also do that if incomplete frames are detected
...
This can happen if the data inside the packets is incomplete without the
seqnums being discontinuous because of ULPFEC being used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2947 >
2022-08-31 08:58:03 +00:00
Sebastian Dröge
ed425e2785
rtpgstpay: Don't push packets before the first input buffer is received
...
It's not possible to create a valid RTP timestamp for them, which would
cause a potentially very big RTP timestamp discontinuity between those
first packets (created from initial events) and the packet based on the
first input buffer.
As a side-effect, also simplify the packet aggregation code a bit and
work with only a single level of buffer lists.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1157
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2250 >
2022-04-27 11:55:17 +00:00
Mathieu Duponchelle
3391a7d499
rtpredenc: quieten warning about ignoring header extensions
...
Turn it into a FIXME, and only log once
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2279 >
2022-04-23 01:04:54 +00:00
Tristan Matthews
86f0f8b67f
rtpopusdepay: assume 2 channels if sprop-stereo is missing
...
Fixes #1064
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2125 >
2022-04-08 13:11:25 +00:00
Sangchul Lee
67df5815a9
rtpvp8depay: Fix crash when making 'GstRTPPacketLost' custom event
...
This patch fixes a seg.fault in gst_structure_new() with warnings as below.
GLib-GObject-WARNING **:
../gobject/gtype.c:4330: type id '0' is invalid
GLib-GObject-WARNING **:
can't peek value table for type '<invalid>' which is not currently referenced
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1918 >
2022-03-10 19:37:49 +00:00
Sebastian Dröge
b0afaffc5d
rtp: In payloaders map the RTP marker flag to the corresponding buffer flag
...
This allows downstream of a payloader to know the RTP header's marker
flag without first having to map the buffer and parse the RTP header.
Especially inside RTP header extension implementations this can be
useful to decide which packet corresponds to e.g. the last packet of a
video frame.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1776 >
2022-02-28 10:13:11 +00:00
Sanchayan Maity
cc3419daf6
rtp: ldac: Set frame count information in payload
...
The RTP payload seems to be required as it carries the frame count
information. Also, gst_rtp_base_payload_allocate_output_buffer had
the second argument incorrect.
Strangely some devices like Shanling MP4 and Sony XM3 would still
work without this while some like the Sony XM4 do not.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1797 >
2022-02-26 21:09:57 +05:30
Matthew Waters
b0f72ed788
ulpfecenc: slightly safer dispose impl
...
Technically dispose can be called more than once (even if gstelement is
not actually set up to do that) so need to protect against that.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1761 >
2022-02-21 09:43:33 +00:00
Matthew Waters
629b427a13
ulpfecenc: fix unmatched free() call
...
One must always match a g_slice_new with a g_slice_free and a g_new with
a g_free. This was not the case for the internal ctx struct.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1761 >
2022-02-21 09:43:33 +00:00
Matthew Waters
acc9024039
rtpulpfecenc: add some debug logging
...
Like, what configuration we are using or whether a fec packet is
generated.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1761 >
2022-02-21 09:43:33 +00:00
Heinrich Kruger
6dd15acf2d
rtp-hdrext-colorspace: Fix color range encoding
...
The color space RTP header extension encodes color range as specified in
https://www.webmproject.org/docs/container/#Range . In other words:
0: Unspecified,
1: Broadcast Range,
2: Full range,
3: Defined by matrix coefficients and transfer characteristic.
This does not match the values of GstVideoColorRange, so it is not
correct to just write the colorimetry.range value to the header
extension.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1482 >
2021-12-30 16:31:33 +00:00
Jeongki Kim
04f6fbc237
rtpg726depay: fix endian conversion
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1469 >
2021-12-24 14:52:38 +09:00
Mathieu Duponchelle
d12d45db77
reddec: implement support for the BUNDLE case
...
When multiple streams are bundled together, there may be more
than one red payload type to handle.
In addition, as the red decoder works by filling in gaps in
the seqnums, there needs to be one rtp_history queue per sequence
domain.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1429 >
2021-12-14 17:34:53 +00:00
Mathieu Duponchelle
5dc280de9f
rtp/redenc|ulpfecenc: add support for TWCC
...
In redenc, when input buffers have a header for the TWCC extension,
we now add one to our wrapper buffers.
In ulpfecenc we add one in that case to our protection buffers.
This makes TWCC functional when UlpRed is used in webrtcbin.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1414 >
2021-12-14 03:26:56 +00:00
Thibault Saunier
49055f1cd5
rtph264pay: Handle 'profile' field
...
In order to allow "level-asymmetry-allowed" we now handle a new
"profile" field, which as the same semantics as the "profile" field in
H.264 stream so that we can force payloaded stream to have the right
format when using the `gst_sdp_media_get_caps_from_media` to set caps
filter after the payloader. This allows a simple negotiation in standard
RTP negotiation based on SDPs (like webrtc) for that particular case,
closely respecting the specs.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1410 >
2021-12-12 10:59:00 -03:00
Olivier Crête
c272d0bfcd
rtopuspay: Set marker bit inside RTP packet too
...
At the end of a talk spurt, not only set the marker flag on the
GstBuffer, but also set the bit inside the RTP header as recommended
by the RFC.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1124 >
2021-10-12 17:18:19 -04:00
Olivier Crête
ba328fb98d
rtphdrext: Set caps without attributes as the default
...
Most subclasses just use the simple function, so just let the base class
do it. It makes less code in subclasses.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/906 >
2021-09-28 20:04:55 +00:00
Olivier Crête
498740fe57
rtphdrext: Put simple caps generation as the base class default
...
Instead of having a helper function that gets called by almost every
subclass, just let the base class set the caps fields automatically.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/906 >
2021-09-28 20:04:55 +00:00
Thibault Saunier
5ff769d731
Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir
2021-09-24 16:13:50 -03:00