summaryrefslogtreecommitdiff
path: root/src/lib/types.h
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2016-06-01 22:45:58 +0100
committerCarl Hetherington <cth@carlh.net>2016-06-01 22:45:58 +0100
commit6a18a737ef8dfbfbe909afe8266f104a2125b5fb (patch)
treec244025af0ae2a8866f5a15941ea4055954bd3ae /src/lib/types.h
parent7a0c2256cbf94d2434ba6e7485517df0a7f894af (diff)
Store video frame rate in XML (#883).
Diffstat (limited to 'src/lib/types.h')
-rw-r--r--src/lib/types.h22
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;