diff --git a/gst/rtpmanager/gstrtpjitterbuffer.c b/gst/rtpmanager/gstrtpjitterbuffer.c index 6c3c9b8def..937d50e3a3 100644 --- a/gst/rtpmanager/gstrtpjitterbuffer.c +++ b/gst/rtpmanager/gstrtpjitterbuffer.c @@ -2004,6 +2004,7 @@ calculate_expected (GstRtpJitterBuffer * jitterbuffer, guint32 expected, GstRtpJitterBufferPrivate *priv = jitterbuffer->priv; GstClockTime total_duration, duration, expected_dts; TimerType type; + guint lost_packets = 0; GST_DEBUG_OBJECT (jitterbuffer, "dts %" GST_TIME_FORMAT ", last %" GST_TIME_FORMAT, @@ -2025,7 +2026,6 @@ calculate_expected (GstRtpJitterBuffer * jitterbuffer, guint32 expected, if (total_duration > priv->latency_ns) { GstClockTime gap_time; - guint lost_packets; gap_time = total_duration - priv->latency_ns; @@ -2052,7 +2052,7 @@ calculate_expected (GstRtpJitterBuffer * jitterbuffer, guint32 expected, priv->last_in_dts += gap_time; } - expected_dts = priv->last_in_dts + duration; + expected_dts = priv->last_in_dts + (lost_packets + 1) * duration; if (priv->do_retransmission) { TimerData *timer;