X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fdcp_content.h;h=65bed29bc91bd55b7ab16ce4ad3937ee151527bc;hb=c4403784febdbdd42e9c32e67fadb147f11fe566;hp=43476e729c7f8ca3495bb26dcde21988b96dc4e5;hpb=e65d31fbccad80c80f743516ecdd8269826d2114;p=dcpomatic.git diff --git a/src/lib/dcp_content.h b/src/lib/dcp_content.h index 43476e729..65bed29bc 100644 --- a/src/lib/dcp_content.h +++ b/src/lib/dcp_content.h @@ -50,8 +50,8 @@ class ContentPart; class DCPContent : public Content { public: - DCPContent (boost::shared_ptr, boost::filesystem::path p); - DCPContent (boost::shared_ptr, cxml::ConstNodePtr, int version); + DCPContent (boost::filesystem::path p); + DCPContent (cxml::ConstNodePtr, int version); boost::shared_ptr shared_from_this () { return boost::dynamic_pointer_cast (Content::shared_from_this ()); @@ -61,9 +61,10 @@ public: return boost::dynamic_pointer_cast (Content::shared_from_this ()); } - DCPTime full_length () const; + dcpomatic::DCPTime full_length (boost::shared_ptr film) const; + dcpomatic::DCPTime approximate_length () const; - void examine (boost::shared_ptr); + void examine (boost::shared_ptr film, boost::shared_ptr); std::string summary () const; std::string technical_summary () const; void as_xml (xmlpp::Node *, bool with_paths) const; @@ -71,7 +72,7 @@ public: void take_settings_from (boost::shared_ptr c); void set_default_colour_conversion (); - std::list reel_split_points () const; + std::list reel_split_points (boost::shared_ptr film) const; std::vector directories () const; @@ -98,7 +99,7 @@ public: return _reference_video; } - bool can_reference_video (std::string &) const; + bool can_reference_video (boost::shared_ptr film, std::string &) const; void set_reference_audio (bool r); @@ -107,7 +108,7 @@ public: return _reference_audio; } - bool can_reference_audio (std::string &) const; + bool can_reference_audio (boost::shared_ptr film, std::string &) const; void set_reference_text (TextType type, bool r); @@ -119,7 +120,7 @@ public: return _reference_text[type]; } - bool can_reference_text (TextType type, std::string &) const; + bool can_reference_text (boost::shared_ptr film, TextType type, std::string &) const; void set_cpl (std::string id); @@ -138,14 +139,23 @@ public: return _three_d; } + boost::optional content_kind () const { + boost::mutex::scoped_lock lm (_mutex); + return _content_kind; + } + + bool kdm_timing_window_valid () const; + private: friend class reels_test5; - void add_properties (std::list& p) const; + void add_properties (boost::shared_ptr film, std::list& p) const; void read_directory (boost::filesystem::path); - std::list reels () const; + void read_sub_directory (boost::filesystem::path); + std::list reels (boost::shared_ptr film) const; bool can_reference ( + boost::shared_ptr film, boost::function )>, std::string overlapping, std::string& why_not @@ -174,6 +184,7 @@ private: bool _reference_text[TEXT_COUNT]; boost::optional _standard; + boost::optional _content_kind; bool _three_d; /** ID of the CPL to use; older metadata might not specify this: in that case * just use the only CPL.