mirror of https://git.ffmpeg.org/ffmpeg.git
Merge commit '22cc57da64bfd73f2206969486b0aa183ee76479'
* commit '22cc57da64bfd73f2206969486b0aa183ee76479': rtpdec: Forward the memory failure Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
This commit is contained in:
commit
157969321a
|
@ -691,7 +691,7 @@ void ff_rtp_reset_packet_queue(RTPDemuxContext *s)
|
|||
s->prev_ret = 0;
|
||||
}
|
||||
|
||||
static void enqueue_packet(RTPDemuxContext *s, uint8_t *buf, int len)
|
||||
static int enqueue_packet(RTPDemuxContext *s, uint8_t *buf, int len)
|
||||
{
|
||||
uint16_t seq = AV_RB16(buf + 2);
|
||||
RTPPacket **cur = &s->queue, *packet;
|
||||
|
@ -706,7 +706,7 @@ static void enqueue_packet(RTPDemuxContext *s, uint8_t *buf, int len)
|
|||
|
||||
packet = av_mallocz(sizeof(*packet));
|
||||
if (!packet)
|
||||
return;
|
||||
return AVERROR(ENOMEM);
|
||||
packet->recvtime = av_gettime_relative();
|
||||
packet->seq = seq;
|
||||
packet->len = len;
|
||||
|
@ -714,6 +714,8 @@ static void enqueue_packet(RTPDemuxContext *s, uint8_t *buf, int len)
|
|||
packet->next = *cur;
|
||||
*cur = packet;
|
||||
s->queue_len++;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int has_next_packet(RTPDemuxContext *s)
|
||||
|
@ -811,7 +813,9 @@ static int rtp_parse_one_packet(RTPDemuxContext *s, AVPacket *pkt,
|
|||
return rv;
|
||||
} else {
|
||||
/* Still missing some packet, enqueue this one. */
|
||||
enqueue_packet(s, buf, len);
|
||||
rv = enqueue_packet(s, buf, len);
|
||||
if (rv < 0)
|
||||
return rv;
|
||||
*bufptr = NULL;
|
||||
/* Return the first enqueued packet if the queue is full,
|
||||
* even if we're missing something */
|
||||
|
|
Loading…
Reference in New Issue