Merge branch 'master' of ssh://carlh.dnsalias.org/home/carl/git/libdcp
[libdcp.git] / src / picture_frame.h
index 4d359335a4e3c3dd668498c827741b56b9315cde..ad51abed2e233500b5cb1f5ef36a000c4c7b101d 100644 (file)
 
 #include <string>
 #include <stdint.h>
+#include <boost/shared_ptr.hpp>
+#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<ARGBFrame> 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<ARGBFrame> argb_frame (Eye eye, int reduce = 0) const;
+       ASDCP::JP2K::SFrameBuffer* j2k_frame () const {
+               return _buffer;
+       }
+
+private:
+       ASDCP::JP2K::SFrameBuffer* _buffer;
+};
+
 }