- 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());
- BOOST_FOREACH (int i, ac) {
- if (i < _film->audio_channels()) {
+ cpl->set_full_content_title_text (film()->name());
+ cpl->set_full_content_title_text_language (film()->name_language());
+ if (film()->release_territory()) {
+ cpl->set_release_territory (*film()->release_territory());
+ }
+ cpl->set_version_number (film()->version_number());
+ cpl->set_status (film()->status());
+ if (film()->chain()) {
+ cpl->set_chain (*film()->chain());
+ }
+ if (film()->distributor()) {
+ cpl->set_distributor (*film()->distributor());
+ }
+ if (film()->facility()) {
+ cpl->set_facility (*film()->facility());
+ }
+ 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());
+ }
+
+ dcp::MCASoundField field;
+ if (film()->audio_channels() == 2) {
+ field = dcp::MCASoundField::STEREO;
+ } else if (film()->audio_channels() <= 6) {
+ field = dcp::MCASoundField::FIVE_POINT_ONE;
+ } else {
+ field = dcp::MCASoundField::SEVEN_POINT_ONE;
+ }
+
+ dcp::MainSoundConfiguration msc (field, film()->audio_channels());
+ for (auto i: film()->mapped_audio_channels()) {
+ if (static_cast<int>(i) < film()->audio_channels()) {