diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2003-03-08 10:57:44 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2003-03-08 10:57:44 +0000 |
commit | b559b29b1f9a8ce38f6d23fa4740b74bd5566bd5 (patch) | |
tree | 1f8dd705ad49af0d0afde2f98145be56a760e5a8 /libavformat/avienc.c | |
parent | 7004ffb3d7274fe95fab7a699b75cc4e6d9092e3 (diff) | |
download | ffmpeg-streaming-b559b29b1f9a8ce38f6d23fa4740b74bd5566bd5.zip ffmpeg-streaming-b559b29b1f9a8ce38f6d23fa4740b74bd5566bd5.tar.gz |
read BITMAPINFOHEADER extra stuff (huffyuv decoding fixed)
fixed framerate encoding & decoding hopefully, this should fix av sync on long AVIs
Originally committed as revision 1646 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/avienc.c')
-rw-r--r-- | libavformat/avienc.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/libavformat/avienc.c b/libavformat/avienc.c index 9b930f3..04bc9e6 100644 --- a/libavformat/avienc.c +++ b/libavformat/avienc.c @@ -237,6 +237,8 @@ static int avi_write_header(AVFormatContext *s) /* stream list */ for(i=0;i<n;i++) { + int gcd; + list2 = start_tag(pb, "LIST"); put_tag(pb, "strl"); @@ -252,8 +254,12 @@ static int avi_write_header(AVFormatContext *s) put_le16(pb, 0); /* priority */ put_le16(pb, 0); /* language */ put_le32(pb, 0); /* initial frame */ - put_le32(pb, 1000); /* scale */ - put_le32(pb, (1000 * stream->frame_rate) / FRAME_RATE_BASE); /* rate */ + + gcd= av_gcd(stream->frame_rate, FRAME_RATE_BASE); + + put_le32(pb, FRAME_RATE_BASE / gcd); /* scale */ + put_le32(pb, stream->frame_rate / gcd); /* rate */ + put_le32(pb, 0); /* start */ avi->frames_hdr_strm[i] = url_ftell(pb); /* remember this offset to fill later */ put_le32(pb, nb_frames); /* length, XXX: fill later */ |