rtpdec: Always check if we have the next packet queued
authorMartin Storsjö <martin@martin.st>
Mon, 14 Jan 2013 15:48:26 +0000 (17:48 +0200)
committerMartin Storsjö <martin@martin.st>
Wed, 11 May 2016 07:35:01 +0000 (10:35 +0300)
It doesn't matter what the actual reason for not returning
an AVPacket was - if we didn't return any packet and we have
the next one queued, parse it immediately. (rtp_parse_queued_packet
always consumes a queued packet if one exists, so there's no risk
for infinite loops.)

Signed-off-by: Martin Storsjö <martin@martin.st>
libavformat/rtpdec.c

index ef51993..2512239 100644 (file)
@@ -837,7 +837,7 @@ int ff_rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt,
         return -1;
     rv = rtp_parse_one_packet(s, pkt, bufptr, len);
     s->prev_ret = rv;
-    while (rv == AVERROR(EAGAIN) && has_next_packet(s))
+    while (rv < 0 && has_next_packet(s))
         rv = rtp_parse_queued_packet(s, pkt);
     return rv ? rv : has_next_packet(s);
 }