rtpdec: Don't call the depacketizer to return more data unless it actually said it has more data

It may have returned a negative number for an error (e.g. AVERROR(EAGAIN),
if more data is required for it to be able to return a complete packet).

Originally committed as revision 25458 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Martin Storsjö 2010-10-13 08:13:07 +00:00
parent 4ffff36751
commit f6e138b4f4

View File

@ -613,10 +613,10 @@ static int rtp_parse_one_packet(RTPDemuxContext *s, AVPacket *pkt,
int rv= 0; int rv= 0;
if (!buf) { if (!buf) {
/* If parsing of the previous packet actually returned 0, there's /* If parsing of the previous packet actually returned 0 or an error,
* nothing more to be parsed from that packet, but we may have * there's nothing more to be parsed from that packet, but we may have
* indicated that we can return the next enqueued packet. */ * indicated that we can return the next enqueued packet. */
if (!s->prev_ret) if (s->prev_ret <= 0)
return rtp_parse_queued_packet(s, pkt); return rtp_parse_queued_packet(s, pkt);
/* return the next packets, if any */ /* return the next packets, if any */
if(s->st && s->parse_packet) { if(s->st && s->parse_packet) {