summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2026-02-07 22:02:49 +0100
committerCarl Hetherington <cth@carlh.net>2026-02-07 22:02:49 +0100
commit06114a4f18591f31a9f8531d04b0e787b96a1e83 (patch)
treeaa1e5f23a340de4793625b13d02af78e27f5ba20
parentcf35ff2053dbf6b6de4f2e5bfcecbcfda3b48dc5 (diff)
Add use-type to ReusableReelAsset.
-rw-r--r--src/lib/reusable_reel_asset.cc2
-rw-r--r--src/lib/reusable_reel_asset.h14
-rw-r--r--test/vf_test.cc6
3 files changed, 16 insertions, 6 deletions
diff --git a/src/lib/reusable_reel_asset.cc b/src/lib/reusable_reel_asset.cc
index 06471010c..14058906a 100644
--- a/src/lib/reusable_reel_asset.cc
+++ b/src/lib/reusable_reel_asset.cc
@@ -50,7 +50,7 @@ maybe_add_asset(list<ReusableReelAsset>& a, shared_ptr<dcp::ReelAsset> r, Frame
r->set_duration (r->actual_duration() - reel_trim_start - reel_trim_end);
if (r->actual_duration() > 0) {
a.push_back (
- ReusableReelAsset(r, DCPTimePeriod(from, from + DCPTime::from_frames(r->actual_duration(), ffr)))
+ ReusableReelAsset(r, DCPTimePeriod(from, from + DCPTime::from_frames(r->actual_duration(), ffr)), ReusableReelAsset::Use::REFERENCE)
);
}
}
diff --git a/src/lib/reusable_reel_asset.h b/src/lib/reusable_reel_asset.h
index 0ad4d0799..ad0378c41 100644
--- a/src/lib/reusable_reel_asset.h
+++ b/src/lib/reusable_reel_asset.h
@@ -34,15 +34,23 @@ class Playlist;
class ReusableReelAsset
{
public:
- ReusableReelAsset (std::shared_ptr<dcp::ReelAsset> asset_, dcpomatic::DCPTimePeriod period_)
- : asset (asset_)
- , period (period_)
+ enum class Use {
+ REFERENCE,
+ COPY
+ };
+
+ ReusableReelAsset(std::shared_ptr<dcp::ReelAsset> asset_, dcpomatic::DCPTimePeriod period_, Use use_)
+ : asset(asset_)
+ , period(period_)
+ , use(use_)
{}
/** The asset */
std::shared_ptr<dcp::ReelAsset> asset;
/** Period that this asset covers in the DCP */
dcpomatic::DCPTimePeriod period;
+ /** How this asset is used - referred to or copied */
+ Use use;
};
diff --git a/test/vf_test.cc b/test/vf_test.cc
index cafd5fe90..af3740f0b 100644
--- a/test/vf_test.cc
+++ b/test/vf_test.cc
@@ -266,9 +266,11 @@ BOOST_AUTO_TEST_CASE(vf_test5)
make_and_verify_dcp(vf, {dcp::VerificationNote::Code::EXTERNAL_ASSET}, false);
/* Check that the selected reel assets are right */
- BOOST_REQUIRE_EQUAL(a.size(), 4U);
- auto i = a.begin();
auto a = get_reusable_reel_assets(vf, vf->playlist());
+ vector<ReusableReelAsset> b;
+ std::copy_if(a.begin(), a.end(), back_inserter(b), [](ReusableReelAsset const& asset) { return asset.use == ReusableReelAsset::Use::REFERENCE; });
+ BOOST_REQUIRE_EQUAL(b.size(), 4U);
+ auto i = b.begin();
BOOST_CHECK(i->period == DCPTimePeriod(DCPTime(0), DCPTime(960000)));
++i;
BOOST_CHECK(i->period == DCPTimePeriod(DCPTime(0), DCPTime(960000)));