From 7edbcfb79e1e8d69d70c10ee2eabf805e6a0ad1f Mon Sep 17 00:00:00 2001 From: Baptiste Coudurier Date: Mon, 19 Oct 2009 02:12:10 +0000 Subject: In dump_format, print streams not associated with any program. Fixes issue #1366. Originally committed as revision 20306 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/utils.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'libavformat/utils.c') diff --git a/libavformat/utils.c b/libavformat/utils.c index 9beec720b8..fc373479de 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -2902,6 +2902,9 @@ void dump_format(AVFormatContext *ic, int is_output) { int i; + uint8_t *printed = av_mallocz(ic->nb_streams); + if (ic->nb_streams && !printed) + return; av_log(NULL, AV_LOG_INFO, "%s #%d, %s, %s '%s':\n", is_output ? "Output" : "Input", @@ -2940,19 +2943,25 @@ void dump_format(AVFormatContext *ic, av_log(NULL, AV_LOG_INFO, "\n"); } if(ic->nb_programs) { - int j, k; + int j, k, total = 0; for(j=0; jnb_programs; j++) { AVMetadataTag *name = av_metadata_get(ic->programs[j]->metadata, "name", NULL, 0); av_log(NULL, AV_LOG_INFO, " Program %d %s\n", ic->programs[j]->id, name ? name->value : ""); - for(k=0; kprograms[j]->nb_stream_indexes; k++) + for(k=0; kprograms[j]->nb_stream_indexes; k++) { dump_stream_format(ic, ic->programs[j]->stream_index[k], index, is_output); - } - } else { + printed[ic->programs[j]->stream_index[k]] = 1; + } + total += ic->programs[j]->nb_stream_indexes; + } + if (total < ic->nb_streams) + av_log(NULL, AV_LOG_INFO, " No Program\n"); + } for(i=0;inb_streams;i++) + if (!printed[i]) dump_stream_format(ic, i, index, is_output); - } + if (ic->metadata) { AVMetadataTag *tag=NULL; av_log(NULL, AV_LOG_INFO, " Metadata\n"); @@ -2960,7 +2969,7 @@ void dump_format(AVFormatContext *ic, av_log(NULL, AV_LOG_INFO, " %-16s: %s\n", tag->key, tag->value); } } - + av_free(printed); } #if LIBAVFORMAT_VERSION_MAJOR < 53 -- cgit v1.2.3