summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/reel_asset.cc13
-rw-r--r--src/reel_asset.h2
-rw-r--r--src/reel_markers_asset.cc4
-rw-r--r--src/reel_markers_asset.h2
4 files changed, 12 insertions, 9 deletions
diff --git a/src/reel_asset.cc b/src/reel_asset.cc
index f9742628..6b6bdc0b 100644
--- a/src/reel_asset.cc
+++ b/src/reel_asset.cc
@@ -49,22 +49,25 @@ LIBDCP_DISABLE_WARNINGS
LIBDCP_ENABLE_WARNINGS
-using std::pair;
-using std::string;
using std::make_pair;
+using std::pair;
using std::shared_ptr;
+using std::string;
using boost::optional;
using namespace dcp;
-ReelAsset::ReelAsset (string id, Fraction edit_rate, int64_t intrinsic_duration, int64_t entry_point)
+ReelAsset::ReelAsset (string id, Fraction edit_rate, int64_t intrinsic_duration, optional<int64_t> entry_point)
: Object (id)
, _intrinsic_duration (intrinsic_duration)
- , _duration (intrinsic_duration - entry_point)
, _edit_rate (edit_rate)
, _entry_point (entry_point)
{
- DCP_ASSERT (_entry_point <= _intrinsic_duration);
+ if (_entry_point) {
+ _duration = intrinsic_duration - *_entry_point;
+ }
+
+ DCP_ASSERT (!_entry_point || *_entry_point <= _intrinsic_duration);
}
diff --git a/src/reel_asset.h b/src/reel_asset.h
index 200c49ff..6de7f1be 100644
--- a/src/reel_asset.h
+++ b/src/reel_asset.h
@@ -79,7 +79,7 @@ public:
* @param intrinsic_duration Intrinsic duration of this asset
* @param entry_point Entry point to use in that asset
*/
- ReelAsset (std::string id, Fraction edit_rate, int64_t intrinsic_duration, int64_t entry_point);
+ ReelAsset (std::string id, Fraction edit_rate, int64_t intrinsic_duration, boost::optional<int64_t> entry_point);
explicit ReelAsset (std::shared_ptr<const cxml::Node>);
diff --git a/src/reel_markers_asset.cc b/src/reel_markers_asset.cc
index 0dd3cf29..5a079071 100644
--- a/src/reel_markers_asset.cc
+++ b/src/reel_markers_asset.cc
@@ -54,8 +54,8 @@ using std::shared_ptr;
using namespace dcp;
-ReelMarkersAsset::ReelMarkersAsset (Fraction edit_rate, int64_t intrinsic_duration, int64_t entry_point)
- : ReelAsset (make_uuid(), edit_rate, intrinsic_duration, entry_point)
+ReelMarkersAsset::ReelMarkersAsset (Fraction edit_rate, int64_t intrinsic_duration)
+ : ReelAsset (make_uuid(), edit_rate, intrinsic_duration, {})
{
}
diff --git a/src/reel_markers_asset.h b/src/reel_markers_asset.h
index e3fbb962..df87dcce 100644
--- a/src/reel_markers_asset.h
+++ b/src/reel_markers_asset.h
@@ -48,7 +48,7 @@ namespace dcp {
class ReelMarkersAsset : public ReelAsset
{
public:
- ReelMarkersAsset (Fraction edit_rate, int64_t intrinsic_duration, int64_t entry_point);
+ ReelMarkersAsset (Fraction edit_rate, int64_t intrinsic_duration);
explicit ReelMarkersAsset (std::shared_ptr<const cxml::Node>);
xmlpp::Node* write_to_cpl (xmlpp::Node* node, Standard standard) const override;