mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-24 12:09:55 +00:00
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: Martin Storsjö <martin@martin.st>
This commit is contained in:
parent
62761934b0
commit
d0fe217e39
@ -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++;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user