[FFmpeg-cvslog] r13266 - in trunk/libavformat: avformat.h matroskadec.c nutdec.c utils.c
michael
subversion
Fri May 23 20:15:13 CEST 2008
Author: michael
Date: Fri May 23 20:15:13 2008
New Revision: 13266
Log:
Pass time_base as argument to new_chapter() as well.
This fixes the wrong timebase the matroska demuxer had after my previous commits.
Maybe we should reduce new_chapter() to just (AVFormatContext, int id) ?
Modified:
trunk/libavformat/avformat.h
trunk/libavformat/matroskadec.c
trunk/libavformat/nutdec.c
trunk/libavformat/utils.c
Modified: trunk/libavformat/avformat.h
==============================================================================
--- trunk/libavformat/avformat.h (original)
+++ trunk/libavformat/avformat.h Fri May 23 20:15:13 2008
@@ -776,13 +776,13 @@ AVProgram *av_new_program(AVFormatContex
*
* @param s media file handle
* @param id unique id for this chapter
- * @param start chapter start time in AV_TIME_BASE units
- * @param end chapter end time in AV_TIME_BASE units
+ * @param start chapter start time in time_base units
+ * @param end chapter end time in time_base units
* @param title chapter title
*
* @return AVChapter or NULL if error.
*/
-AVChapter *ff_new_chapter(AVFormatContext *s, int id, int64_t start, int64_t end, const char *title);
+AVChapter *ff_new_chapter(AVFormatContext *s, int id, AVRational time_base, int64_t start, int64_t end, const char *title);
/**
* Set the pts for a given stream.
Modified: trunk/libavformat/matroskadec.c
==============================================================================
--- trunk/libavformat/matroskadec.c (original)
+++ trunk/libavformat/matroskadec.c Fri May 23 20:15:13 2008
@@ -2254,10 +2254,7 @@ matroska_parse_chapters(AVFormatContext
}
if (start != AV_NOPTS_VALUE && uid != -1) {
- start = start * AV_TIME_BASE / 1000000000;
- if (end != AV_NOPTS_VALUE)
- end = end * AV_TIME_BASE / 1000000000;
- if(!ff_new_chapter(s, uid, start, end, title))
+ if(!ff_new_chapter(s, uid, (AVRational){1, 1000000000}, start, end, title))
res= AVERROR(ENOMEM);
}
av_free(title);
Modified: trunk/libavformat/nutdec.c
==============================================================================
--- trunk/libavformat/nutdec.c (original)
+++ trunk/libavformat/nutdec.c Fri May 23 20:15:13 2008
@@ -406,8 +406,9 @@ static int decode_info_header(NUTContext
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];
+ chapter= ff_new_chapter(s, chapter_id,
+ nut->time_base[chapter_start % nut->time_base_count],
+ start, start + chapter_len, NULL);
}
for(i=0; i<count; i++){
Modified: trunk/libavformat/utils.c
==============================================================================
--- trunk/libavformat/utils.c (original)
+++ trunk/libavformat/utils.c Fri May 23 20:15:13 2008
@@ -2246,7 +2246,7 @@ void av_set_program_name(AVProgram *prog
}
}
-AVChapter *ff_new_chapter(AVFormatContext *s, int id, int64_t start, int64_t end, const char *title)
+AVChapter *ff_new_chapter(AVFormatContext *s, int id, AVRational time_base, int64_t start, int64_t end, const char *title)
{
AVChapter *chapter = NULL;
int i;
@@ -2265,6 +2265,7 @@ AVChapter *ff_new_chapter(AVFormatContex
av_free(chapter->title);
chapter->title = av_strdup(title);
chapter->id = id;
+ chapter->time_base= time_base;
chapter->start = start;
chapter->end = end;
More information about the ffmpeg-cvslog
mailing list