Bladeren bron

rtpdec: Always check if we have the next packet queued

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>
Martin Storsjö 13 jaren geleden
bovenliggende
commit
9ea78fd00a
1 gewijzigde bestanden met toevoegingen van 1 en 1 verwijderingen
  1. 1 1
      libavformat/rtpdec.c

+ 1 - 1
libavformat/rtpdec.c

@@ -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);
 }