mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Handle av_read_frame() EAGAIN return.
Originally committed as revision 16718 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
ad51c68c01
commit
cda6902d36
@ -1493,7 +1493,10 @@ static int av_seek_frame_generic(AVFormatContext *s,
|
||||
return ret;
|
||||
}
|
||||
for(i=0;; i++) {
|
||||
int ret = av_read_frame(s, &pkt);
|
||||
int ret;
|
||||
do{
|
||||
ret = av_read_frame(s, &pkt);
|
||||
}while(ret == AVERROR(EAGAIN));
|
||||
if(ret<0)
|
||||
break;
|
||||
av_free_packet(&pkt);
|
||||
@ -1718,7 +1721,9 @@ static void av_estimate_timings_from_pts(AVFormatContext *ic, int64_t old_offset
|
||||
if (i == ic->nb_streams)
|
||||
break;
|
||||
|
||||
ret = av_read_packet(ic, pkt);
|
||||
do{
|
||||
ret = av_read_packet(ic, pkt);
|
||||
}while(ret == AVERROR(EAGAIN));
|
||||
if (ret != 0)
|
||||
break;
|
||||
read_size += pkt->size;
|
||||
@ -1743,7 +1748,9 @@ static void av_estimate_timings_from_pts(AVFormatContext *ic, int64_t old_offset
|
||||
if (read_size >= DURATION_MAX_READ_SIZE)
|
||||
break;
|
||||
|
||||
ret = av_read_packet(ic, pkt);
|
||||
do{
|
||||
ret = av_read_packet(ic, pkt);
|
||||
}while(ret == AVERROR(EAGAIN));
|
||||
if (ret != 0)
|
||||
break;
|
||||
read_size += pkt->size;
|
||||
@ -2044,6 +2051,8 @@ int av_find_stream_info(AVFormatContext *ic)
|
||||
/* NOTE: a new stream can be added there if no header in file
|
||||
(AVFMTCTX_NOHEADER) */
|
||||
ret = av_read_frame_internal(ic, &pkt1);
|
||||
if(ret == AVERROR(EAGAIN))
|
||||
continue;
|
||||
if (ret < 0) {
|
||||
/* EOF or error */
|
||||
ret = -1; /* we could not have all the codec parameters before EOF */
|
||||
|
Loading…
Reference in New Issue
Block a user