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; AVStream *st;
if (!genpts) { if (!genpts) {
ret = s->packet_buffer ? read_from_packet_buffer(&s->packet_buffer, while (1) {
&s->packet_buffer_end, ret = s->packet_buffer ?
pkt) : read_from_packet_buffer(&s->packet_buffer, &s->packet_buffer_end, pkt) :
read_frame_internal(s, pkt); read_frame_internal(s, pkt);
goto return_packet; if (ret < 0) {
if (ret == AVERROR(EAGAIN))
continue;
else
return ret;
}
goto return_packet;
}
} }
for (;;) { for (;;) {