diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/reel_asset.cc | 13 | ||||
| -rw-r--r-- | src/reel_asset.h | 2 | ||||
| -rw-r--r-- | src/reel_markers_asset.cc | 4 | ||||
| -rw-r--r-- | src/reel_markers_asset.h | 2 |
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; |
