On 10/05/16 15:28, Martin Storsjö wrote:
> 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.
> ---
>  libavformat/rtpdec.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/libavformat/rtpdec.c b/libavformat/rtpdec.c
> index ef51993..2512239 100644
> --- a/libavformat/rtpdec.c
> +++ b/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);
>  }
> 

Probably it is ok assuming rtp_parse_queued_packet always consumes the
pending data, otherwise we might risk an infiniloop.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to