OSDN Git Service

Print why av_find_stream_info() failed, this is a rather common question
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 18 Jun 2009 00:22:08 +0000 (00:22 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 18 Jun 2009 00:22:08 +0000 (00:22 +0000)
during debugging ...

Originally committed as revision 19217 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/utils.c

index dc18885..99ac30c 100644 (file)
@@ -2042,6 +2042,7 @@ int av_find_stream_info(AVFormatContext *ic)
     for(;;) {
         if(url_interrupt_cb()){
             ret= AVERROR(EINTR);
+            av_log(ic, AV_LOG_DEBUG, "interrupted\n");
             break;
         }
 
@@ -2066,12 +2067,14 @@ int av_find_stream_info(AVFormatContext *ic)
             if (!(ic->ctx_flags & AVFMTCTX_NOHEADER)) {
                 /* if we found the info for all the codecs, we can stop */
                 ret = count;
+                av_log(ic, AV_LOG_DEBUG, "All info found\n");
                 break;
             }
         }
         /* we did not get all the codec info, but we read too much data */
         if (read_size >= MAX_READ_SIZE) {
             ret = count;
+            av_log(ic, AV_LOG_DEBUG, "MAX_READ_SIZE reached\n");
             break;
         }
 
@@ -2106,8 +2109,10 @@ int av_find_stream_info(AVFormatContext *ic)
 
         st = ic->streams[pkt->stream_index];
         if(codec_info_nb_frames[st->index]>1) {
-            if (st->time_base.den > 0 && av_rescale_q(codec_info_duration[st->index], st->time_base, AV_TIME_BASE_Q) >= ic->max_analyze_duration)
+            if (st->time_base.den > 0 && av_rescale_q(codec_info_duration[st->index], st->time_base, AV_TIME_BASE_Q) >= ic->max_analyze_duration){
+                av_log(ic, AV_LOG_DEBUG, "max_analyze_duration reached\n");
                 break;
+            }
             codec_info_duration[st->index] += pkt->duration;
         }
         if (pkt->duration != 0)