X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fdcp_video_frame.h;h=18c8fe628a20e2c1cabb5892ed9bed0d9b615482;hb=74a8d26a8907c6e00e29f054178a3425f44e38ed;hp=f234b445abe00f9ba8cd169d1971b95882a76709;hpb=a183c1776cfd020a37d028ebb0f641352f49697b;p=dcpomatic.git diff --git a/src/lib/dcp_video_frame.h b/src/lib/dcp_video_frame.h index f234b445a..18c8fe628 100644 --- a/src/lib/dcp_video_frame.h +++ b/src/lib/dcp_video_frame.h @@ -20,6 +20,7 @@ #include #include +#include #include "util.h" /** @file src/dcp_video_frame.h @@ -36,7 +37,7 @@ class Subtitle; /** @class EncodedData * @brief Container for J2K-encoded data. */ -class EncodedData +class EncodedData : public boost::noncopyable { public: /** @param s Size of data, in bytes */ @@ -47,8 +48,8 @@ public: virtual ~EncodedData (); void send (boost::shared_ptr socket); - void write (boost::shared_ptr, int) const; - void write_info (boost::shared_ptr, int, libdcp::FrameInfo) const; + void write (boost::shared_ptr, int, Eyes) const; + void write_info (boost::shared_ptr, int, Eyes, libdcp::FrameInfo) const; /** @return data */ uint8_t* data () const { @@ -62,11 +63,7 @@ public: protected: uint8_t* _data; ///< data - int _size; ///< data size in bytes - -private: - /* No copy construction */ - EncodedData (EncodedData const &); + int _size; ///< data size in bytes }; /** @class LocallyEncodedData @@ -102,33 +99,28 @@ public: * Objects of this class are used for the queue that we keep * of images that require encoding. */ -class DCPVideoFrame +class DCPVideoFrame : public boost::noncopyable { public: - DCPVideoFrame (boost::shared_ptr, int, int, int, int, boost::shared_ptr); - ~DCPVideoFrame (); + DCPVideoFrame (boost::shared_ptr, int, Eyes, int, int, boost::shared_ptr); boost::shared_ptr encode_locally (); - boost::shared_ptr encode_remotely (ServerDescription const *); + boost::shared_ptr encode_remotely (boost::shared_ptr); + Eyes eyes () const { + return _eyes; + } + int frame () const { return _frame; } private: - void create_openjpeg_container (); - boost::shared_ptr _image; - int _frame; ///< frame index within the DCP's intrinsic duration - int _frames_per_second; ///< Frames per second that we will use for the DCP - int _colour_lut; ///< Colour look-up table to use - int _j2k_bandwidth; ///< J2K bandwidth to use + int _frame; ///< frame index within the DCP's intrinsic duration + Eyes _eyes; + int _frames_per_second; ///< Frames per second that we will use for the DCP + int _j2k_bandwidth; ///< J2K bandwidth to use boost::shared_ptr _log; ///< log - - opj_image_cmptparm_t _cmptparm[3]; ///< libopenjpeg's opj_image_cmptparm_t - opj_image* _opj_image; ///< libopenjpeg's image container - opj_cparameters_t* _parameters; ///< libopenjpeg's parameters - opj_cinfo_t* _cinfo; ///< libopenjpeg's opj_cinfo_t - opj_cio_t* _cio; ///< libopenjpeg's opj_cio_t };