Unlock the jitterbuffer before pushing out the packet-lost events.

Move some code before we do the unlock to make the jitterbuffer state
consistent while we are unlocked.
This commit is contained in:
Wim Taymans 2009-01-22 13:33:14 +01:00 committed by Tim-Philipp Müller
parent dfdc9b6662
commit 7f0b100db5

View file

@ -1442,6 +1442,11 @@ again:
priv->num_late++;
discont = TRUE;
/* update our expected next packet */
priv->last_popped_seqnum = next_seqnum;
priv->last_out_time = out_time;
priv->next_seqnum = (next_seqnum + 1) & 0xffff;
if (priv->do_lost) {
/* create paket lost event */
event = gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM,
@ -1449,13 +1454,11 @@ again:
"seqnum", G_TYPE_UINT, (guint) next_seqnum,
"timestamp", G_TYPE_UINT64, out_time,
"duration", G_TYPE_UINT64, duration, NULL));
gst_pad_push_event (priv->srcpad, event);
}
/* update our expected next packet */
priv->last_popped_seqnum = next_seqnum;
priv->last_out_time = out_time;
priv->next_seqnum = (next_seqnum + 1) & 0xffff;
JBUF_UNLOCK (priv);
gst_pad_push_event (priv->srcpad, event);
JBUF_LOCK_CHECK (priv, flushing);
}
/* look for next packet */
goto again;
}