X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fpicture_frame.h;h=ad51abed2e233500b5cb1f5ef36a000c4c7b101d;hb=4aed3e564381267a36d8707b80f35cafba39fa98;hp=b7eb5ff16bb9c149e5c0082d69720e63331974a1;hpb=037dac07bd93565978eb3b3265332a5be4e5e30a;p=libdcp.git diff --git a/src/picture_frame.h b/src/picture_frame.h index b7eb5ff1..ad51abed 100644 --- a/src/picture_frame.h +++ b/src/picture_frame.h @@ -19,26 +19,50 @@ #include #include +#include +#include "types.h" namespace ASDCP { namespace JP2K { class FrameBuffer; + class SFrameBuffer; } } namespace libdcp { -class PictureFrame +class ARGBFrame; + +/** A single frame of a 2D (monoscopic) picture asset */ +class MonoPictureFrame { public: - PictureFrame (std::string mxf_path, int n); - ~PictureFrame (); + MonoPictureFrame (std::string mxf_path, int n); + ~MonoPictureFrame (); - uint8_t const * data () const; - int size () const; + boost::shared_ptr argb_frame (int reduce = 0) const; + ASDCP::JP2K::FrameBuffer* j2k_frame () const { + return _buffer; + } private: ASDCP::JP2K::FrameBuffer* _buffer; }; +/** A single frame of a 3D (stereoscopic) picture asset */ +class StereoPictureFrame +{ +public: + StereoPictureFrame (std::string mxf_path, int n); + ~StereoPictureFrame (); + + boost::shared_ptr argb_frame (Eye eye, int reduce = 0) const; + ASDCP::JP2K::SFrameBuffer* j2k_frame () const { + return _buffer; + } + +private: + ASDCP::JP2K::SFrameBuffer* _buffer; +}; + }