Some comments.
[libdcp.git] / src / picture_asset.h
index cccea0f33dfaf527f4bcc8e62809e27de04d3456..f2c4bb34d3adfbc0c9d5c6491f5083672c127e3f 100644 (file)
  *  @brief An asset made up of JPEG2000 files
  */
 
-#include "asset.h"
+#include <openjpeg.h>
+#include "mxf_asset.h"
 
 namespace libdcp
 {
 
+class PictureFrame;    
+
 /** @brief An asset made up of JPEG2000 files */
-class PictureAsset : public Asset
+class PictureAsset : public MXFAsset
 {
 public:
        /** Construct a PictureAsset, generating the MXF from the JPEG2000 files.
@@ -74,18 +77,29 @@ public:
                int height
                );
 
-       PictureAsset (std::string directory, std::string mxf_name, int fps, int length, int width, int height);
+       PictureAsset (std::string directory, std::string mxf_name, int fps, int length);
        
        /** Write details of this asset to a CPL stream.
         *  @param s Stream.
         */
        void write_to_cpl (std::ostream& s) const;
 
-       std::list<std::string> equals (boost::shared_ptr<const Asset> other, EqualityFlags flags) const;
+       std::list<std::string> equals (boost::shared_ptr<const Asset> other, EqualityOptions opt) const;
+
+       boost::shared_ptr<const PictureFrame> get_frame (int n) const;
+
+       int width () const {
+               return _width;
+       }
+
+       int height () const {
+               return _height;
+       }
        
 private:
        std::string path_from_list (int f, std::vector<std::string> const & files) const;
        void construct (sigc::slot<std::string, int>);
+       opj_image_t* decompress_j2k (uint8_t* data, int64_t size) const;
        
        /** picture width in pixels */
        int _width;