summaryrefslogtreecommitdiff
path: root/src/lib/reel_writer.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2025-12-31 21:11:46 +0100
committerCarl Hetherington <cth@carlh.net>2025-12-31 21:26:43 +0100
commit1289b316fb067f4e2f71485306ea25af6b4d81b9 (patch)
treec06b2adaf4f6939340daec9fec46107ed9738936 /src/lib/reel_writer.cc
parentf833a0c5f4c4cf61c2e9cdc83b867160541b704f (diff)
Use copy_in_bits to allow progress reporting when copying a big asset.
Diffstat (limited to 'src/lib/reel_writer.cc')
-rw-r--r--src/lib/reel_writer.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lib/reel_writer.cc b/src/lib/reel_writer.cc
index dddacd893..dacaf3a25 100644
--- a/src/lib/reel_writer.cc
+++ b/src/lib/reel_writer.cc
@@ -190,7 +190,12 @@ ReelWriter::ReelWriter(
/* XXX: what about if the encryption key changes? */
auto new_asset_filename = _output_dir / existing_asset_filename->filename();
if (new_asset_filename != *existing_asset_filename) {
- dcp::filesystem::copy(*existing_asset_filename, new_asset_filename);
+ if (job) {
+ job->sub(_("Copying existing asset"));
+ copy_in_bits(*existing_asset_filename, new_asset_filename, boost::bind(&Job::set_progress, job.get(), _1, false));
+ } else {
+ dcp::filesystem::copy(*existing_asset_filename, new_asset_filename);
+ }
remembered_assets.push_back(RememberedAsset(new_asset_filename, period, film()->video_identifier()));
}
film()->write_remembered_assets(remembered_assets);