X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fvideo_content.h;h=768f1897df247e15a714c544b4cb5fce1699afa4;hb=6f344b876689a1234a5eb75041882f06f5d9fe5c;hp=9577d2d850d7311d4d4cadda89fd39614b32173a;hpb=500a503a982e8e62884035e156e47ed61a20ef85;p=dcpomatic.git diff --git a/src/lib/video_content.h b/src/lib/video_content.h index 9577d2d85..768f1897d 100644 --- a/src/lib/video_content.h +++ b/src/lib/video_content.h @@ -22,9 +22,17 @@ #include "colour_conversion.h" #include "video_content_scale.h" +#include "dcpomatic_time.h" +#include "user_property.h" +#include "types.h" +#include +#include +#include class VideoExaminer; class Ratio; +class Film; +class Content; class VideoContentProperty { @@ -39,12 +47,12 @@ public: static int const VIDEO_FADE_OUT; }; -class VideoContent +class VideoContent : public boost::enable_shared_from_this { public: - VideoContent (boost::shared_ptr); - VideoContent (boost::shared_ptr, cxml::ConstNodePtr, int); - VideoContent (boost::shared_ptr, std::vector >); + VideoContent (Content* parent, boost::shared_ptr); + VideoContent (Content* parent, boost::shared_ptr, cxml::ConstNodePtr, int); + VideoContent (Content* parent, boost::shared_ptr, std::vector >); void as_xml (xmlpp::Node *) const; std::string technical_summary () const; @@ -169,12 +177,16 @@ public: std::string processing_description () const; -private: + void set_video_length (Frame); + void take_from_video_examiner (boost::shared_ptr); void add_properties (std::list &) const; +private: + + Content* _parent; boost::weak_ptr _film; - boost::mutex _mutex; + mutable boost::mutex _mutex; Frame _video_length; /** Video frame rate, or not set if this content should use the DCP's frame rate */ boost::optional _video_frame_rate;