Charlie Blevins
05cffc19dd
rtpjitterbuffer: Allow earlier reference-timestamp-meta
...
Allow reference-timestamp-meta to be added earlier if an RTCP sender
report is sent before the first RTP packet.
Fixes #2843
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5084 >
2023-08-03 17:26:42 +00:00
Sebastian Dröge
3d79402344
rtpjitterbuffer: Reschedule timers when updating their offset
...
As EXPECTED timers are skipped the order of the timers relative to each
other can change if there are EXPECTED timers and rescheduling needs to
happen.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1422
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3416 >
2022-11-16 08:26:41 +00:00
Edward Hervey
30886fa9ea
rtpjitterbuffer: Unlock timer waits on flushing
...
If there is a pending EOS wait for example, we would never unblock on flushing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3401 >
2022-11-15 18:30:43 +00:00
Matt Crane
e64a5b9a85
rtpjitterbuffer: Fix calculation of reference timestamp metadata
...
Add support for RTCP SRs that contain RTP timestamps later than the
current timestamps in the RTP stream packet buffers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3019 >
2022-09-12 20:17:08 +00:00
Sebastian Dröge
648b8f3362
rtpjitterbuffer: Make it more explicit that update_rtx_timers() takes ownership of the passed in timer
...
It is not valid anymore afterwards and must not be used, otherwise an
already freed pointer might be used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2973 >
2022-09-03 09:26:24 +00:00
Sebastian Dröge
e66f5e2423
rtpjitterbuffer: Don't shadow variable
...
While this didn't cause any problems in this context it is simply
confusing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2973 >
2022-09-03 09:26:24 +00:00
Sebastian Dröge
0b19c457ca
rtpjitterbuffer: Change RTX timer availability checks to assertions
...
It's impossible to end up in the corresponding code without a timer for
RTX packets because otherwise it would be an unsolicited RTX packet and
we would've already returned early.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2973 >
2022-09-03 09:26:24 +00:00
Sebastian Dröge
2ca849499e
rtpjitterbuffer: Only unschedule timers for late packets if they're not RTX packets and only once
...
Timers for RTX packets are dealt with later in update_rtx_timers(), and
timers for non-RTX packets would potentially also be unscheduled a
second time from there so avoid that.
Also don't shadow the timer variable from the outer scope but instead
make use of it directly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2973 >
2022-09-03 09:26:24 +00:00
Raul Tambre
e1d3612321
rtpjitterbuffer: remove lost timer for out of order packets
...
When receiving old packets remove the running lost timer if present.
This fixes incorrect reporting of a lost packet even if it arrived in time.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2922 >
2022-09-01 09:01:31 +00:00
Tim-Philipp Müller
9d9e59622f
Bump GLib requirement to >= 2.62
...
Can't require 2.64 yet because of
https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/323
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2568 >
2022-06-10 06:01:41 +00:00
Sebastian Dröge
7466444b63
rtpjitterbuffer: Free CNAME/SSRC mappings on finalize and PAUSED->READY
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2336 >
2022-04-29 23:33:47 +03:00
Sebastian Dröge
2c405da921
rtpmanager: Refactor RTCP packet loops to fix control flow
...
Mixing C loops with switch statements is a bad idea as break has a
different meaning in both. Breaking inside the switch statements wrongly
caused further loop iterations.
Instead use goto to get out of the loop and continue to do another loop
iteration, and never ever use break except for the end of a case.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2336 >
2022-04-29 23:13:15 +03:00
Seungha Yang
6619f1611f
rtpjitterbuffer: Initialize variables
...
Avoid use of uninitialized variable
Fixing MSVC warning
gstrtpjitterbuffer.c(4733) : warning C4700: uninitialized local variable 'have_sdes' used
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2315 >
2022-04-28 12:37:13 +00:00
Sebastian Dröge
9d5179ad3f
rtpjitterbuffer: add the reference timestamp meta in more situations
...
Previously, we only added it when actually performing synchronization
based on the NTP time.
The information can be useful downstream in other situations too, and
we can compute a NTP time as soon as we get a sender report with the
relevant information.
Co-authored-by: Mathieu Duponchelle <mathieu@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2252 >
2022-04-27 12:35:21 +00:00
Sebastian Dröge
02115a5efc
rtpmanager: Move some duplicated constant and helper function to a single place
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132 >
2022-04-20 14:40:25 +00:00
Sebastian Dröge
c7e12974ba
rtpbin/rtpjitterbuffer: Don't parse RTCP SRs twice unless needed
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132 >
2022-04-20 14:40:25 +00:00
Sebastian Dröge
82169aa140
rtpjitterbuffer: Add property to throttle handling of RTCP SR / NTP-64 syncing
...
This proxies the "rtcp-sync-interval" property of rtpbin.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132 >
2022-04-20 14:40:25 +00:00
Sebastian Dröge
0c819d2f31
rtpbin/rtpjitterbuffer: Allow syncing to an SR without CNAME if the CNAME is already known
...
The RTCP SR packet might be without SDES in case of a reduced-size RTCP
packet. For syncing purposes the CNAME is needed but it might be known
already from an earlier RTCP packet or out of band, via the SDP for
example.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132 >
2022-04-20 14:40:25 +00:00
Sebastian Dröge
cbaac3cdba
rtpbin/jitterbuffer: Use inband 64-bit NTP timestamps according to RFC6051 for faster synchronization
...
When signalled via the caps that the header extension is used, it will
be read and used in the same way as the RTP/NTP time mapping from RTCP
SRs.
If the CNAME of the stream's SSRC is provided out of band via e.g. the
SDP then this allows streams to be synchronized immediately on the first
packet instead of having to wait for the first RTCP SR to arrive.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/383
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132 >
2022-04-20 14:40:25 +00:00
Tim-Philipp Müller
c88bfc0b3e
rtpjitterbuffer: add "add-reference-timestamp-meta" property
...
When syncing to an RFC7273 clock this will add the original
reconstructed reference clock timestamp to buffers in form
of a GstReferenceTimestampMeta.
This is useful when we want to process or analyse data based
on the original timestamps untainted by any local adjustments,
for example reconstruct AES67 audio streams with sample accuracy.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1964 >
2022-03-16 09:52:58 +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