diff avidec.c @ 85:25062c9b1f86 libavformat

per context frame_rate_base, this should finally fix frame_rate related av sync issues
author michaelni
date Wed, 12 Mar 2003 15:16:19 +0000
parents 0068a6902911
children 0c5a7b4ccca9
line wrap: on
line diff
--- a/avidec.c	Wed Mar 12 01:35:47 2003 +0000
+++ b/avidec.c	Wed Mar 12 15:16:19 2003 +0000
@@ -133,12 +133,16 @@
                 scale= get_le32(pb); /* scale */
                 rate= get_le32(pb); /* rate */
 
-                if(scale && rate)
-                    st->codec.frame_rate= (rate * (uint64_t)FRAME_RATE_BASE + scale/2) / scale;
-                else if(frame_period)
-                    st->codec.frame_rate = (1000000LL * FRAME_RATE_BASE + frame_period/2) / frame_period;
-                else
-                    st->codec.frame_rate = 25 * FRAME_RATE_BASE;
+                if(scale && rate){
+                    st->codec.frame_rate = rate;
+                    st->codec.frame_rate_base= scale;
+                }else if(frame_period){
+                    st->codec.frame_rate = 1000000;
+                    st->codec.frame_rate_base= frame_period;
+                }else{
+                    st->codec.frame_rate = 25;
+                    st->codec.frame_rate_base = 1;
+                }
                 
                 url_fskip(pb, size - 7 * 4);
                 break;