X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fpicture_frame.h;h=ad51abed2e233500b5cb1f5ef36a000c4c7b101d;hb=147cbe31f62fd6087a9a70f0ce2cd4a69b06dbbf;hp=4d359335a4e3c3dd668498c827741b56b9315cde;hpb=f6ee90107839e0d750d8678b67c9d6d1d596d739;p=libdcp.git diff --git a/src/picture_frame.h b/src/picture_frame.h index 4d359335..ad51abed 100644 --- a/src/picture_frame.h +++ b/src/picture_frame.h @@ -19,20 +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; +}; + }