diff options
| author | Carl Hetherington <cth@carlh.net> | 2026-02-07 22:02:49 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2026-02-07 22:02:49 +0100 |
| commit | 06114a4f18591f31a9f8531d04b0e787b96a1e83 (patch) | |
| tree | aa1e5f23a340de4793625b13d02af78e27f5ba20 | |
| parent | cf35ff2053dbf6b6de4f2e5bfcecbcfda3b48dc5 (diff) | |
Add use-type to ReusableReelAsset.
| -rw-r--r-- | src/lib/reusable_reel_asset.cc | 2 | ||||
| -rw-r--r-- | src/lib/reusable_reel_asset.h | 14 | ||||
| -rw-r--r-- | test/vf_test.cc | 6 |
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))); |
