X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Fisdcf_name_test.cc;h=bdd9c03136849e15966b2b4222ad845acb90dc5b;hb=0758d834992f0adb8aa8d4d9908a64ce8708f05c;hp=65f89c0f4e2cbae2a66694fcd0fae6a7671b6c62;hpb=f0cc79a6c34b8198155f6e519d4464385ea30049;p=dcpomatic.git diff --git a/test/isdcf_name_test.cc b/test/isdcf_name_test.cc index 65f89c0f4..bdd9c0313 100644 --- a/test/isdcf_name_test.cc +++ b/test/isdcf_name_test.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2014 Carl Hetherington + Copyright (C) 2014-2016 Carl Hetherington This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -22,7 +22,12 @@ #include "lib/ratio.h" #include "lib/dcp_content_type.h" #include "lib/image_content.h" +#include "lib/sndfile_content.h" +#include "lib/video_content.h" +#include "lib/audio_mapping.h" +#include "lib/audio_content.h" #include "test.h" +#include using std::cout; using boost::shared_ptr; @@ -45,10 +50,9 @@ BOOST_AUTO_TEST_CASE (isdcf_name_test) m.rating = "PG"; m.studio = "ST"; m.facility = "FA"; - m.package_type = "OV"; film->set_isdcf_metadata (m); film->set_interop (true); - BOOST_CHECK_EQUAL (film->isdcf_name(false), "MyNiceFilm_FTR-1_F_EN-XX_UK-PG_51_2K_ST_20140704_FA_IOP_OV"); + BOOST_CHECK_EQUAL (film->isdcf_name(false), "MyNiceFilm_FTR-1_F_EN-XX_UK-PG_2K_ST_20140704_FA_IOP_OV"); /* Test a long name and some different data */ @@ -65,24 +69,28 @@ BOOST_AUTO_TEST_CASE (isdcf_name_test) m.rating = "R"; m.studio = "DI"; m.facility = "PP"; - m.package_type = "VF"; film->set_isdcf_metadata (m); film->set_interop (false); - BOOST_CHECK_EQUAL (film->isdcf_name(false), "MyNiceFilmWith_TLR-2_S_DE-FR_US-R_10_4K_DI_20140704_PP_SMPTE_VF"); + BOOST_CHECK_EQUAL (film->isdcf_name(false), "MyNiceFilmWith_TLR-2_S_DE-fr_US-R_4K_DI_20140704_PP_SMPTE_OV"); - /* Test interior aspect ratio */ + /* Test interior aspect ratio: shouldn't be shown with trailers */ shared_ptr content (new ImageContent (film, "test/data/simple_testcard_640x480.png")); film->examine_and_add_content (content); wait_for_jobs (); - content->set_scale (VideoContentScale (Ratio::from_id ("133"))); + content->video->set_scale (VideoContentScale (Ratio::from_id ("133"))); film->set_container (Ratio::from_id ("185")); - BOOST_CHECK_EQUAL (film->isdcf_name(false), "MyNiceFilmWith_TLR-2_F-133_DE-FR_US-R_10_4K_DI_20140704_PP_SMPTE_VF"); + BOOST_CHECK_EQUAL (film->isdcf_name(false), "MyNiceFilmWith_TLR-2_F_DE-fr_US-R_4K_DI_20140704_PP_SMPTE_OV"); + + /* But should be shown for anything else */ + + film->set_dcp_content_type (DCPContentType::from_isdcf_name ("XSN")); + BOOST_CHECK_EQUAL (film->isdcf_name(false), "MyNiceFilmWith_XSN-2_F-133_DE-fr_US-R_4K_DI_20140704_PP_SMPTE_OV"); /* Test 3D */ film->set_three_d (true); - BOOST_CHECK_EQUAL (film->isdcf_name(false), "MyNiceFilmWith_TLR-2-3D_F-133_DE-FR_US-R_10_4K_DI_20140704_PP_SMPTE-3D_VF"); + BOOST_CHECK_EQUAL (film->isdcf_name(false), "MyNiceFilmWith_XSN-2-3D_F-133_DE-fr_US-R_4K_DI_20140704_PP_SMPTE-3D_OV"); /* Test content type modifiers */ @@ -95,6 +103,60 @@ BOOST_AUTO_TEST_CASE (isdcf_name_test) m.mastered_luminance = "4fl"; film->set_isdcf_metadata (m); film->set_video_frame_rate (48); - BOOST_CHECK_EQUAL (film->isdcf_name(false), "MyNiceFilmWith_TLR-2-Temp-Pre-RedBand-MyChain-2D-4fl-48_F-133_DE-FR_US-R_10_4K_DI_20140704_PP_SMPTE_VF"); -} + BOOST_CHECK_EQUAL (film->isdcf_name(false), "MyNiceFilmWith_XSN-2-Temp-Pre-RedBand-MyChain-2D-4fl-48_F-133_DE-fr_US-R_4K_DI_20140704_PP_SMPTE_OV"); + + /* Test a name which is already in camelCase */ + + 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_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_4K_DI_20140704_PP_SMPTE_OV"); + /* Test audio channel markup */ + + film->set_audio_channels (6); + shared_ptr sound (new SndfileContent (film, "test/data/sine_440.wav")); + film->examine_and_add_content (sound); + 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_61_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_4K_DI_20140704_PP_SMPTE_OV"); +}