diff options
| author | Carl Hetherington <cth@carlh.net> | 2016-06-01 22:45:58 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2016-06-01 22:45:58 +0100 |
| commit | 6a18a737ef8dfbfbe909afe8266f104a2125b5fb (patch) | |
| tree | c244025af0ae2a8866f5a15941ea4055954bd3ae /src/lib/types.h | |
| parent | 7a0c2256cbf94d2434ba6e7485517df0a7f894af (diff) | |
Store video frame rate in XML (#883).
Diffstat (limited to 'src/lib/types.h')
| -rw-r--r-- | src/lib/types.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/lib/types.h b/src/lib/types.h index d9bee97c6..ab51e38a9 100644 --- a/src/lib/types.h +++ b/src/lib/types.h @@ -48,6 +48,28 @@ namespace xmlpp { */ #define SERVER_LINK_VERSION (64+0) +/** A film of F seconds at f FPS will be Ff frames; + Consider some delta FPS d, so if we run the same + film at (f + d) FPS it will last F(f + d) seconds. + + Hence the difference in length over the length of the film will + be F(f + d) - Ff frames + = Ff + Fd - Ff frames + = Fd frames + = Fd/f seconds + + So if we accept a difference of 1 frame, ie 1/f seconds, we can + say that + + 1/f = Fd/f + ie 1 = Fd + ie d = 1/F + + So for a 3hr film, ie F = 3 * 60 * 60 = 10800, the acceptable + FPS error is 1/F ~= 0.0001 ~= 1e-4 +*/ +#define VIDEO_FRAME_RATE_EPSILON (1e-4) + typedef std::vector<boost::shared_ptr<Content> > ContentList; typedef std::vector<boost::shared_ptr<FFmpegContent> > FFmpegContentList; |
