+ film->set_three_d (false);
+ m.temp_version = false;
+ m.pre_release = false;
+ m.red_band = false;
+ m.chain = "";
+ m.two_d_version_of_three_d = false;
+ m.mastered_luminance = "";
+ film->set_isdcf_metadata (m);
+ film->set_video_frame_rate (24);
+ film->set_name ("IKnowCamels");
+ BOOST_CHECK_EQUAL (film->isdcf_name(false), "IKnowCamels_XSN-2_F-133_DE-fr_US-R_MOS_4K_DI_20140704_PP_SMPTE_OV");
+
+ /* And one in capitals */
+
+ film->set_name ("LIKE SHOUTING");
+ BOOST_CHECK_EQUAL (film->isdcf_name(false), "LikeShouting_XSN-2_F-133_DE-fr_US-R_MOS_4K_DI_20140704_PP_SMPTE_OV");
+
+ /* Test audio channel markup */
+
+ film->set_audio_channels (6);
+ shared_ptr<FFmpegContent> sound (new FFmpegContent("test/data/sine_440.wav"));
+ film->examine_and_add_content (sound);
+ BOOST_REQUIRE (!wait_for_jobs());
+ BOOST_CHECK_EQUAL (film->isdcf_name(false), "LikeShouting_XSN-2_F-133_DE-fr_US-R_10_4K_DI_20140704_PP_SMPTE_OV");
+
+ AudioMapping mapping = sound->audio->mapping ();
+
+ mapping.set (0, dcp::LEFT, 1.0);
+ sound->audio->set_mapping (mapping);
+ BOOST_CHECK_EQUAL (film->isdcf_name(false), "LikeShouting_XSN-2_F-133_DE-fr_US-R_20_4K_DI_20140704_PP_SMPTE_OV");
+ mapping.set (0, dcp::RIGHT, 1.0);
+ sound->audio->set_mapping (mapping);
+ BOOST_CHECK_EQUAL (film->isdcf_name(false), "LikeShouting_XSN-2_F-133_DE-fr_US-R_30_4K_DI_20140704_PP_SMPTE_OV");
+ mapping.set (0, dcp::LFE, 1.0);
+ sound->audio->set_mapping (mapping);
+ BOOST_CHECK_EQUAL (film->isdcf_name(false), "LikeShouting_XSN-2_F-133_DE-fr_US-R_31_4K_DI_20140704_PP_SMPTE_OV");
+ mapping.set (0, dcp::LS, 1.0);
+ sound->audio->set_mapping (mapping);
+ BOOST_CHECK_EQUAL (film->isdcf_name(false), "LikeShouting_XSN-2_F-133_DE-fr_US-R_41_4K_DI_20140704_PP_SMPTE_OV");
+ mapping.set (0, dcp::RS, 1.0);
+ sound->audio->set_mapping (mapping);
+ BOOST_CHECK_EQUAL (film->isdcf_name(false), "LikeShouting_XSN-2_F-133_DE-fr_US-R_51_4K_DI_20140704_PP_SMPTE_OV");
+ mapping.set (0, dcp::HI, 1.0);
+ sound->audio->set_mapping (mapping);
+ BOOST_CHECK_EQUAL (film->isdcf_name(false), "LikeShouting_XSN-2_F-133_DE-fr_US-R_51_4K_DI_20140704_PP_SMPTE_OV");
+
+ film->set_audio_channels (8);
+ mapping.set (0, dcp::HI, 1.0);
+ sound->audio->set_mapping (mapping);
+ BOOST_CHECK_EQUAL (film->isdcf_name(false), "LikeShouting_XSN-2_F-133_DE-fr_US-R_51-HI_4K_DI_20140704_PP_SMPTE_OV");
+ mapping.set (0, dcp::VI, 1.0);
+ sound->audio->set_mapping (mapping);
+ BOOST_CHECK_EQUAL (film->isdcf_name(false), "LikeShouting_XSN-2_F-133_DE-fr_US-R_51-HI-VI_4K_DI_20140704_PP_SMPTE_OV");
+
+ film->set_audio_channels(10);
+ mapping.set (0, dcp::HI, 0.0);
+ mapping.set (0, dcp::VI, 0.0);
+ sound->audio->set_mapping (mapping);
+ BOOST_CHECK_EQUAL (film->isdcf_name(false), "LikeShouting_XSN-2_F-133_DE-fr_US-R_51_4K_DI_20140704_PP_SMPTE_OV");
+ mapping.set (0, dcp::HI, 1.0);
+ sound->audio->set_mapping (mapping);
+ BOOST_CHECK_EQUAL (film->isdcf_name(false), "LikeShouting_XSN-2_F-133_DE-fr_US-R_51-HI_4K_DI_20140704_PP_SMPTE_OV");
+ mapping.set (0, dcp::VI, 1.0);
+ sound->audio->set_mapping (mapping);
+ BOOST_CHECK_EQUAL (film->isdcf_name(false), "LikeShouting_XSN-2_F-133_DE-fr_US-R_51-HI-VI_4K_DI_20140704_PP_SMPTE_OV");
+
+ film->set_audio_channels(12);
+ mapping.set (0, dcp::BSL, 1.0);
+ mapping.set (0, dcp::BSR, 1.0);
+ mapping.set (0, dcp::HI, 0.0);
+ mapping.set (0, dcp::VI, 0.0);
+ sound->audio->set_mapping (mapping);
+ BOOST_CHECK_EQUAL (film->isdcf_name(false), "LikeShouting_XSN-2_F-133_DE-fr_US-R_71_4K_DI_20140704_PP_SMPTE_OV");
+ mapping.set (0, dcp::HI, 1.0);
+ sound->audio->set_mapping (mapping);
+ BOOST_CHECK_EQUAL (film->isdcf_name(false), "LikeShouting_XSN-2_F-133_DE-fr_US-R_71-HI_4K_DI_20140704_PP_SMPTE_OV");
+ mapping.set (0, dcp::VI, 1.0);
+ sound->audio->set_mapping (mapping);
+ BOOST_CHECK_EQUAL (film->isdcf_name(false), "LikeShouting_XSN-2_F-133_DE-fr_US-R_71-HI-VI_4K_DI_20140704_PP_SMPTE_OV");
+}