From 5579acd7ff7e1460f0b5bb54a4deedbd356153cd Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 5 May 2020 15:08:50 +0200 Subject: [PATCH] Write 'f', 'b' and 'e' tags into all KDMWithMetadata when they are made. --- src/tools/dcpomatic_kdm.cc | 22 +++++++++++++++++----- src/tools/dcpomatic_kdm_cli.cc | 27 +++++++++++++++++---------- src/wx/kdm_dialog.cc | 12 +++++++++--- src/wx/kdm_output_panel.cc | 5 +---- src/wx/kdm_output_panel.h | 1 - 5 files changed, 44 insertions(+), 23 deletions(-) diff --git a/src/tools/dcpomatic_kdm.cc b/src/tools/dcpomatic_kdm.cc index dd45401cb..7920f7e57 100644 --- a/src/tools/dcpomatic_kdm.cc +++ b/src/tools/dcpomatic_kdm.cc @@ -317,17 +317,23 @@ private: continue; } + dcp::LocalTime begin(_timing->from(), i->cinema->utc_offset_hour(), i->cinema->utc_offset_minute()); + dcp::LocalTime end(_timing->until(), i->cinema->utc_offset_hour(), i->cinema->utc_offset_minute()); + DecryptedECinemaKDM kdm ( decrypted.id(), decrypted.name(), decrypted.key(), - dcp::LocalTime (_timing->from(), i->cinema->utc_offset_hour(), i->cinema->utc_offset_minute()), - dcp::LocalTime (_timing->until(), i->cinema->utc_offset_hour(), i->cinema->utc_offset_minute()) + begin, + end ); dcp::NameFormat::Map name_values; name_values['c'] = i->cinema->name; name_values['s'] = i->name; + name_values['f'] = title; + name_values['b'] = begin.date() + " " + begin.time_of_day(true, false); + name_values['e'] = end.date() + " " + end.time_of_day(true, false); /* Encrypt */ kdms.push_back ( @@ -358,10 +364,13 @@ private: continue; } + dcp::LocalTime begin(_timing->from(), i->cinema->utc_offset_hour(), i->cinema->utc_offset_minute()); + dcp::LocalTime end(_timing->until(), i->cinema->utc_offset_hour(), i->cinema->utc_offset_minute()); + /* Make an empty KDM */ dcp::DecryptedKDM kdm ( - dcp::LocalTime (_timing->from(), i->cinema->utc_offset_hour(), i->cinema->utc_offset_minute()), - dcp::LocalTime (_timing->until(), i->cinema->utc_offset_hour(), i->cinema->utc_offset_minute()), + begin, + end, decrypted.annotation_text().get_value_or (""), decrypted.content_title_text(), dcp::LocalTime().as_string() @@ -375,6 +384,9 @@ private: dcp::NameFormat::Map name_values; name_values['c'] = i->cinema->name; name_values['s'] = i->name; + name_values['f'] = title; + name_values['b'] = begin.date() + " " + begin.time_of_day(true, false); + name_values['e'] = end.date() + " " + end.time_of_day(true, false); /* Encrypt */ kdms.push_back ( @@ -397,7 +409,7 @@ private: } pair, int> result = _output->make ( - kdms, title, _timing, bind (&DOMFrame::confirm_overwrite, this, _1) + kdms, title, bind (&DOMFrame::confirm_overwrite, this, _1) ); if (result.first) { diff --git a/src/tools/dcpomatic_kdm_cli.cc b/src/tools/dcpomatic_kdm_cli.cc index ec49723a8..a85624c82 100644 --- a/src/tools/dcpomatic_kdm_cli.cc +++ b/src/tools/dcpomatic_kdm_cli.cc @@ -223,21 +223,22 @@ from_film ( boost::filesystem::path cpl = cpls.front().cpl_file; dcp::NameFormat::Map values; - values['f'] = film->name(); - values['b'] = dcp::LocalTime(valid_from).date() + " " + dcp::LocalTime(valid_from).time_of_day(true, false); - values['e'] = dcp::LocalTime(valid_to).date() + " " + dcp::LocalTime(valid_to).time_of_day(true, false); try { list kdms; BOOST_FOREACH (shared_ptr i, screens) { if (i->recipient) { + + dcp::LocalTime const begin(valid_from, i->cinema ? i->cinema->utc_offset_hour() : 0, i->cinema ? i->cinema->utc_offset_minute() : 0); + dcp::LocalTime const end(valid_to, i->cinema ? i->cinema->utc_offset_hour() : 0, i->cinema ? i->cinema->utc_offset_minute() : 0); + dcp::EncryptedKDM const kdm = film->make_kdm ( i->recipient.get(), i->trusted_device_thumbprints(), cpl, - dcp::LocalTime(valid_from, i->cinema ? i->cinema->utc_offset_hour() : 0, i->cinema ? i->cinema->utc_offset_minute() : 0), - dcp::LocalTime(valid_to, i->cinema ? i->cinema->utc_offset_hour() : 0, i->cinema ? i->cinema->utc_offset_minute() : 0), + begin, + end, formulation, disable_forensic_marking_picture, disable_forensic_marking_audio @@ -246,6 +247,9 @@ from_film ( dcp::NameFormat::Map name_values; name_values['c'] = i->cinema->name; name_values['s'] = i->name; + name_values['f'] = film->name(); + name_values['b'] = dcp::LocalTime(begin).date() + " " + dcp::LocalTime(begin).time_of_day(true, false); + name_values['e'] = dcp::LocalTime(end).date() + " " + dcp::LocalTime(end).time_of_day(true, false); kdms.push_back (KDMWithMetadataPtr(new DCPKDMWithMetadata(name_values, i->cinema, kdm))); } @@ -343,9 +347,6 @@ from_dkdm ( ) { dcp::NameFormat::Map values; - values['f'] = dkdm.annotation_text().get_value_or(""); - values['b'] = dcp::LocalTime(valid_from).date() + " " + dcp::LocalTime(valid_from).time_of_day(true, false); - values['e'] = dcp::LocalTime(valid_to).date() + " " + dcp::LocalTime(valid_to).time_of_day(true, false); try { list kdms; @@ -354,9 +355,15 @@ from_dkdm ( continue; } + dcp::LocalTime begin(valid_from, i->cinema->utc_offset_hour(), i->cinema->utc_offset_minute()); + dcp::LocalTime end(valid_to, i->cinema->utc_offset_hour(), i->cinema->utc_offset_minute()); + dcp::NameFormat::Map name_values; name_values['c'] = i->cinema->name; name_values['s'] = i->name; + name_values['f'] = dkdm.annotation_text().get_value_or(""); + name_values['b'] = begin.date() + " " + begin.time_of_day(true, false); + name_values['e'] = end.date() + " " + end.time_of_day(true, false); kdms.push_back ( KDMWithMetadataPtr( @@ -367,8 +374,8 @@ from_dkdm ( dkdm, i->recipient.get(), i->trusted_device_thumbprints(), - dcp::LocalTime(valid_from, i->cinema->utc_offset_hour(), i->cinema->utc_offset_minute()), - dcp::LocalTime(valid_to, i->cinema->utc_offset_hour(), i->cinema->utc_offset_minute()), + begin, + end, formulation, disable_forensic_marking_picture, disable_forensic_marking_audio diff --git a/src/wx/kdm_dialog.cc b/src/wx/kdm_dialog.cc index 0686450fb..d946e1d12 100644 --- a/src/wx/kdm_dialog.cc +++ b/src/wx/kdm_dialog.cc @@ -163,12 +163,15 @@ KDMDialog::make_clicked () BOOST_FOREACH (shared_ptr i, _screens->screens()) { if (i->recipient) { + dcp::LocalTime const begin(_timing->from(), i->cinema ? i->cinema->utc_offset_hour() : 0, i->cinema ? i->cinema->utc_offset_minute() : 0); + dcp::LocalTime const end(_timing->until(), i->cinema ? i->cinema->utc_offset_hour() : 0, i->cinema ? i->cinema->utc_offset_minute() : 0); + dcp::EncryptedKDM const kdm = film->make_kdm ( i->recipient.get(), i->trusted_device_thumbprints(), _cpl->cpl(), - dcp::LocalTime(_timing->from(), i->cinema ? i->cinema->utc_offset_hour() : 0, i->cinema ? i->cinema->utc_offset_minute() : 0), - dcp::LocalTime(_timing->until(), i->cinema ? i->cinema->utc_offset_hour() : 0, i->cinema ? i->cinema->utc_offset_minute() : 0), + begin, + end, _output->formulation(), !_output->forensic_mark_video(), for_audio @@ -179,6 +182,9 @@ KDMDialog::make_clicked () name_values['c'] = i->cinema->name; } name_values['s'] = i->name; + name_values['f'] = film->name(); + name_values['b'] = dcp::LocalTime(begin).date() + " " + dcp::LocalTime(begin).time_of_day(false, false); + name_values['e'] = dcp::LocalTime(end).date() + " " + dcp::LocalTime(end).time_of_day(false, false); kdms.push_back (KDMWithMetadataPtr(new DCPKDMWithMetadata(name_values, i->cinema, kdm))); } @@ -196,7 +202,7 @@ KDMDialog::make_clicked () return; } - pair, int> result = _output->make (kdms, film->name(), _timing, bind (&KDMDialog::confirm_overwrite, this, _1)); + pair, int> result = _output->make (kdms, film->name(), bind (&KDMDialog::confirm_overwrite, this, _1)); if (result.first) { JobManager::instance()->add (result.first); } diff --git a/src/wx/kdm_output_panel.cc b/src/wx/kdm_output_panel.cc index 025707b28..0a70ff125 100644 --- a/src/wx/kdm_output_panel.cc +++ b/src/wx/kdm_output_panel.cc @@ -182,7 +182,7 @@ KDMOutputPanel::kdm_write_type_changed () pair, int> KDMOutputPanel::make ( - list kdms, string name, KDMTimingPanel* timing, function confirm_overwrite + list kdms, string name, function confirm_overwrite ) { list > const cinema_kdms = collect (kdms); @@ -240,9 +240,6 @@ KDMOutputPanel::make ( try { dcp::NameFormat::Map name_values; - name_values['f'] = name; - name_values['b'] = dcp::LocalTime(timing->from()).date() + " " + dcp::LocalTime(timing->from()).time_of_day(false, false); - name_values['e'] = dcp::LocalTime(timing->until()).date() + " " + dcp::LocalTime(timing->until()).time_of_day(false, false); if (_write_to->GetValue()) { if (_write_flat->GetValue()) { diff --git a/src/wx/kdm_output_panel.h b/src/wx/kdm_output_panel.h index fbfc1205e..0281b26d0 100644 --- a/src/wx/kdm_output_panel.h +++ b/src/wx/kdm_output_panel.h @@ -54,7 +54,6 @@ public: std::pair, int> make ( std::list screen_kdms, std::string name, - KDMTimingPanel* timing, boost::function confirm_overwrite ); -- 2.30.2