Commit graph

14 commits

Author SHA1 Message Date
Sebastian Dröge
eb641af450 rtp: Fix constant for maximum two-byte RTP header extension length
The value is stored as an 8 bit integer, with 0 meaning that there is
not data for this extension. That means that the maximum length is 255
bytes and not 256 bytes.

On the other hand, the one-byte RTP header extensions are storing the
length as a 4 bit integer with an offset of 1 (i.e. 0 means 1 byte
extension length), so here 16 is the correct maximum length.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6180>
2024-02-23 02:18:28 +00:00
Sebastian Dröge
08d4527d22 rtpbasepayload: Use gst_value_array_append_and_take_value() as a micro optimization
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6163>
2024-02-21 12:17:24 +00:00
Sebastian Dröge
ea261a58e0 rtpbasepayload: Also notify "extensions" property when changing list during negotiation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6163>
2024-02-21 12:17:24 +00:00
Maksym Khomenko
20f48f0fd0 rtpbasepayload: add extensions property
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5694>
2023-11-28 15:05:24 +00:00
Maksym Khomenko
4eff26ee1c rtpbasepayload: fix documentation formatting
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5694>
2023-11-28 15:05:24 +00:00
Sebastian Dröge
47e4110a1b rtp: Add/fix various annotations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>
2022-10-18 08:56:58 +00:00
Mathieu Duponchelle
a03db32bbe rtpbasepayload: always store input buffer meta before negotiation
The decision to store the input buffer depends on whether extensions
are to be added to the output buffer, I assume as an optimization.

This creates an issue for subclasses that call negotiate(), where
header_exts is actually populated, from their handle_buffer()
implementation: at chain time, no header extension has been negotiated
yet, which means that we don't add extensions to the first batch of
buffers that comes out.

Keep track of whether negotiate has been called (this is different
from the negotiated field) and always store the input buffer until
then. This fixes the issue while largely preserving the optimization.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2304>
2022-04-27 08:43:30 +00:00
Sebastian Dröge
fa070d20cf rtpbasepayload: Don't write header extensions if there's no corresponding input buffer for the packet
The GstRTPHeaderExtension API requires the input buffer to exist.

This can happen if the output packet is generated e.g. from a caps or
tags event like in the case for rtpgstpay.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2198>
2022-04-15 19:56:49 +03:00
Sebastian Dröge
c1a3aaa3ec Fix transfer gobject-introspection annotation typos
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2160>
2022-04-12 12:43:08 +00:00
Mathieu Duponchelle
4c98e2d289 rtpbasepayload: fix transfer annotation for push and push_list
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2133>
2022-04-08 07:20:31 +00:00
Nirbheek Chauhan
146111d7c2 rtpbasepayload: Remove dead twcc code
This feature was removed in 7a53fbad68,
but this code was left behind.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1902>
2022-03-10 11:27:49 +00:00
Sebastian Dröge
2d134c0432 rtpbasepayload: Copy all buffer metadata instead of just GstMetas for the input meta buffer
This gives RTP header extensions some more metadata to work from.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1774>
2022-02-22 10:54:23 +02:00
Matthew Waters
49af6a831d tests/rtp/payload: add test for shrinking extension data
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1146>
2021-10-19 03:26:57 +00:00
Thibault Saunier
2fd28195ca Move files from gst-plugins-base into the "subprojects/gst-plugins-base/" subdir 2021-09-24 16:13:26 -03:00
Renamed from gst-libs/gst/rtp/gstrtpbasepayload.c (Browse further)