Remove common factors from timebase in av_set_pts_info().
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 14 Jul 2008 19:11:09 +0000 (19:11 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 14 Jul 2008 19:11:09 +0000 (19:11 +0000)
Should fix issue313

Originally committed as revision 14232 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/utils.c

index d6bee90..851df6b 100644 (file)
@@ -3152,9 +3152,13 @@ void url_split(char *proto, int proto_size,
 void av_set_pts_info(AVStream *s, int pts_wrap_bits,
                      int pts_num, int pts_den)
 {
+    unsigned int gcd= ff_gcd(pts_num, pts_den);
     s->pts_wrap_bits = pts_wrap_bits;
-    s->time_base.num = pts_num;
-    s->time_base.den = pts_den;
+    s->time_base.num = pts_num/gcd;
+    s->time_base.den = pts_den/gcd;
+
+    if(gcd>1)
+        av_log(NULL, AV_LOG_DEBUG, "st:%d removing common factor %d from timebase\n", s->index, gcd);
 }
 
 /* fraction handling */