Don't scale chroma subsampled images to sizes that don't align with the subsampling...
[dcpomatic.git] / src / lib / video_content.h
index c1e1dbeec5b05345f96730b56bd6871da6c4dead..2adf941d97cc3cd4a26a5b0e0c13ca33abd95464 100644 (file)
@@ -26,6 +26,7 @@
 #include "colour_conversion.h"
 #include "content_part.h"
 #include "dcpomatic_time.h"
+#include "pixel_quanta.h"
 #include "types.h"
 #include "user_property.h"
 #include <dcp/language_tag.h>
@@ -45,7 +46,6 @@ public:
        static int const SIZE;
        static int const FRAME_TYPE;
        static int const CROP;
-       static int const SCALE;
        static int const COLOUR_CONVERSION;
        static int const FADE_IN;
        static int const FADE_OUT;
@@ -113,27 +113,29 @@ public:
                return _frame_type;
        }
 
-       Crop crop () const {
+       Crop actual_crop () const;
+
+       Crop requested_crop () const {
                boost::mutex::scoped_lock lm (_mutex);
                return _crop;
        }
 
-       int left_crop () const {
+       int requested_left_crop () const {
                boost::mutex::scoped_lock lm (_mutex);
                return _crop.left;
        }
 
-       int right_crop () const {
+       int requested_right_crop () const {
                boost::mutex::scoped_lock lm (_mutex);
                return _crop.right;
        }
 
-       int top_crop () const {
+       int requested_top_crop () const {
                boost::mutex::scoped_lock lm (_mutex);
                return _crop.top;
        }
 
-       int bottom_crop () const {
+       int requested_bottom_crop () const {
                boost::mutex::scoped_lock lm (_mutex);
                return _crop.bottom;
        }
@@ -181,6 +183,11 @@ public:
                return _range;
        }
 
+       PixelQuanta pixel_quanta () const {
+               boost::mutex::scoped_lock lm (_mutex);
+               return _pixel_quanta;
+       }
+
        bool use () const {
                boost::mutex::scoped_lock lm (_mutex);
                return _use;
@@ -246,6 +253,7 @@ private:
        /** fade out time in content frames */
        Frame _fade_out;
        VideoRange _range;
+       PixelQuanta _pixel_quanta;
        boost::optional<dcp::LanguageTag> _burnt_subtitle_language;
 };