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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user