Try to fix Linux build.
[libsub.git] / src / sub_time.cc
index adaab315d44ebb59d84c63dcf30ce0f6c5fc0332..763b4e44aba4e1389f118ba401fd3a0670bf3031 100644 (file)
@@ -169,7 +169,7 @@ Time::from_frames (int f, Rational rate)
 double
 Time::all_as_seconds () const
 {
-       return _seconds + double(milliseconds ()) / 1000;
+       return _seconds + double(milliseconds()) / 1000;
 }
 
 /** Add a time to this one.  Both *this and t must have a specified _rate */
@@ -190,10 +190,7 @@ Time::scale (float f)
        SUB_ASSERT (_rate->denominator != 0);
        SUB_ASSERT (_rate->integer ());
 
-       _seconds = rint (_seconds * f);
-       _frames = rint (_frames * f);
-       if (_frames >= _rate->integer_fraction()) {
-               _frames -= _rate->integer_fraction ();
-               ++_seconds;
-       }
+       double const s = Time::all_as_seconds() * f;
+       _seconds = floor (s);
+       _frames = rint ((s - _seconds) * _rate->fraction());
 }