X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fvideo_examiner.h;h=86dd9345a5e75b7e5dd0f511fdcaeeb7f0fd62be;hp=1ff16a704f233f5cddf27e7f6b826f7b1300e1df;hb=HEAD;hpb=3828baf56467224f5d44049bf1e7a7ed11f43a05 diff --git a/src/lib/video_examiner.h b/src/lib/video_examiner.h index 1ff16a704..b670dafc5 100644 --- a/src/lib/video_examiner.h +++ b/src/lib/video_examiner.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2013-2016 Carl Hetherington + Copyright (C) 2013-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,14 +18,17 @@ */ + /** @file src/lib/video_examiner.h * @brief VideoExaminer class. */ -#include "types.h" + +#include "pixel_quanta.h" #include "video_content.h" #include + /** @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 video_frame_rate () const = 0; - virtual dcp::Size video_size () const = 0; + /** @return video size (if known) */ + virtual boost::optional 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 sample_aspect_ratio () const { - return boost::optional (); + 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; };