Merge master.
[dcpomatic.git] / src / lib / types.h
index d4d66387d0c5c17c08183b1f04aecfe6ce2cebff..dafea92f83948faba000c4391be42b169aaecf7a 100644 (file)
 #include <vector>
 #include <stdint.h>
 #include <boost/shared_ptr.hpp>
-#include <libdcp/util.h>
+#include <dcp/util.h>
+#include "dcpomatic_time.h"
 
 class Content;
+class VideoContent;
+class AudioContent;
+class SubtitleContent;
+class FFmpegContent;
 class AudioBuffers;
 
 /** The version number of the protocol used to communicate
@@ -34,33 +39,32 @@ class AudioBuffers;
  */
 #define SERVER_LINK_VERSION 1
 
-typedef int64_t Time;
-#define TIME_MAX INT64_MAX
-#define TIME_HZ         ((Time) 96000)
-typedef int64_t OutputAudioFrame;
-typedef int    OutputVideoFrame;
 typedef std::vector<boost::shared_ptr<Content> > ContentList;
+typedef std::vector<boost::shared_ptr<VideoContent> > VideoContentList;
+typedef std::vector<boost::shared_ptr<AudioContent> > AudioContentList;
+typedef std::vector<boost::shared_ptr<SubtitleContent> > SubtitleContentList;
+typedef std::vector<boost::shared_ptr<FFmpegContent> > FFmpegContentList;
 
-template<class T>
 struct TimedAudioBuffers
 {
        TimedAudioBuffers ()
                : time (0)
        {}
        
-       TimedAudioBuffers (boost::shared_ptr<AudioBuffers> a, T t)
+       TimedAudioBuffers (boost::shared_ptr<AudioBuffers> a, DCPTime t)
                : audio (a)
                , time (t)
        {}
        
        boost::shared_ptr<AudioBuffers> audio;
-       T time;
+       DCPTime time;
 };
 
 enum VideoFrameType
 {
        VIDEO_FRAME_TYPE_2D,
-       VIDEO_FRAME_TYPE_3D_LEFT_RIGHT
+       VIDEO_FRAME_TYPE_3D_LEFT_RIGHT,
+       VIDEO_FRAME_TYPE_3D_TOP_BOTTOM
 };
 
 enum Eyes
@@ -88,7 +92,7 @@ struct Crop
        /** Number of pixels to remove from the bottom */
        int bottom;
 
-       libdcp::Size apply (libdcp::Size s, int minimum = 4) const {
+       dcp::Size apply (dcp::Size s, int minimum = 4) const {
                s.width -= left + right;
                s.height -= top + bottom;