Added metadata output for MKV chapter information
git-svn-id: svn+ssh://74.125.59.83/svnsource/ffmpeg/trunk@67 c0683bf1-fb26-4375-bba1-98ccd3d3b0d1
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 6b9efb7..81353a5 100755
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -1186,8 +1186,7 @@
AVStream *st;
int i, j;
int indexcount=0;
- char chapTit[64];
- char chapVal[64];
+ char* metaChapters = 0;
matroska->ctx = s;
@@ -1484,11 +1483,21 @@
chapters[i].title);
av_metadata_set(&chapters[i].chapter->metadata,
"title", chapters[i].title);
- snprintf(chapTit, 64, "chapterstart%d", i);
- snprintf(chapVal, 64, "%"PRIu64"", chapters[i].start/1000000);
- av_metadata_set(&s->metadata, chapTit, chapVal);
+ if (!metaChapters)
+ {
+ metaChapters = (char*) av_malloc(chapters_list->nb_elem * 16);
+ metaChapters[0] = '\0';
+ }
+
+ av_strlcatf(metaChapters, chapters_list->nb_elem * 16, "%"PRIu64",", chapters[i].start/1000000);
max_start = chapters[i].start;
}
+ if (metaChapters)
+ {
+ av_metadata_set(&s->metadata, "chapterpoints", metaChapters);
+ av_free(metaChapters);
+ metaChapters = 0;
+ }
index_list = &matroska->index;
index = index_list->elem;