From 883fe4d5bb3f47e70d251b1dc112980b4587606f Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Fri, 23 May 2008 13:52:54 +0000 Subject: Chapter demuxing support. (untested as I have no nuts with chapters) Isn't that much simpler than Matroska? Originally committed as revision 13263 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/nutdec.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'libavformat/nutdec.c') diff --git a/libavformat/nutdec.c b/libavformat/nutdec.c index 772a527f8e..7259a36acc 100644 --- a/libavformat/nutdec.c +++ b/libavformat/nutdec.c @@ -393,6 +393,7 @@ static int decode_info_header(NUTContext *nut){ int64_t value, end; char name[256], str_value[1024], type_str[256]; const char *type; + AVChapter *chapter= NULL; end= get_packetheader(nut, bc, 1, INFO_STARTCODE); end += url_ftell(bc); @@ -402,6 +403,13 @@ static int decode_info_header(NUTContext *nut){ chapter_start= ff_get_v(bc); chapter_len = ff_get_v(bc); count = ff_get_v(bc); + + if(chapter_id && !stream_id_plus1){ + int64_t start= chapter_start / nut->time_base_count; + chapter= ff_new_chapter(s, chapter_id, start, start + chapter_len, NULL); + chapter->time_base= nut->time_base[chapter_start % nut->time_base_count]; + } + for(i=0; ititle= av_strdup(str_value); + } } if(skip_reserved(bc, end) || get_checksum(bc)){ -- cgit v1.2.3