Mercurial > mplayer.hg
diff libmpdemux/demuxer.c @ 19342:4e68a3881201
Add matroska chapter seeking capability.
author | eugeni |
---|---|
date | Sun, 06 Aug 2006 18:55:34 +0000 |
parents | 75327b24e06f |
children | acd26ccbff0d |
line wrap: on
line diff
--- a/libmpdemux/demuxer.c Sun Aug 06 18:02:42 2006 +0000 +++ b/libmpdemux/demuxer.c Sun Aug 06 18:55:34 2006 +0000 @@ -287,6 +287,12 @@ } if(demuxer->filename) free(demuxer->filename); + if (demuxer->chapters) { + for (i=0; i<demuxer->num_chapters; i++) + if (demuxer->chapters[i].name) + free(demuxer->chapters[i].name); + free(demuxer->chapters); + } free(demuxer); } @@ -1024,3 +1030,17 @@ index = demuxer->audio->id; return index; } + +int demuxer_add_chapter(demuxer_t* demuxer, const char* name, uint64_t start, uint64_t end){ + if (demuxer->chapters == NULL) + demuxer->chapters = malloc (32*sizeof(*demuxer->chapters)); + else if (!(demuxer->num_chapters % 32)) + demuxer->chapters = realloc (demuxer->chapters, (demuxer->num_chapters + 32) * sizeof(*demuxer->chapters)); + + demuxer->chapters[demuxer->num_chapters].start = start; + demuxer->chapters[demuxer->num_chapters].end = end; + demuxer->chapters[demuxer->num_chapters].name = strdup(name); + + return demuxer->num_chapters ++; +} +