X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fvideo_content.h;h=075f7b7015b623a7be591210aff0efd1af90ccfb;hb=78664f8073256de51355c9162f61a4ae4fa560d7;hp=6896551314eaaf9c2a96ae7d5b28af2e1781d044;hpb=71d56fbe3ba5974505469d2c8b7efcdef4eb8adc;p=dcpomatic.git diff --git a/src/lib/video_content.h b/src/lib/video_content.h index 689655131..075f7b701 100644 --- a/src/lib/video_content.h +++ b/src/lib/video_content.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2013-2014 Carl Hetherington + Copyright (C) 2013-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 @@ -20,12 +20,20 @@ #ifndef DCPOMATIC_VIDEO_CONTENT_H #define DCPOMATIC_VIDEO_CONTENT_H -#include "content.h" #include "colour_conversion.h" #include "video_content_scale.h" +#include "dcpomatic_time.h" +#include "user_property.h" +#include "types.h" +#include "content_part.h" +#include +#include +#include class VideoExaminer; class Ratio; +class Film; +class Content; class VideoContentProperty { @@ -40,25 +48,18 @@ public: static int const VIDEO_FADE_OUT; }; -class VideoContent : public virtual Content +class VideoContent : public ContentPart, public boost::enable_shared_from_this { public: - VideoContent (boost::shared_ptr); - VideoContent (boost::shared_ptr, DCPTime, Frame); - VideoContent (boost::shared_ptr, boost::filesystem::path); - 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; - virtual std::string identifier () const; + std::string identifier () const; - virtual void set_default_colour_conversion (); - - /** @return points at which to split this content when - * REELTYPE_BY_VIDEO_CONTENT is in use. - */ - virtual std::list reel_split_points () const; + void set_default_colour_conversion (); Frame video_length () const { boost::mutex::scoped_lock lm (_mutex); @@ -177,16 +178,18 @@ public: std::string processing_description () const; -protected: + void set_video_length (Frame); + void take_from_video_examiner (boost::shared_ptr); - void add_properties (std::list > &) const; + void add_properties (std::list &) const; + +private: Frame _video_length; /** Video frame rate, or not set if this content should use the DCP's frame rate */ boost::optional _video_frame_rate; boost::optional _colour_conversion; -private: friend struct ffmpeg_pts_offset_test; friend struct best_dcp_frame_rate_test_single; friend struct best_dcp_frame_rate_test_double;