Fixed the queueing algorithm.

Original commit message from CVS:
Fixed the queueing algorithm.
This commit is contained in:
Zeeshan Ali 2005-10-31 13:29:06 +00:00
parent 4771dfa4ca
commit 39daed4c1e
2 changed files with 15 additions and 16 deletions

View file

@ -1,3 +1,10 @@
2005-10-31 Zeeshan Ali <zeenix@gmail.com>
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_add_to_queue),
(gst_base_rtp_depayload_push):
Fixed the queueing algorithm.
2005-10-31 Zeeshan Ali <zeenix@gmail.com>
* gst-libs/gst/rtp/gstbasertpdepayload.c:

View file

@ -226,18 +226,18 @@ gst_base_rtp_depayload_add_to_queue (GstBaseRTPDepayload * filter,
seqnum = gst_rtpbuffer_get_seq (in);
queueseq = gst_rtpbuffer_get_seq (GST_BUFFER (g_queue_peek_head (queue)));
/* not our first packet
* let us make sure it is not very late */
if (seqnum < queueseq)
goto too_late;
/* look for right place to insert it */
int i = 0;
while (seqnum < queueseq) {
while (seqnum > queueseq) {
gpointer data;
i++;
queueseq =
gst_rtpbuffer_get_seq (GST_BUFFER (g_queue_peek_nth (queue, i)));
data = g_queue_peek_nth (queue, i);
if (!data)
break;
queueseq = gst_rtpbuffer_get_seq (GST_BUFFER (data));
}
/* now insert it at that place */
@ -251,14 +251,6 @@ gst_base_rtp_depayload_add_to_queue (GstBaseRTPDepayload * filter,
g_queue_get_length (queue), i, timestamp, seqnum);
}
return GST_FLOW_OK;
too_late:
{
QUEUE_UNLOCK (filter);
/* we need to drop this one */
GST_DEBUG ("Packet arrived to late, dropping");
return GST_FLOW_OK;
}
}
static void