diff options
| -rw-r--r-- | src/dcp.cc | 4 | ||||
| -rw-r--r-- | test/dcp_test.cc | 25 |
2 files changed, 27 insertions, 2 deletions
@@ -505,7 +505,7 @@ DCP::write_xml( /* The assets may have changed since we read the PKL, so re-add them */ pkl->clear_assets(); - for (auto asset: assets()) { + for (auto asset: assets(true)) { asset->add_to_pkl(pkl, _directory); } @@ -527,7 +527,7 @@ DCP::write_xml( /* The assets may have changed since we read the asset map, so re-add them */ _asset_map->clear_assets(); _asset_map->add_asset(pkl->id(), _directory / pkl_filename, true); - for (auto asset: assets()) { + for (auto asset: assets(true)) { asset->add_to_assetmap(*_asset_map, _directory); } diff --git a/test/dcp_test.cc b/test/dcp_test.cc index d0185d76..e4ffab55 100644 --- a/test/dcp_test.cc +++ b/test/dcp_test.cc @@ -545,3 +545,28 @@ BOOST_AUTO_TEST_CASE(hashes_preserved_when_loading_corrupted_dcp) */ BOOST_CHECK_EQUAL(reel->main_picture()->asset_ref()->hash(), new_hash); } + + +BOOST_AUTO_TEST_CASE(can_write_vf_xml) +{ + auto dcp = dcp::DCP("build/test/can_write_vf_xml"); + auto cpl = std::make_shared<dcp::CPL>("annotate", dcp::ContentKind::FEATURE, dcp::Standard::SMPTE); + auto picture = std::make_shared<dcp::ReelMonoPictureAsset>( + simple_picture("build/test/can_write_vf_xml", ""), + 0 + ); + auto sound = std::make_shared<dcp::ReelSoundAsset>( + dcp::make_uuid(), dcp::Fraction(24, 1), 24, 0, boost::none, boost::none + ); + auto reel = std::make_shared<dcp::Reel>( + picture, + sound, + std::shared_ptr<dcp::ReelTextAsset>(), + std::shared_ptr<dcp::ReelMarkersAsset>(), + std::shared_ptr<dcp::ReelAtmosAsset>() + ); + cpl->add(reel); + dcp.add(cpl); + dcp.write_xml(); +} + |
