Supporters update.
[dcpomatic.git] / src / lib / video_examiner.h
index 1ff16a704f233f5cddf27e7f6b826f7b1300e1df..b670dafc54a8191165a9fbfd0e4205f87126ca34 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2013-2016 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2013-2021 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
 
 */
 
+
 /** @file  src/lib/video_examiner.h
  *  @brief VideoExaminer class.
  */
 
-#include "types.h"
+
+#include "pixel_quanta.h"
 #include "video_content.h"
 #include <dcp/types.h>
 
+
 /** @class VideoExaminer
  *  @brief Parent for classes which examine video sources and obtain information about them.
  */
@@ -33,11 +36,21 @@ class VideoExaminer
 {
 public:
        virtual ~VideoExaminer () {}
+
+       virtual bool has_video () const = 0;
+
+       /** @return video frame rate (if known); must not be called if has_video() == false */
        virtual boost::optional<double> video_frame_rate () const = 0;
-       virtual dcp::Size video_size () const = 0;
+       /** @return video size (if known) */
+       virtual boost::optional<dcp::Size> video_size() const = 0;
+       /** @return video length in frames; must not be called if has_video() == false */
        virtual Frame video_length () const = 0;
+       /** @return video sample aspect ratio (if known); must not be called if has_video() == false */
        virtual boost::optional<double> sample_aspect_ratio () const {
-               return boost::optional<double> ();
+               return {};
        }
+       /** @return true if this video is in YUV; must not be called if has_video() == false */
        virtual bool yuv () const = 0;
+       virtual VideoRange range () const = 0;
+       virtual PixelQuanta pixel_quanta () const = 0;
 };