{
public:
Image (AVPixelFormat p, dcp::Size s, bool aligned, int extra_pixels = 0);
- Image (AVFrame *);
- Image (Image const &);
+ explicit Image (AVFrame *);
+ explicit Image (Image const &);
Image (boost::shared_ptr<const Image>, bool);
Image& operator= (Image const &);
~Image ();
bool aligned () const;
int planes () const;
- int line_factor (int) 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, AVPixelFormat out_format, bool aligned, bool fast
return _pixel_format;
}
+ size_t memory_used () const;
+
+ static boost::shared_ptr<Image> ensure_aligned (boost::shared_ptr<Image> image);
+
private:
friend struct pixel_formats_test;
void allocate ();
void swap (Image &);
- float bytes_per_pixel (int) const;
void yuv_16_black (uint16_t, bool);
static uint16_t swap_16 (uint16_t);