rtpjitterbuffer: Reschedule timers when updating their offset
authorSebastian Dröge <sebastian@centricular.com>
Wed, 7 Sep 2022 08:07:40 +0000 (11:07 +0300)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Wed, 16 Nov 2022 08:26:41 +0000 (08:26 +0000)
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>

subprojects/gst-plugins-good/gst/rtpmanager/gstrtpjitterbuffer.c

index 25a1434..063e39b 100644 (file)
@@ -2274,10 +2274,9 @@ update_timer_offsets (GstRtpJitterBuffer * jitterbuffer)
         test->timeout = GST_CLOCK_TIME_NONE;
         test->offset = 0;
       }
-      /* as we apply the offset on all timers, the order of timers won't
-       * change and we can skip updating the timer queue */
     }
 
+    rtp_timer_queue_reschedule (priv->timers, test);
     test = rtp_timer_get_next (test);
   }
 }