# HG changeset patch # User bcoudurier # Date 1255918330 0 # Node ID e79d1b0428e34a60eec7e08712e87c853ae95b5b # Parent 7e2ae4853d3d1c8bebd4f820c11f46e39a5eaf7f In dump_format, print streams not associated with any program. Fixes issue #1366. diff -r 7e2ae4853d3d -r e79d1b0428e3 utils.c --- a/utils.c Mon Oct 19 01:42:05 2009 +0000 +++ b/utils.c Mon Oct 19 02:12:10 2009 +0000 @@ -2902,6 +2902,9 @@ 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 @@ 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 @@ av_log(NULL, AV_LOG_INFO, " %-16s: %s\n", tag->key, tag->value); } } - + av_free(printed); } #if LIBAVFORMAT_VERSION_MAJOR < 53