OSDN Git Service

av_find_stream_info: simplify EAGAIN handling.
authorAmi Fischman <fischman@chromium.org>
Wed, 29 Jun 2011 20:50:21 +0000 (13:50 -0700)
committerRonald S. Bultje <rsbultje@gmail.com>
Wed, 29 Jun 2011 22:27:55 +0000 (15:27 -0700)
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
libavformat/utils.c

index 7370c60..b12f785 100644 (file)
@@ -2306,7 +2306,10 @@ 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 < 0 && ret != AVERROR(EAGAIN)) {
+        if (ret == AVERROR(EAGAIN))
+            continue;
+
+        if (ret < 0) {
             /* EOF or error */
             ret = -1; /* we could not have all the codec parameters before EOF */
             for(i=0;i<ic->nb_streams;i++) {
@@ -2322,9 +2325,6 @@ int av_find_stream_info(AVFormatContext *ic)
             break;
         }
 
-        if (ret == AVERROR(EAGAIN))
-            continue;
-
         pkt= add_to_pktbuf(&ic->packet_buffer, &pkt1, &ic->packet_buffer_end);
         if ((ret = av_dup_packet(pkt)) < 0)
             goto find_stream_info_err;