X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Ftools%2Fdcpomatic_kdm_cli.cc;h=a3075d6752ac2d7187eeb8cedbc3b2757bee7a3b;hp=a85624c82cc64fab1dd83d5cfeb907e686df6231;hb=8f12e84009d7c2685bb2eeb32665876463d4e6e5;hpb=5579acd7ff7e1460f0b5bb54a4deedbd356153cd;ds=sidebyside diff --git a/src/tools/dcpomatic_kdm_cli.cc b/src/tools/dcpomatic_kdm_cli.cc index a85624c82..a3075d675 100644 --- a/src/tools/dcpomatic_kdm_cli.cc +++ b/src/tools/dcpomatic_kdm_cli.cc @@ -134,7 +134,6 @@ write_files ( boost::filesystem::path output, dcp::NameFormat container_name_format, dcp::NameFormat filename_format, - dcp::NameFormat::Map values, bool verbose ) { @@ -144,7 +143,6 @@ write_files ( output, container_name_format, filename_format, - values, bind (&always_overwrite) ); @@ -153,7 +151,7 @@ write_files ( } } else { int const N = write_files ( - kdms, output, filename_format, values, + kdms, output, filename_format, bind (&always_overwrite) ); @@ -222,40 +220,15 @@ from_film ( boost::filesystem::path cpl = cpls.front().cpl_file; - dcp::NameFormat::Map values; - 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, - begin, - end, - formulation, - disable_forensic_marking_picture, - disable_forensic_marking_audio - ); - - 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))); + KDMWithMetadataPtr p = kdm_for_screen (film, cpl, i, valid_from, valid_to, formulation, disable_forensic_marking_picture, disable_forensic_marking_audio); + if (p) { + kdms.push_back (p); } } - - write_files (kdms, zip, output, container_name_format, filename_format, values, verbose); + write_files (kdms, zip, output, container_name_format, filename_format, verbose); } catch (FileError& e) { cerr << program_name << ": " << e.what() << " (" << e.file().string() << ")\n"; exit (EXIT_FAILURE); @@ -358,19 +331,7 @@ from_dkdm ( 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( - new DCPKDMWithMetadata( - name_values, - i->cinema, - kdm_from_dkdm( + dcp::EncryptedKDM const kdm = kdm_from_dkdm( dkdm, i->recipient.get(), i->trusted_device_thumbprints(), @@ -379,12 +340,19 @@ from_dkdm ( formulation, disable_forensic_marking_picture, disable_forensic_marking_audio - ) - ) - ) - ); + ); + + 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); + name_values['i'] = kdm.cpl_id(); + + kdms.push_back (KDMWithMetadataPtr(new DCPKDMWithMetadata(name_values, i->cinema, kdm))); } - write_files (kdms, zip, output, container_name_format, filename_format, values, verbose); + write_files (kdms, zip, output, container_name_format, filename_format, verbose); } catch (FileError& e) { cerr << program_name << ": " << e.what() << " (" << e.file().string() << ")\n"; exit (EXIT_FAILURE);