Basic support for trusted device lists in KDMs (#750).
[dcpomatic.git] / src / lib / image_examiner.cc
index 6ad32f511e1971ddd8d24123e4bdf0ba2bcfe696..73d004d7f9571fafad9f601db9c5f1cb58700a90 100644 (file)
@@ -24,6 +24,7 @@
 #include "exceptions.h"
 #include "config.h"
 #include "cross.h"
+#include "compose.hpp"
 #include <dcp/openjpeg_image.h>
 #include <dcp/exceptions.h>
 #include <Magick++.h>
@@ -68,7 +69,7 @@ ImageExaminer::ImageExaminer (shared_ptr<const Film> film, shared_ptr<const Imag
        }
 
        if (content->still ()) {
-               _video_length = Config::instance()->default_still_length() * video_frame_rate().get_value_or (24);
+               _video_length = Config::instance()->default_still_length() * video_frame_rate().get_value_or (film->video_frame_rate ());
        } else {
                _video_length = _image_content->number_of_paths ();
        }
@@ -83,6 +84,21 @@ ImageExaminer::video_size () const
 optional<double>
 ImageExaminer::video_frame_rate () const
 {
+       if (_image_content->has_own_video_frame_rate()) {
+               /* The content already knows what frame rate it should be */
+               return _image_content->video_frame_rate();
+       }
+
        /* Don't know */
        return optional<double> ();
 }
+
+bool
+ImageExaminer::yuv () const
+{
+       /* We never convert ImageSource from YUV to RGB (though maybe sometimes we should)
+          so it makes sense to just say they are never YUV so the option of a conversion
+          to RGB is not offered.
+       */
+       return false;
+}