]> git.sesse.net Git - nageru/blob - timebase.h
Write 1.4.0 changelog.
[nageru] / timebase.h
1 #ifndef _TIMEBASE_H
2 #define _TIMEBASE_H 1
3
4 // Common timebase that allows us to represent one frame exactly in all the
5 // relevant frame rates:
6 //
7 //   Timebase:              1/60000
8 //   Frame at 50fps:     1200/60000
9 //   Frame at 60fps:     1000/60000
10 //   Frame at 59.94fps:  1001/60000
11 //
12 // If we also wanted to represent one sample at 48000 Hz, we'd need
13 // to go to 300000. Also supporting one sample at 44100 Hz would mean
14 // going to 44100000; probably a bit excessive.
15 #define TIMEBASE 60000
16
17 // Some muxes, like MP4 (or at least avformat's implementation of it),
18 // are not too fond of values above 2^31. At timebase 60000, that's only
19 // about ten hours or so, so we define a coarser timebase that doesn't
20 // get 59.94 precisely (so there will be a marginal amount of pts jitter),
21 // but can do at least 50 and 60 precisely, and months of streaming.
22 #define COARSE_TIMEBASE 300
23
24 #endif  // !defined(_TIMEBASE_H)