Tweak comment.
[libdcp.git] / src / picture_asset.h
index 2f3c7cdf0aa19fe7f34018e9ea2236820bed5095..41b09b58c4b532529b37515e44d6fd429b9f9cdf 100644 (file)
@@ -21,6 +21,7 @@
  *  @brief An asset made up of JPEG2000 files
  */
 
+#include <openjpeg.h>
 #include "asset.h"
 
 namespace libdcp
@@ -33,7 +34,8 @@ public:
        /** Construct a PictureAsset, generating the MXF from the JPEG2000 files.
         *  This may take some time; progress is indicated by emission of the Progress signal.
         *  @param files Pathnames of JPEG2000 files, in frame order.
-        *  @param mxf_path Pathname of MXF file to create.
+        *  @param directory Directory in which to create MXF file.
+        *  @param mxf_name Name of MXF file to create.
         *  @param progress Signal to inform of progress.
         *  @param fps Frames per second.
         *  @param length Length in frames.
@@ -41,8 +43,9 @@ public:
         *  @param height Height of images in pixels.
         */
        PictureAsset (
-               std::list<std::string> const & files,
-               std::string mxf_path,
+               std::vector<std::string> const & files,
+               std::string directory,
+               std::string mxf_name,
                sigc::signal1<void, float>* progress,
                int fps,
                int length,
@@ -50,12 +53,42 @@ public:
                int height
                );
 
+       /** Construct a PictureAsset, generating the MXF from the JPEG2000 files.
+        *  This may take some time; progress is indicated by emission of the Progress signal.
+        *  @param get_path Functor which returns a JPEG2000 file path for a given frame (frames counted from 0).
+        *  @param directory Directory in which to create MXF file.
+        *  @param mxf_name Name of MXF file to create.
+        *  @param progress Signal to inform of progress.
+        *  @param fps Frames per second.
+        *  @param length Length in frames.
+        *  @param width Width of images in pixels.
+        *  @param height Height of images in pixels.
+        */
+       PictureAsset (
+               sigc::slot<std::string, int> get_path,
+               std::string directory,
+               std::string mxf_name,
+               sigc::signal1<void, float>* progress,
+               int fps,
+               int length,
+               int width,
+               int height
+               );
+
+       PictureAsset (std::string directory, std::string mxf_name, int fps, int length, int width, int height);
+       
        /** 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, EqualityOptions opt) const;
+       
 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;
        /** picture height in pixels */