6 // Common timebase that allows us to represent one frame exactly in all the
7 // relevant frame rates:
10 // Frame at 50fps: 2400/120000
11 // Frame at 60fps: 2000/120000
12 // Frame at 59.94fps: 2002/120000
13 // Frame at 23.976fps: 5005/120000
15 // If we also wanted to represent one sample at 48000 Hz, we'd need
16 // to go to 300000. Also supporting one sample at 44100 Hz would mean
17 // going to 44100000; probably a bit excessive.
18 #define TIMEBASE 120000
20 // Some muxes, like MP4 (or at least avformat's implementation of it),
21 // are not too fond of values above 2^31. At timebase 120000, that's only
22 // about five hours or so, so we define a coarser timebase that doesn't
23 // get 59.94 precisely (so there will be a marginal amount of pts jitter),
24 // but can do at least 50 and 60 precisely, and months of streaming.
25 #define COARSE_TIMEBASE 300
27 using TimebaseRatio = std::ratio<1, TIMEBASE>;
29 #endif // !defined(_TIMEBASE_H)