Merge master.
[dcpomatic.git] / src / lib / types.h
index 42344cae543b8d380a5ccdc275b53816c4e79a69..35c7a91f9785865e1dada8d2449fa725f4149ae4 100644 (file)
@@ -24,6 +24,8 @@
 #include <stdint.h>
 #include <boost/shared_ptr.hpp>
 #include <dcp/util.h>
+#include "dcpomatic_time.h"
+#include "position.h"
 
 class Content;
 class VideoContent;
@@ -44,27 +46,35 @@ 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>
+typedef int64_t VideoFrame;
+typedef int64_t AudioFrame;
+
+/* XXX -> DCPAudio */
 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_TOP_BOTTOM
+       VIDEO_FRAME_TYPE_3D_TOP_BOTTOM,
+       VIDEO_FRAME_TYPE_3D_ALTERNATE,
+       /** This content is all the left frames of some 3D */
+       VIDEO_FRAME_TYPE_3D_LEFT,
+       /** This content is all the right frames of some 3D */
+       VIDEO_FRAME_TYPE_3D_RIGHT
 };
 
 enum Eyes