From 61130610f6d01fe6b1682d91933eb7dbbb1eac76 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 12 May 2024 15:38:31 +0200 Subject: Update DCP encoder progress on all passe()es, not just when audio is emitted. --- src/lib/dcp_encoder.cc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/lib/dcp_encoder.cc') diff --git a/src/lib/dcp_encoder.cc b/src/lib/dcp_encoder.cc index c7ee180e1..a4bc133f8 100644 --- a/src/lib/dcp_encoder.cc +++ b/src/lib/dcp_encoder.cc @@ -107,7 +107,14 @@ DCPEncoder::go () _writer.write(_player.get_subtitle_fonts()); } - while (!_player.pass()) {} + int passes = 0; + while (!_player.pass()) { + if ((++passes % 8) == 0) { + auto job = _job.lock(); + DCPOMATIC_ASSERT(job); + job->set_progress(_player.progress()); + } + } for (auto i: get_referenced_reel_assets(_film, _film->playlist())) { _writer.write(i); @@ -128,10 +135,6 @@ void DCPEncoder::audio (shared_ptr data, DCPTime time) { _writer.write(data, time); - - auto job = _job.lock (); - DCPOMATIC_ASSERT (job); - job->set_progress (float(time.get()) / _film->length().get()); } void -- cgit v1.2.3