- shared_ptr<const dcp::CertificateChain> signer;
- if (_film->is_signed ()) {
- 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);
+ vector<dcp::ContentVersion> cv;
+ for (auto i: film()->content_versions()) {
+ cv.push_back (dcp::ContentVersion(i));
+ }
+ cpl->set_content_versions (cv);
+
+ cpl->set_full_content_title_text (film()->name());
+ cpl->set_full_content_title_text_language (film()->name_language());
+ cpl->set_release_territory (film()->release_territory());
+ cpl->set_version_number (film()->version_number());
+ cpl->set_status (film()->status());
+ cpl->set_chain (film()->chain());
+ cpl->set_distributor (film()->distributor());
+ cpl->set_facility (film()->facility());
+ cpl->set_luminance (film()->luminance());
+
+ list<int> ac = film()->mapped_audio_channels();
+ dcp::MCASoundField field = (
+ find(ac.begin(), ac.end(), static_cast<int>(dcp::BSL)) != ac.end() ||
+ find(ac.begin(), ac.end(), static_cast<int>(dcp::BSR)) != ac.end()
+ ) ? dcp::SEVEN_POINT_ONE : dcp::FIVE_POINT_ONE;
+
+ dcp::MainSoundConfiguration msc (field, film()->audio_channels());
+ for (auto i: ac) {
+ if (i < film()->audio_channels()) {
+ msc.set_mapping (i, static_cast<dcp::Channel>(i));