summaryrefslogtreecommitdiff
path: root/libavformat/utils.c
diff options
context:
space:
mode:
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>2009-10-19 02:12:10 +0000
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>2009-10-19 02:12:10 +0000
commit7edbcfb79e1e8d69d70c10ee2eabf805e6a0ad1f (patch)
tree9beb8b6c3f9ed7e7c2f059495cfaba210fa459ed /libavformat/utils.c
parentcbd8a722bb2d6b873d4ddaab414e5e782bc838f3 (diff)
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
Diffstat (limited to 'libavformat/utils.c')
-rw-r--r--libavformat/utils.c21
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