gstreamer/subprojects/gst-plugins-good/tests
Jan Schmidt ef8dfd7873 rtpmanager: save the report block statistics in each RTPSource
Move RB info from receiver reports into the internal source that the RR
are about, and deprecate (but retain) the old mapping where each
external source has only a single RB entry in the rtp statistics.

The old method is broken if a remote peer uses a single ssrc to send
receiver reports for more than one of our internal sources, other
as multiple RB in a single packet, or alternate RB in different reports.
In each case only the most recent entry was kept, overwriting data for
other internal sources.

In multicast scenarios each internal source may receive multiple
receiver reports from different peers. To support that, all received
RR's are now stored into a hash table indexed by the sender's SSRC,
and all RRs are placed into an array when generating statistics, so
that the information from all peers is retrievable.

The current deficient behaviour (adding RB info into non-internal RTPSources) is
deprecated but kept in order to be backward compatible, and retained
that way in the generated statistics structure.

Refs
[1] https://tools.ietf.org/html/rfc3550#section-6.4.1

Based on a patch by Fede Claramonte <fclaramonte@twilio.com>

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7424>
2024-10-11 05:20:22 +00:00
..
check rtpmanager: save the report block statistics in each RTPSource 2024-10-11 05:20:22 +00:00
examples common: Stop using GQuark-based GstStructure field name API 2024-09-26 19:21:29 +03:00
files qtdemux: add unit test for edit list regression 2023-05-11 16:45:37 +00:00
interactive tests: rename 'icles' subdir to be more descriptive 2022-04-14 11:57:11 +00:00
meson.build gstreamer-full: add full static support 2023-05-31 15:17:11 +00:00