gstreamer/subprojects/gst-plugins-good/tests/check/elements
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
..
aacparse.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
ac3parse.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
alpha.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
alphacolor.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
amrnbenc.c amrnb, amrwbdec: move AMR-NB and AMR-WB plugins to -good 2023-05-02 23:33:12 +00:00
amrparse.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
apev2mux.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
aspectratiocrop.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
audioamplify.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
audiochebband.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
audiocheblimit.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
audiodynamic.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
audioecho.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
audiofirfilter.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
audioiirfilter.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
audioinvert.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
audiopanorama.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
audiowsincband.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
audiowsinclimit.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
autodetect.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
avimux.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
avisubtitle.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
capssetter.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
dash_mpd.c dashdemux2: Improve initial representation selection 2023-02-18 21:05:25 +00:00
deinterlace.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
deinterleave.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
dtmf.c rtpdtmfsrc: fix leak when shutting down mid-event 2024-06-19 07:32:49 +00:00
equalizer.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
flacparse.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
flvdemux.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
flvmux.c flvmux: push metadata on caps change 2023-05-30 09:35:43 +02:00
gdkpixbufoverlay.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
gdkpixbufsink.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
hlsdemux_m3u8.c hlsdemux2: Remove enable-llhls property 2023-02-03 16:52:24 +00:00
icydemux.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
id3demux.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
id3v2mux.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
imagefreeze.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
interleave.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
jpegdec.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
jpegenc.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
level.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
matroskademux.c matroska-demux: fix accumulated base offset in segment seeks 2023-06-13 18:19:48 +00:00
matroskamux.c matroskamux: Port to GstAggregator 2024-10-01 13:20:18 +00:00
matroskaparse.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
mpegaudioparse.c mpegaudioparse: Support gapless playback 2022-03-14 10:32:15 +02:00
mpg123audiodec.c mpg123: Add gapless playback support 2022-03-14 10:32:15 +02:00
mulawdec.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
mulawenc.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
multifile.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
packets.h Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
parser.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
parser.h Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
qtdemux.c qtdemux: Use G_GUINT64_CONSTANT when creating test caps 2024-05-06 06:18:35 +00:00
qtmux.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
rganalysis.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
rglimiter.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
rgvolume.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
rtp-payloading.c rtpklvdepay: Recover after invalid fragmented KLV unit 2023-11-17 09:01:10 +00:00
rtpbin.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
rtpbin_buffer_list.c tests: rtpbin_buffer_list: fix possible unaligned read on 32-bit ARM 2023-06-14 04:59:05 +00:00
rtpcollision.c good: tests: drop use of GSlice 2023-01-24 15:25:07 +00:00
rtpfunnel.c rtpfunnel: also fallback to pad default handling for unknown ssrcs 2024-09-04 08:15:38 +00:00
rtph261.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
rtph263.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
rtph264.c rtph264pay: Add unit tests verifying delta-unit flag 2023-06-29 09:48:41 +00:00
rtph265.c rtph265pay: Only mark first NAL as non delta-unit 2023-06-29 09:48:41 +00:00
rtphdrext-colorspace.c Couple more g_memdup() -> g_memdup2() fixes 2021-10-30 10:37:37 +01:00
rtphdrextclientaudiolevel.c rtphdrext-clientaudiolevel: Rename RFC 6464 element 2021-10-20 00:03:09 +00:00
rtphdrextsdes.c rtphdrextsdes: fixup test trying to g_free a local variable 2022-04-22 08:41:59 +00:00
rtpjitterbuffer.c rtpjitterbuffer: Allow earlier reference-timestamp-meta 2023-08-03 17:26:42 +00:00
rtpjpeg.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
rtpmux.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
rtpopus.c rtopuspay: Ignore the stereo parameter in multiopus caps 2023-01-12 18:48:35 -05:00
rtppassthrough.c rtp: Add rtppassthroughpay element 2023-08-22 14:01:09 +00:00
rtpptdemux.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
rtpred.c tests: rtpred: fix out-of-bound writes 2024-03-28 19:51:47 +00:00
rtprtx.c rtprtx: Fix copying extension headers 2022-07-04 19:20:57 +00:00
rtpsession.c rtpmanager: save the report block statistics in each RTPSource 2024-10-11 05:20:22 +00:00
rtpssrcdemux.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
rtpst2022-1-fecdec.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
rtpst2022-1-fecenc.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
rtpstorage.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
rtptimerqueue.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
rtpulpfec.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
rtpvp8.c GstCustomMeta: Use simplified API where possible 2023-09-27 18:46:34 +00:00
rtpvp9.c rtpvp9pay: Only mark first outgoing packet as non delta-unit 2023-06-29 09:48:41 +00:00
shapewipe.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
souphttpsrc.c soup: Runtime compatibility support for libsoup2 and libsoup3 2021-10-13 08:32:25 +00:00
spectrum.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
splitmuxsink.c splitmuxsink: Fix race in unit tests. Add fragment-id to messages 2024-08-02 15:30:12 +10:00
splitmuxsinktimecode.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
splitmuxsrc.c splitmuxsink: Add fragment offset and duration to message 2024-08-02 15:30:05 +10:00
udpsink.c tests: udpsink: make test work in environments without IPv6 2022-07-02 11:57:31 +00:00
udpsrc.c udpsrc: Add support for IGMPv3 SSM 2023-04-12 16:32:07 +00:00
videobox.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
videocrop.c common: Use more efficient versions of GstCapsFeatures API where possible 2024-09-26 19:26:18 +03:00
videofilter.c gst-plugins-good: re-indent with GNU indent 2.2.12 2023-03-17 03:18:54 +00:00
videoflip.c videoflip: reset orientation if not present in a tag update 2023-04-22 14:02:13 +02:00
videomixer.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
vp8dec.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
vp8enc.c GstCustomMeta: Use simplified API where possible 2023-09-27 18:46:34 +00:00
vp9enc.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
wavpackdec.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
wavpackenc.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
wavpackparse.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00
wavparse.c wavparse: Fix crash that occurs in push mode when header chunks are corrupted 2022-10-13 08:56:49 +00:00
xingmux.c xingmux: move from gst-plugins-ugly to gst-plugins-good 2022-10-25 12:40:20 +00:00
xingmux_testdata.h xingmux: move from gst-plugins-ugly to gst-plugins-good 2022-10-25 12:40:20 +00:00
y4menc.c Move files from gst-plugins-good into the "subprojects/gst-plugins-good/" subdir 2021-09-24 16:13:50 -03:00