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;
|
return ret;
|
||||||
}
|
}
|
||||||
for(i=0;; i++) {
|
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)
|
if(ret<0)
|
||||||
break;
|
break;
|
||||||
av_free_packet(&pkt);
|
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)
|
if (i == ic->nb_streams)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
do{
|
||||||
ret = av_read_packet(ic, pkt);
|
ret = av_read_packet(ic, pkt);
|
||||||
|
}while(ret == AVERROR(EAGAIN));
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
break;
|
break;
|
||||||
read_size += pkt->size;
|
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)
|
if (read_size >= DURATION_MAX_READ_SIZE)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
do{
|
||||||
ret = av_read_packet(ic, pkt);
|
ret = av_read_packet(ic, pkt);
|
||||||
|
}while(ret == AVERROR(EAGAIN));
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
break;
|
break;
|
||||||
read_size += pkt->size;
|
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
|
/* NOTE: a new stream can be added there if no header in file
|
||||||
(AVFMTCTX_NOHEADER) */
|
(AVFMTCTX_NOHEADER) */
|
||||||
ret = av_read_frame_internal(ic, &pkt1);
|
ret = av_read_frame_internal(ic, &pkt1);
|
||||||
|
if(ret == AVERROR(EAGAIN))
|
||||||
|
continue;
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
/* EOF or error */
|
/* EOF or error */
|
||||||
ret = -1; /* we could not have all the codec parameters before EOF */
|
ret = -1; /* we could not have all the codec parameters before EOF */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user