* @brief A set of classes to describe video images.
*/
-#ifndef DVDOMATIC_IMAGE_H
-#define DVDOMATIC_IMAGE_H
+#ifndef DCPOMATIC_IMAGE_H
+#define DCPOMATIC_IMAGE_H
#include <string>
#include <boost/shared_ptr.hpp>
/** @return Array of strides for each line (including any alignment padding bytes) */
virtual int * stride () const = 0;
- /** @return libdcp::Size of the image, in pixels */
+ /** @return Size of the image, in pixels */
virtual libdcp::Size size () const = 0;
+ virtual bool aligned () const = 0;
+
int components () const;
int lines (int) const;
virtual void swap (Image &);
float bytes_per_pixel (int) const;
-private:
+private:
+ void yuv_16_black (uint16_t);
+ static uint16_t swap_16 (uint16_t);
+
AVPixelFormat _pixel_format; ///< FFmpeg's way of describing the pixel format of this Image
};
int * line_size () const;
int * stride () const;
libdcp::Size size () const;
+ bool aligned () const;
private:
/* Not allowed */
FilterBufferImage& operator= (FilterBufferImage const &);
AVFilterBufferRef* _buffer;
+ int* _line_size;
};
/** @class SimpleImage
public:
SimpleImage (AVPixelFormat, libdcp::Size, bool);
SimpleImage (SimpleImage const &);
+ SimpleImage (boost::shared_ptr<const Image>);
SimpleImage& operator= (SimpleImage const &);
~SimpleImage ();
int * line_size () const;
int * stride () const;
libdcp::Size size () const;
+ bool aligned () const;
protected:
void allocate ();