class FrameBuffer;
class SFrameBuffer;
}
+ class AESDecContext;
}
namespace libdcp {
class ARGBFrame;
+/** A single frame of a 2D (monoscopic) picture asset */
class MonoPictureFrame
{
public:
- MonoPictureFrame (std::string mxf_path, int n);
+ MonoPictureFrame (std::string mxf_path, int n, ASDCP::AESDecContext *);
~MonoPictureFrame ();
- boost::shared_ptr<ARGBFrame> argb_frame () const;
+ boost::shared_ptr<ARGBFrame> argb_frame (int reduce = 0, float srgb_gamma = 2.4) const;
+ uint8_t const * j2k_data () const;
+ int j2k_size () const;
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<ARGBFrame> argb_frame (Eye eye) const;
+ boost::shared_ptr<ARGBFrame> argb_frame (Eye eye, int reduce = 0, float srgb_gamma = 2.4) const;
+ uint8_t const * left_j2k_data () const;
+ int left_j2k_size () const;
+ uint8_t const * right_j2k_data () const;
+ int right_j2k_size () const;
private:
ASDCP::JP2K::SFrameBuffer* _buffer;