Provide more details on failure to load xmlsec-crypto.
[libdcp.git] / src / reel_asset.h
index 9f02423903cac215e8cc7eb9e0300f9895901f46..072d55fd4edf8654d031d5b7fc913be8706e4586 100644 (file)
@@ -65,7 +65,7 @@ class Asset;
 class ReelAsset : public Object
 {
 public:
-       ReelAsset (boost::shared_ptr<Asset> asset, Fraction edit_rate, int64_t intrinsic_duration, int64_t entry_point);
+       ReelAsset (std::string id, Fraction edit_rate, int64_t intrinsic_duration, int64_t entry_point);
        explicit ReelAsset (boost::shared_ptr<const cxml::Node>);
 
        virtual xmlpp::Node* write_to_cpl (xmlpp::Node* node, Standard standard) const = 0;
@@ -82,7 +82,7 @@ public:
                _entry_point = e;
        }
 
-       int64_t entry_point () const {
+       boost::optional<int64_t> entry_point () const {
                return _entry_point;
        }
 
@@ -90,10 +90,12 @@ public:
                _duration = d;
        }
 
-       int64_t duration () const {
+       boost::optional<int64_t> duration () const {
                return _duration;
        }
 
+       int64_t actual_duration () const;
+
        std::string annotation_text () const {
                return _annotation_text;
        }
@@ -119,12 +121,13 @@ protected:
 
        xmlpp::Node* write_to_cpl_base (xmlpp::Node* node, Standard standard, boost::optional<std::string> hash) const;
 
+       int64_t _intrinsic_duration;           ///< The &lt;IntrinsicDuration&gt; from the reel's entry for this asset
+       boost::optional<int64_t> _duration;    ///< The &lt;Duration&gt; from the reel's entry for this asset, if present
+
 private:
-       std::string _annotation_text; ///< The &lt;AnnotationText&gt; from the reel's entry for this asset
-       Fraction _edit_rate;          ///< The &lt;EditRate&gt; from the reel's entry for this asset
-       int64_t _intrinsic_duration;  ///< The &lt;IntrinsicDuration&gt; from the reel's entry for this asset
-       int64_t _entry_point;         ///< The &lt;EntryPoint&gt; from the reel's entry for this asset
-       int64_t _duration;            ///< The &lt;Duration&gt; from the reel's entry for this asset
+       std::string _annotation_text;          ///< The &lt;AnnotationText&gt; from the reel's entry for this asset
+       Fraction _edit_rate;                   ///< The &lt;EditRate&gt; from the reel's entry for this asset
+       boost::optional<int64_t> _entry_point; ///< The &lt;EntryPoint&gt; from the reel's entry for this asset
 };
 
 }