lavf/utils: add error check in av_read_frame()

In particular, fix crash when the input file contains no packets (e.g. an
ffmeta input).
This commit is contained in:
Stefano Sabatini 2012-09-24 00:33:15 +02:00
parent 127b70e423
commit 64d340c62a
1 changed files with 12 additions and 5 deletions

View File

@ -1409,11 +1409,18 @@ int av_read_frame(AVFormatContext *s, AVPacket *pkt)
AVStream *st;
if (!genpts) {
ret = s->packet_buffer ? read_from_packet_buffer(&s->packet_buffer,
&s->packet_buffer_end,
pkt) :
read_frame_internal(s, pkt);
goto return_packet;
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;
}
}
for (;;) {