mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-26 03:31:05 +00:00
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>
This commit is contained in:
parent
034faeae31
commit
2ca849499e
1 changed files with 4 additions and 4 deletions
|
@ -3364,13 +3364,13 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent,
|
|||
do_next_seqnum = FALSE;
|
||||
|
||||
/* If an out of order packet arrives before its lost timer has expired
|
||||
* remove it to avoid false positive statistics. */
|
||||
RtpTimer *timer = rtp_timer_queue_find (priv->timers, seqnum);
|
||||
if (timer && timer->queued && timer->type == RTP_TIMER_LOST) {
|
||||
* remove it to avoid false positive statistics. If this is an RTX
|
||||
* packet then the timer will be updated later as part of update_rtx_timers() */
|
||||
if (!is_rtx && timer && timer->type == RTP_TIMER_LOST) {
|
||||
rtp_timer_queue_unschedule (priv->timers, timer);
|
||||
GST_DEBUG_OBJECT (jitterbuffer,
|
||||
"removing lost timer for late seqnum #%u", seqnum);
|
||||
rtp_timer_free (timer);
|
||||
rtp_timer_free (g_steal_pointer (&timer));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue