Merge master.
[dcpomatic.git] / src / lib / player.h
index d83045ab12a6b8e84478be51188111240095f971..62ba89e6c6e783c2603a390f41d43d1583c079af 100644 (file)
@@ -31,6 +31,7 @@
 #include "dcpomatic_time.h"
 #include "content_subtitle.h"
 #include "position_image.h"
+#include "piece.h"
 
 class Job;
 class Film;
@@ -73,18 +74,26 @@ public:
        void dump (boost::shared_ptr<Log>) const;
 };
 
-class Piece
+/** A wrapper for an Image which contains some pending operations; these may
+ *  not be necessary if the receiver of the PlayerImage throws it away.
+ */
+class PlayerImage
 {
 public:
-       Piece (boost::shared_ptr<Content> c, boost::shared_ptr<Decoder> d, FrameRateChange f)
-               : content (c)
-               , decoder (d)
-               , frc (f)
-       {}
-
-       boost::shared_ptr<Content> content;
-       boost::shared_ptr<Decoder> decoder;
-       FrameRateChange frc;
+       PlayerImage (boost::shared_ptr<const Image>, Crop, dcp::Size, dcp::Size, Scaler const *);
+
+       void set_subtitle (boost::shared_ptr<const Image>, Position<int>);
+       
+       boost::shared_ptr<Image> image ();
+       
+private:
+       boost::shared_ptr<const Image> _in;
+       Crop _crop;
+       dcp::Size _inter_size;
+       dcp::Size _out_size;
+       Scaler const * _scaler;
+       boost::shared_ptr<const Image> _subtitle_image;
+       Position<int> _subtitle_position;
 };
 
 /** @class Player