- dcp.write_xml (_film->interop () ? dcp::INTEROP : dcp::SMPTE, meta, signer, Config::instance()->dcp_metadata_filename_format());
+ cpl->set_main_sound_configuration (msc.to_string());
+ cpl->set_main_sound_sample_rate (film()->audio_frame_rate());
+ cpl->set_main_picture_stored_area (film()->frame_size());
+ cpl->set_main_picture_active_area (film()->active_area());
+
+ vector<dcp::LanguageTag> sl = film()->subtitle_languages();
+ if (sl.size() > 1) {
+ cpl->set_additional_subtitle_languages(std::vector<dcp::LanguageTag>(sl.begin() + 1, sl.end()));
+ }
+
+ shared_ptr<const dcp::CertificateChain> signer;
+ signer = Config::instance()->signer_chain ();
+ /* We did check earlier, but check again here to be on the safe side */
+ string reason;
+ if (!signer->valid (&reason)) {
+ throw InvalidSignerError (reason);
+ }
+
+ dcp.write_xml (
+ film()->interop() ? dcp::Standard::INTEROP : dcp::Standard::SMPTE,
+ issuer,
+ creator,
+ dcp::LocalTime().as_string(),
+ film()->dcp_name(),
+ signer,
+ Config::instance()->dcp_metadata_filename_format()
+ );