Various alignment adjustments.
[dcpomatic.git] / src / lib / image.h
index a5823656c85b1d676ed636ee9abbbaca0ff7b224..3cba8f7e501ae0478f0cfcb247ebce2877eaa260 100644 (file)
@@ -41,7 +41,7 @@ class Image : public std::enable_shared_from_this<Image>
 {
 public:
        Image (AVPixelFormat p, dcp::Size s, bool aligned);
-       explicit Image (AVFrame *);
+       explicit Image (AVFrame const *, bool aligned);
        explicit Image (Image const &);
        Image (std::shared_ptr<const Image>, bool);
        Image& operator= (Image const &);
@@ -80,7 +80,6 @@ public:
        void alpha_blend (std::shared_ptr<const Image> image, Position<int> pos);
        void copy (std::shared_ptr<const Image> image, Position<int> pos);
        void fade (float);
-       void video_range_to_full_range ();
 
        void read_from_socket (std::shared_ptr<Socket>);
        void write_to_socket (std::shared_ptr<Socket>) const;
@@ -95,16 +94,18 @@ public:
 
        void png_error (char const * message);
 
-       static std::shared_ptr<const Image> ensure_aligned (std::shared_ptr<const Image> image);
+       static std::shared_ptr<const Image> ensure_aligned (std::shared_ptr<const Image> image, bool aligned);
 
 private:
        friend struct pixel_formats_test;
+       friend struct make_part_black_test;
 
        void allocate ();
        void swap (Image &);
        void make_part_black (int x, int w);
        void yuv_16_black (uint16_t, bool);
        static uint16_t swap_16 (uint16_t);
+       void video_range_to_full_range ();
 
        dcp::Size _size;
        AVPixelFormat _pixel_format; ///< FFmpeg's way of describing the pixel format of this Image
@@ -114,7 +115,7 @@ private:
        bool _aligned;
 };
 
-extern PositionImage merge (std::list<PositionImage> images);
+extern PositionImage merge (std::list<PositionImage> images, bool aligned);
 extern bool operator== (Image const & a, Image const & b);
 
 #endif