mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-21 15:56:42 +00:00
jitterbuffer: rearrange timer update code
Also update the timers when retransmission is disabled. We need to do this because when we added LOST timers when we detected missing packets and we need to remove those timers when the packet finally arrives.
This commit is contained in:
parent
7a76595b22
commit
fa1ef3328b
1 changed files with 2 additions and 8 deletions
|
@ -1611,9 +1611,6 @@ update_timers (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum,
|
|||
TimerData *timer = NULL;
|
||||
gint i, len;
|
||||
|
||||
if (!priv->do_retransmission)
|
||||
return;
|
||||
|
||||
/* go through all timers and unschedule the ones with a large gap, also find
|
||||
* the timer for the seqnum */
|
||||
len = priv->timers->len;
|
||||
|
@ -1626,9 +1623,6 @@ update_timers (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum,
|
|||
GST_DEBUG_OBJECT (jitterbuffer, "%d, #%d<->#%d gap %d", i,
|
||||
test->seqnum, seqnum, gap);
|
||||
|
||||
if (test->type == TIMER_TYPE_DEADLINE)
|
||||
continue;
|
||||
|
||||
if (gap == 0) {
|
||||
GST_DEBUG ("found timer for current seqnum");
|
||||
/* the timer for the current seqnum */
|
||||
|
@ -1641,7 +1635,7 @@ update_timers (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum,
|
|||
}
|
||||
}
|
||||
|
||||
if (priv->packet_spacing > 0 && do_next_seqnum) {
|
||||
if (priv->packet_spacing > 0 && do_next_seqnum && priv->do_retransmission) {
|
||||
GstClockTime expected;
|
||||
|
||||
/* calculate expected arrival time of the next seqnum */
|
||||
|
@ -1652,7 +1646,7 @@ update_timers (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum,
|
|||
else
|
||||
add_timer (jitterbuffer, TIMER_TYPE_EXPECTED, priv->next_in_seqnum,
|
||||
expected);
|
||||
} else if (timer) {
|
||||
} else if (timer && timer->type != TIMER_TYPE_DEADLINE) {
|
||||
/* if we had a timer, remove it, we don't know when to expect the next
|
||||
* packet. */
|
||||
remove_timer (jitterbuffer, timer);
|
||||
|
|
Loading…
Reference in a new issue