This reduces the startup delay if such streams exist and never get fully analyzed
Signed-off-by: Michael Niedermayer <michae...@gmx.at> --- libavformat/utils.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libavformat/utils.c b/libavformat/utils.c index fb79ecd..bcfadef 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -3013,6 +3013,7 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options) int64_t max_analyze_duration = ic->max_analyze_duration2; int64_t max_stream_analyze_duration; int64_t probesize = ic->probesize2; + int64_t scan_all_pmts = -1; if (!max_analyze_duration) max_analyze_duration = ic->max_analyze_duration; @@ -3021,6 +3022,7 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options) flush_codecs = probesize > 0; av_opt_set(ic, "skip_clear", "1", AV_OPT_SEARCH_CHILDREN); + av_opt_get_int(ic, "scan_all_pmts", AV_OPT_SEARCH_CHILDREN, &scan_all_pmts); max_stream_analyze_duration = max_analyze_duration; if (!max_analyze_duration) { @@ -3112,6 +3114,10 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options) int fps_analyze_framecount = 20; st = ic->streams[i]; + + if (ic->nb_programs && !scan_all_pmts && !av_find_program_from_stream(ic, NULL, i)) + continue; + if (!has_codec_parameters(st, NULL)) break; /* If the timebase is coarse (like the usual millisecond precision -- 1.7.9.5 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel