Untested merge of master.
[dcpomatic.git] / src / lib / video_source.h
index e7c9805ef613d527d00f374d141b475ab36d9b4e..d2aa045a715e858fa8854fc22a2ccda098aa7908 100644 (file)
 #include "util.h"
 
 class VideoSink;
+class TimedVideoSink;
 class Subtitle;
 class Image;
 
 /** @class VideoSource
- *  @param A class that emits video data.
+ *  @param A class that emits video data without timestamps.
  */
 class VideoSource
 {
@@ -49,4 +50,22 @@ public:
        void connect_video (boost::shared_ptr<VideoSink>);
 };
 
+/** @class TimedVideoSource
+ *  @param A class that emits video data with timestamps.
+ */
+class TimedVideoSource
+{
+public:
+
+       /** Emitted when a video frame is ready.
+        *  First parameter is the video image.
+        *  Second parameter is true if the image is the same as the last one that was emitted.
+        *  Third parameter is either 0 or a subtitle that should be on this frame.
+        *  Fourth parameter is the source timestamp of this frame.
+        */
+       boost::signals2::signal<void (boost::shared_ptr<Image>, bool, boost::shared_ptr<Subtitle>, double)> Video;
+
+       void connect_video (boost::shared_ptr<TimedVideoSink>);
+};
+
 #endif