diff avienc.c @ 75:78bec272ce3a libavformat

read BITMAPINFOHEADER extra stuff (huffyuv decoding fixed) fixed framerate encoding & decoding hopefully, this should fix av sync on long AVIs
author michaelni
date Sat, 08 Mar 2003 10:57:44 +0000
parents a58a8a53eb46
children d03c70b7b50d
line wrap: on
line diff
--- a/avienc.c	Sat Mar 08 01:40:52 2003 +0000
+++ b/avienc.c	Sat Mar 08 10:57:44 2003 +0000
@@ -237,6 +237,8 @@
     
     /* stream list */
     for(i=0;i<n;i++) {
+        int gcd;
+    
         list2 = start_tag(pb, "LIST");
         put_tag(pb, "strl");
     
@@ -252,8 +254,12 @@
             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 */