}
steady_clock::time_point next_frame_start;
- for (int frameno = 0; !should_quit; ++frameno) { // Ends when the clip ends.
+ for (int64_t frameno = 0; !should_quit; ++frameno) { // Ends when the clip ends.
double out_pts = out_pts_origin + TIMEBASE * frameno / global_flags.output_framerate;
next_frame_start =
origin + microseconds(lrint((out_pts - out_pts_origin) * 1e6 / TIMEBASE));
#include <ratio>
+#include <stdint.h>
+
// Common timebase that allows us to represent one frame exactly in all the
// relevant frame rates:
//
// If we also wanted to represent one sample at 48000 Hz, we'd need
// to go to 300000. Also supporting one sample at 44100 Hz would mean
// going to 44100000; probably a bit excessive.
-#define TIMEBASE 120000
+constexpr uint64_t TIMEBASE = 120000;
// Some muxes, like MP4 (or at least avformat's implementation of it),
// are not too fond of values above 2^31. At timebase 120000, that's only