X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fdcp_content.cc;h=c380e6f84e2ab84f42cb2ee4fc25b3d42f1dd25b;hp=156a1a2052a28e1d6c02556e43d605a50071dc10;hb=2d4e8c5f69cc694625ad95dcee554499605f823b;hpb=e0255a64d22440d718e5512f34a4f21f0d37a21b diff --git a/src/lib/dcp_content.cc b/src/lib/dcp_content.cc index 156a1a205..c380e6f84 100644 --- a/src/lib/dcp_content.cc +++ b/src/lib/dcp_content.cc @@ -56,7 +56,7 @@ using std::string; using std::vector; using boost::scoped_ptr; using boost::optional; -using boost::function; +using std::function; using std::dynamic_pointer_cast; #if BOOST_VERSION >= 106100 using namespace boost::placeholders; @@ -186,10 +186,7 @@ DCPContent::read_directory (boost::filesystem::path p) if (!have_metadata) { throw DCPError ("No ASSETMAP or ASSETMAP.xml file found: is this a DCP?"); } else { - throw DCPError ( - "This looks like a DCP-o-matic project folder, which cannot be added to a different project. " - "Choose the DCP directory inside the DCP-o-matic project folder if that's what you want to import." - ); + throw ProjectFolderError (); } } @@ -264,15 +261,18 @@ DCPContent::examine (shared_ptr film, shared_ptr job) atmos->set_length (examiner->atmos_length()); } - list > new_text; - for (int i = 0; i < static_cast(TextType::COUNT); ++i) { - for (int j = 0; j < examiner->text_count(static_cast(i)); ++j) { - auto c = make_shared(this, static_cast(i), static_cast(i)); - if (i == static_cast(TextType::CLOSED_CAPTION)) { - c->set_dcp_track (examiner->dcp_text_track(j)); - } - new_text.push_back (c); - } + list> new_text; + + for (int i = 0; i < examiner->text_count(TextType::OPEN_SUBTITLE); ++i) { + auto c = make_shared(this, TextType::OPEN_SUBTITLE, TextType::OPEN_SUBTITLE); + c->set_language (examiner->open_subtitle_language()); + new_text.push_back (c); + } + + for (int i = 0; i < examiner->text_count(TextType::CLOSED_CAPTION); ++i) { + auto c = make_shared(this, TextType::CLOSED_CAPTION, TextType::CLOSED_CAPTION); + c->set_dcp_track (examiner->dcp_text_track(i)); + new_text.push_back (c); } { @@ -288,7 +288,7 @@ DCPContent::examine (shared_ptr film, shared_ptr job) _cpl = examiner->cpl (); _reel_lengths = examiner->reel_lengths (); for (auto const& i: examiner->markers()) { - _markers[i.first] = ContentTime(i.second.as_editable_units(DCPTime::HZ)); + _markers[i.first] = ContentTime(i.second.as_editable_units_ceil(DCPTime::HZ)); } _ratings = examiner->ratings (); _content_versions = examiner->content_versions ();