Fix nonfunctional send-problem-report.
[dcpomatic.git] / src / lib / video_content.h
index 01e3cb2aab7e876a571bde5f02efa44c43dfc2e1..6896551314eaaf9c2a96ae7d5b28af2e1781d044 100644 (file)
@@ -55,6 +55,11 @@ public:
 
        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<DCPTime> reel_split_points () const;
+
        Frame video_length () const {
                boost::mutex::scoped_lock lm (_mutex);
                return _video_length;
@@ -74,13 +79,18 @@ public:
                return _video_size;
        }
 
-       float video_frame_rate () const {
+       double video_frame_rate () const;
+
+       /** @return true if this content has a specific video frame rate, false
+        *  if it should use the DCP's rate.
+        */
+       bool has_own_video_frame_rate () const {
                boost::mutex::scoped_lock lm (_mutex);
-               return _video_frame_rate;
+               return static_cast<bool>(_video_frame_rate);
        }
 
        void set_video_frame_type (VideoFrameType);
-       void set_video_frame_rate (float);
+       void set_video_frame_rate (double);
 
        void set_left_crop (int);
        void set_right_crop (int);
@@ -88,7 +98,7 @@ public:
        void set_bottom_crop (int);
 
        void set_scale (VideoContentScale);
-       void unset_colour_conversion (bool signal = true);
+       void unset_colour_conversion ();
        void set_colour_conversion (ColourConversion);
 
        void set_fade_in (Frame);
@@ -135,11 +145,16 @@ public:
                return _colour_conversion;
        }
 
-       boost::optional<float> sample_aspect_ratio () const {
+       boost::optional<double> sample_aspect_ratio () const {
                boost::mutex::scoped_lock lm (_mutex);
                return _sample_aspect_ratio;
        }
 
+       bool yuv () const {
+               boost::mutex::scoped_lock lm (_mutex);
+               return _yuv;
+       }
+
        Frame fade_in () const {
                boost::mutex::scoped_lock lm (_mutex);
                return _fade_in;
@@ -155,7 +170,7 @@ public:
 
        ContentTime dcp_time_to_content_time (DCPTime) const;
 
-       boost::optional<float> fade (Frame) const;
+       boost::optional<double> fade (Frame) const;
 
        void scale_and_crop_to_fit_width ();
        void scale_and_crop_to_fit_height ();
@@ -164,9 +179,11 @@ public:
 
 protected:
        void take_from_video_examiner (boost::shared_ptr<VideoExaminer>);
+       void add_properties (std::list<std::pair<std::string, std::string> > &) const;
 
        Frame _video_length;
-       float _video_frame_rate;
+       /** Video frame rate, or not set if this content should use the DCP's frame rate */
+       boost::optional<double> _video_frame_rate;
        boost::optional<ColourConversion> _colour_conversion;
 
 private:
@@ -184,7 +201,8 @@ private:
        /** Sample aspect ratio obtained from the content file's header,
            if there is one.
        */
-       boost::optional<float> _sample_aspect_ratio;
+       boost::optional<double> _sample_aspect_ratio;
+       bool _yuv;
        Frame _fade_in;
        Frame _fade_out;
 };