X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fimage.h;h=5c3931102af776c259965bf7fb9487a02370d193;hb=9c9890b9ff89af710db21145c03a09993c629e3e;hp=172250eb1bb253ffd6a87e9998951ca6b534a7c3;hpb=cb990adba9c57e5107ef2aa9716cf0a26c1df83d;p=dcpomatic.git diff --git a/src/lib/image.h b/src/lib/image.h index 172250eb1..5c3931102 100644 --- a/src/lib/image.h +++ b/src/lib/image.h @@ -24,21 +24,21 @@ #ifndef DCPOMATIC_IMAGE_H #define DCPOMATIC_IMAGE_H -#include -#include -#include +#include "position.h" +#include "position_image.h" +#include "types.h" +#include extern "C" { #include #include } -#include -#include "util.h" -#include "position.h" -#include "position_image.h" +#include +#include +#include -class Scaler; +class Socket; -class Image : public dcp::Image +class Image { public: Image (AVPixelFormat, dcp::Size, bool); @@ -48,9 +48,9 @@ public: Image& operator= (Image const &); ~Image (); - uint8_t ** data () const; + uint8_t * const * data () const; int * line_size () const; - int * stride () const; + int const * stride () const; dcp::Size size () const; bool aligned () const; @@ -58,10 +58,9 @@ public: int line_factor (int) const; int lines (int) const; - boost::shared_ptr scale (dcp::Size, Scaler const *, AVPixelFormat, bool aligned) const; + boost::shared_ptr scale (dcp::Size, dcp::YUVToRGB yuv_to_rgb, AVPixelFormat, bool aligned) const; boost::shared_ptr crop (Crop c, bool aligned) const; - - boost::shared_ptr crop_scale_window (Crop c, dcp::Size, dcp::Size, Scaler const *, AVPixelFormat, bool aligned) const; + boost::shared_ptr crop_scale_window (Crop c, dcp::Size, dcp::Size, dcp::YUVToRGB yuv_to_rgb, AVPixelFormat, bool aligned) const; void make_black (); void make_transparent (); @@ -86,7 +85,8 @@ private: float bytes_per_pixel (int) const; void yuv_16_black (uint16_t, bool); static uint16_t swap_16 (uint16_t); - + + dcp::Size _size; AVPixelFormat _pixel_format; ///< FFmpeg's way of describing the pixel format of this Image uint8_t** _data; ///< array of pointers to components int* _line_size; ///< array of sizes of the data in each line, in pixels (without any alignment padding bytes)