X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fwriter.cc;h=954c135d3a90d4e43fcfa0e4e3b34ea4b81320e0;hp=b749968a7c79f4388ea17c8de0b00444835b172a;hb=f37c1e40dcd5186c5aee95a4b0e6607c1b0045e4;hpb=3b137ece1ab4bffe4c959047972c5d1317f8a79c diff --git a/src/lib/writer.cc b/src/lib/writer.cc index b749968a7..954c135d3 100644 --- a/src/lib/writer.cc +++ b/src/lib/writer.cc @@ -54,13 +54,9 @@ using std::cout; using std::dynamic_pointer_cast; -using std::list; -using std::make_pair; using std::make_shared; -using std::map; using std::max; using std::min; -using std::pair; using std::shared_ptr; using std::string; using std::vector; @@ -546,7 +542,7 @@ Writer::calculate_digests () pool.create_thread (boost::bind (&boost::asio::io_service::run, &service)); } - boost::function set_progress; + std::function set_progress; if (job) { set_progress = boost::bind (&Writer::set_digest_progress, this, job.get(), _1); } else { @@ -624,12 +620,18 @@ Writer::finish (boost::filesystem::path output_dcp) issuer = String::compose("DCP-o-matic %1 %2", dcpomatic_version, dcpomatic_git_commit); } + cpl->set_creator (creator); + cpl->set_issuer (issuer); + cpl->set_ratings (film()->ratings()); vector cv; for (auto i: film()->content_versions()) { cv.push_back (dcp::ContentVersion(i)); } + if (cv.empty()) { + cv = { dcp::ContentVersion("1") }; + } cpl->set_content_versions (cv); cpl->set_full_content_title_text (film()->name()); @@ -651,6 +653,9 @@ Writer::finish (boost::filesystem::path output_dcp) if (film()->luminance()) { cpl->set_luminance (*film()->luminance()); } + if (film()->sign_language_video_language()) { + cpl->set_sign_language_video_language (*film()->sign_language_video_language()); + } auto ac = film()->mapped_audio_channels(); dcp::MCASoundField field = ( @@ -687,14 +692,11 @@ Writer::finish (boost::filesystem::path output_dcp) throw InvalidSignerError (reason); } - dcp.write_xml ( - issuer, - creator, - dcp::LocalTime().as_string(), - film()->dcp_name(), - signer, - Config::instance()->dcp_metadata_filename_format() - ); + dcp.set_issuer(issuer); + dcp.set_creator(creator); + dcp.set_annotation_text(film()->dcp_name()); + + dcp.write_xml (signer, Config::instance()->dcp_metadata_filename_format()); LOG_GENERAL ( N_("Wrote %1 FULL, %2 FAKE, %3 REPEAT, %4 pushed to disk"), _full_written, _fake_written, _repeat_written, _pushed_to_disk @@ -718,9 +720,9 @@ Writer::write_cover_sheet (boost::filesystem::path output_dcp) boost::algorithm::replace_all (text, "$TYPE", film()->dcp_content_type()->pretty_name()); boost::algorithm::replace_all (text, "$CONTAINER", film()->container()->container_nickname()); - auto audio_languages = film()->audio_languages(); - if (!audio_languages.empty()) { - boost::algorithm::replace_all (text, "$AUDIO_LANGUAGE", audio_languages.front().description()); + auto audio_language = film()->audio_language(); + if (audio_language) { + boost::algorithm::replace_all (text, "$AUDIO_LANGUAGE", audio_language->description()); } else { boost::algorithm::replace_all (text, "$AUDIO_LANGUAGE", _("None")); } @@ -948,7 +950,7 @@ Writer::set_digest_progress (Job* job, float progress) /** Calculate hashes for any referenced MXF assets which do not already have one */ void -Writer::calculate_referenced_digests (boost::function set_progress) +Writer::calculate_referenced_digests (std::function set_progress) try { for (auto const& i: _reel_assets) {