summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2022-03-24 00:41:32 +0100
committerCarl Hetherington <cth@carlh.net>2022-03-24 00:41:32 +0100
commitbc6ef3ae7644c256e2339366e5aa14c4fa4bbee4 (patch)
tree2bf418ab859d9c11b433f55549c26cbae3b3631e /src
parent066e30f30f851396bd6f10d50a448507e1c0b392 (diff)
Remove <EntryPoint> and <Duration> from <ReelMarkerAsset> tags.
They should not be there: "EntryPoint" ... "This element shall only be present when the Asset refers to an external resource such as a Track File". Fixes DoM bug #2215.
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;