Commit d0fe217e authored by Martin Storsjö's avatar Martin Storsjö

rtpdec: Simplify insertion into the linked list queue

By using a pointer-to-pointer, we avoid having to keep track
of the previous packet separately.
Signed-off-by: 's avatarMartin Storsjö <martin@martin.st>
parent 62761934
......@@ -723,15 +723,14 @@ void ff_rtp_reset_packet_queue(RTPDemuxContext *s)
static void enqueue_packet(RTPDemuxContext *s, uint8_t *buf, int len)
{
uint16_t seq = AV_RB16(buf + 2);
RTPPacket *cur = s->queue, *prev = NULL, *packet;
RTPPacket **cur = &s->queue, *packet;
/* Find the correct place in the queue to insert the packet */
while (cur) {
int16_t diff = seq - cur->seq;
while (*cur) {
int16_t diff = seq - (*cur)->seq;
if (diff < 0)
break;
prev = cur;
cur = cur->next;
cur = &(*cur)->next;
}
packet = av_mallocz(sizeof(*packet));
......@@ -741,11 +740,8 @@ static void enqueue_packet(RTPDemuxContext *s, uint8_t *buf, int len)
packet->seq = seq;
packet->len = len;
packet->buf = buf;
packet->next = cur;
if (prev)
prev->next = packet;
else
s->queue = packet;
packet->next = *cur;
*cur = packet;
s->queue_len++;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment