diff options
author | Baptiste Coudurier <baptiste.coudurier@gmail.com> | 2009-10-19 02:12:10 +0000 |
---|---|---|
committer | Baptiste Coudurier <baptiste.coudurier@gmail.com> | 2009-10-19 02:12:10 +0000 |
commit | 7edbcfb79e1e8d69d70c10ee2eabf805e6a0ad1f (patch) | |
tree | 9beb8b6c3f9ed7e7c2f059495cfaba210fa459ed | |
parent | cbd8a722bb2d6b873d4ddaab414e5e782bc838f3 (diff) | |
download | ffmpeg-7edbcfb79e1e8d69d70c10ee2eabf805e6a0ad1f.tar.gz |
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
-rw-r--r-- | libavformat/utils.c | 21 |
1 files changed, 15 insertions, 6 deletions
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; j<ic->nb_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; k<ic->programs[j]->nb_stream_indexes; k++) + for(k=0; k<ic->programs[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;i<ic->nb_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 |