-typedef int64_t Time;
-#define TIME_MAX INT64_MAX
-#define TIME_HZ ((Time) 96000)
-typedef int64_t OutputAudioFrame;
-typedef int OutputVideoFrame;
+/** The version number of the protocol used to communicate
+ * with servers. Intended to be bumped when incompatibilities
+ * are introduced.
+ */
+#define SERVER_LINK_VERSION 1
+
+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;
+
+struct TimedAudioBuffers
+{
+ TimedAudioBuffers ()
+ : time (0)
+ {}
+
+ TimedAudioBuffers (boost::shared_ptr<AudioBuffers> a, DCPTime t)
+ : audio (a)
+ , time (t)
+ {}
+
+ boost::shared_ptr<AudioBuffers> audio;
+ DCPTime time;
+};
+
+enum VideoFrameType
+{
+ VIDEO_FRAME_TYPE_2D,
+ VIDEO_FRAME_TYPE_3D_LEFT_RIGHT,
+ VIDEO_FRAME_TYPE_3D_TOP_BOTTOM,
+ VIDEO_FRAME_TYPE_3D_ALTERNATE
+};
+
+enum Eyes
+{
+ EYES_BOTH,
+ EYES_LEFT,
+ EYES_RIGHT,
+ EYES_COUNT
+};