Browse code

nutenc: fix unstable floating-point calculations

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

Måns Rullgård authored on 2010/09/10 22:16:08
Showing 1 changed files
... ...
@@ -561,11 +561,11 @@ static int write_header(AVFormatContext *s){
561 561
         if(j==nut->time_base_count)
562 562
             nut->time_base_count++;
563 563
 
564
-        if(av_q2d(time_base) >= 0.001)
564
+        if(INT64_C(1000) * time_base.num >= time_base.den)
565 565
             nut->stream[i].msb_pts_shift = 7;
566 566
         else
567 567
             nut->stream[i].msb_pts_shift = 14;
568
-        nut->stream[i].max_pts_distance= FFMAX(1/av_q2d(time_base), 1);
568
+        nut->stream[i].max_pts_distance= FFMAX(time_base.den, time_base.num) / time_base.num;
569 569
     }
570 570
 
571 571
     nut->max_distance = MAX_DISTANCE;