- Image (PixelFormat p)
- : _pixel_format (p)
- {}
-
- virtual ~Image () {}
-
- /** @return Array of pointers to arrays of the component data */
- virtual uint8_t ** data () const = 0;
-
- /** @return Array of sizes of the data in each line, in bytes (without any alignment padding bytes) */
- virtual int * line_size () const = 0;
-
- /** @return Array of strides for each line (including any alignment padding bytes) */
- virtual int * stride () const = 0;
-
- /** @return Size of the image, in pixels */
- virtual Size size () const = 0;
-
- int components () const;
- int lines (int) const;
- boost::shared_ptr<Image> scale_and_convert_to_rgb (Size, int, Scaler const *) const;
- boost::shared_ptr<Image> scale (Size, Scaler const *) const;
- boost::shared_ptr<Image> post_process (std::string) const;
- void alpha_blend (boost::shared_ptr<Image> image, Position pos);
-
+ Image (AVPixelFormat p, dcp::Size s, bool aligned);
+ explicit Image (AVFrame *);
+ explicit Image (Image const &);
+ Image (boost::shared_ptr<const Image>, bool);
+ Image& operator= (Image const &);
+ ~Image ();
+
+ uint8_t * const * data () const;
+ int const * line_size () const;
+ int const * stride () const;
+ dcp::Size size () const;
+ bool aligned () const;
+
+ int planes () const;
+ int vertical_factor (int) const;
+ int horizontal_factor (int) const;
+ dcp::Size sample_size (int) const;
+ float bytes_per_pixel (int) const;
+
+ boost::shared_ptr<Image> convert_pixel_format (dcp::YUVToRGB yuv_to_rgb, AVPixelFormat out_format, bool aligned, bool fast) const;
+ boost::shared_ptr<Image> scale (dcp::Size out_size, dcp::YUVToRGB yuv_to_rgb, AVPixelFormat out_format, bool aligned, bool fast) const;
+ boost::shared_ptr<Image> crop_scale_window (
+ Crop crop, dcp::Size inter_size, dcp::Size out_size, dcp::YUVToRGB yuv_to_rgb, VideoRange video_range, AVPixelFormat out_format, bool aligned, bool fast
+ ) const;
+