Merge master.
[dcpomatic.git] / src / lib / player_video_frame.h
index 51ec7664f8c60afc084d47d98cdb234e0f5ac66b..225b0a4bafe43c8dee4be008b8e5bdb5b519fb1b 100644 (file)
 #include <boost/shared_ptr.hpp>
 #include "types.h"
 #include "position.h"
+#include "colour_conversion.h"
+#include "position_image.h"
 
 class Image;
+class ImageProxy;
 class Scaler;
+class Socket;
 
 /** Everything needed to describe a video frame coming out of the player, but with the
  *  bits still their raw form.  We may want to combine the bits on a remote machine,
@@ -31,18 +35,32 @@ class Scaler;
 class PlayerVideoFrame
 {
 public:
-       PlayerVideoFrame (boost::shared_ptr<const Image>, Crop, libdcp::Size, libdcp::Size, Scaler const *);
+       PlayerVideoFrame (boost::shared_ptr<const ImageProxy>, Crop, dcp::Size, dcp::Size, Scaler const *, Eyes, Part, ColourConversion);
+       PlayerVideoFrame (boost::shared_ptr<cxml::Node>, boost::shared_ptr<Socket>);
 
-       void set_subtitle (boost::shared_ptr<const Image>, Position<int>);
+       void set_subtitle (PositionImage);
        
-       boost::shared_ptr<Image> image ();
+       boost::shared_ptr<Image> image () const;
+
+       void add_metadata (xmlpp::Node* node) const;
+       void send_binary (boost::shared_ptr<Socket> socket) const;
+
+       Eyes eyes () const {
+               return _eyes;
+       }
+
+       ColourConversion colour_conversion () const {
+               return _colour_conversion;
+       }
 
 private:
-       boost::shared_ptr<const Image> _in;
+       boost::shared_ptr<const ImageProxy> _in;
        Crop _crop;
-       libdcp::Size _inter_size;
-       libdcp::Size _out_size;
+       dcp::Size _inter_size;
+       dcp::Size _out_size;
        Scaler const * _scaler;
-       boost::shared_ptr<const Image> _subtitle_image;
-       Position<int> _subtitle_position;
+       Eyes _eyes;
+       Part _part;
+       ColourConversion _colour_conversion;
+       PositionImage _subtitle;
 };