X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Flib%2Fdcp_content.cc;h=3498cc96119940bbd2a25a4546c0c1fc0bc56662;hb=234bca29f70aeeba4fffd67f987de876ff89b6cc;hp=a527b1f809605a8435ebcece3738aebb01ec8983;hpb=1fe6bd7f8ba059322b8357b2210f0fd590567ce2;p=dcpomatic.git diff --git a/src/lib/dcp_content.cc b/src/lib/dcp_content.cc index a527b1f80..3498cc961 100644 --- a/src/lib/dcp_content.cc +++ b/src/lib/dcp_content.cc @@ -144,7 +144,7 @@ DCPContent::read_directory (boost::filesystem::path p) { for (boost::filesystem::directory_iterator i(p); i != boost::filesystem::directory_iterator(); ++i) { if (boost::filesystem::is_regular_file (i->path())) { - _paths.push_back (i->path()); + add_path (i->path()); } else if (boost::filesystem::is_directory (i->path ())) { read_directory (i->path()); } @@ -159,11 +159,11 @@ DCPContent::examine (shared_ptr job) string const old_name = name (); int const old_texts = text.size (); - ContentChange cc_texts (this, DCPContentProperty::TEXTS); - ContentChange cc_assets (this, DCPContentProperty::NEEDS_ASSETS); - ContentChange cc_kdm (this, DCPContentProperty::NEEDS_KDM); - ContentChange cc_name (this, DCPContentProperty::NAME); - ContentChange cc_streams (this, AudioContentProperty::STREAMS); + ChangeSignaller cc_texts (this, DCPContentProperty::TEXTS); + ChangeSignaller cc_assets (this, DCPContentProperty::NEEDS_ASSETS); + ChangeSignaller cc_kdm (this, DCPContentProperty::NEEDS_KDM); + ChangeSignaller cc_name (this, DCPContentProperty::NAME); + ChangeSignaller cc_streams (this, AudioContentProperty::STREAMS); if (job) { job->set_progress_unknown (); @@ -182,7 +182,7 @@ DCPContent::examine (shared_ptr job) } if (examiner->has_audio()) { - ContentChange cc (this, AudioContentProperty::STREAMS); + ChangeSignaller cc (this, AudioContentProperty::STREAMS); { boost::mutex::scoped_lock lm (_mutex); audio.reset (new AudioContent (this)); @@ -401,7 +401,7 @@ DCPContent::set_default_colour_conversion () void DCPContent::set_reference_video (bool r) { - ContentChange cc (this, DCPContentProperty::REFERENCE_VIDEO); + ChangeSignaller cc (this, DCPContentProperty::REFERENCE_VIDEO); { boost::mutex::scoped_lock lm (_mutex); @@ -412,7 +412,7 @@ DCPContent::set_reference_video (bool r) void DCPContent::set_reference_audio (bool r) { - ContentChange cc (this, DCPContentProperty::REFERENCE_AUDIO); + ChangeSignaller cc (this, DCPContentProperty::REFERENCE_AUDIO); { boost::mutex::scoped_lock lm (_mutex); @@ -423,7 +423,7 @@ DCPContent::set_reference_audio (bool r) void DCPContent::set_reference_text (TextType type, bool r) { - ContentChange cc (this, DCPContentProperty::REFERENCE_TEXT); + ChangeSignaller cc (this, DCPContentProperty::REFERENCE_TEXT); { boost::mutex::scoped_lock lm (_mutex); @@ -600,6 +600,7 @@ bool check_text (shared_ptr c) { return !c->text.empty(); } + bool DCPContent::can_reference_text (TextType type, string& why_not) const { @@ -620,7 +621,7 @@ DCPContent::can_reference_text (TextType type, string& why_not) const why_not = _("it does not have open subtitles in all its reels."); return false; } - if (type == TEXT_CLOSED_CAPTION && !i->closed_caption()) { + if (type == TEXT_CLOSED_CAPTION && i->closed_captions().empty()) { /// TRANSLATORS: this string will follow "Cannot reference this DCP: " why_not = _("it does not have closed captions in all its reels."); return false; @@ -649,10 +650,21 @@ DCPContent::take_settings_from (shared_ptr c) void DCPContent::set_cpl (string id) { - ContentChange cc (this, DCPContentProperty::CPL); + ChangeSignaller cc (this, DCPContentProperty::CPL); { boost::mutex::scoped_lock lm (_mutex); _cpl = id; } } + +bool +DCPContent::kdm_timing_window_valid () const +{ + if (!_kdm) { + return true; + } + + dcp::LocalTime now; + return _kdm->not_valid_before() < now && now < _kdm->not_valid_after(); +}