nutenc: fix unstable floating-point calculations

Originally committed as revision 25095 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Måns Rullgård 2010-09-10 13:16:08 +00:00
parent 535cb0434d
commit 324d22b2b4
1 changed files with 2 additions and 2 deletions

View File

@ -561,11 +561,11 @@ static int write_header(AVFormatContext *s){
if(j==nut->time_base_count)
nut->time_base_count++;
if(av_q2d(time_base) >= 0.001)
if(INT64_C(1000) * time_base.num >= time_base.den)
nut->stream[i].msb_pts_shift = 7;
else
nut->stream[i].msb_pts_shift = 14;
nut->stream[i].max_pts_distance= FFMAX(1/av_q2d(time_base), 1);
nut->stream[i].max_pts_distance= FFMAX(time_base.den, time_base.num) / time_base.num;
}
nut->max_distance = MAX_DISTANCE;