Browse Source

lavf/utils: remove loop on AVERROR(EAGAIN) in av_read_frame()

The loop was introduced in 64d340c62ad5954c1a834df2d26057135e771774, and
was likely breaking non blocking reads as it busy loops.
tags/n1.0
Stefano Sabatini 12 years ago
parent
commit
bbe9fe469a
1 changed files with 6 additions and 12 deletions
  1. +6
    -12
      libavformat/utils.c

+ 6
- 12
libavformat/utils.c View File

@@ -1409,18 +1409,12 @@ int av_read_frame(AVFormatContext *s, AVPacket *pkt)
AVStream *st;

if (!genpts) {
while (1) {
ret = s->packet_buffer ?
read_from_packet_buffer(&s->packet_buffer, &s->packet_buffer_end, pkt) :
read_frame_internal(s, pkt);
if (ret < 0) {
if (ret == AVERROR(EAGAIN))
continue;
else
return ret;
}
goto return_packet;
}
ret = s->packet_buffer ?
read_from_packet_buffer(&s->packet_buffer, &s->packet_buffer_end, pkt) :
read_frame_internal(s, pkt);
if (ret < 0)
return ret;
goto return_packet;
}

for (;;) {


Loading…
Cancel
Save