summaryrefslogtreecommitdiff
path: root/src/lib/image.h
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-09-15 23:36:21 +0200
committerCarl Hetherington <cth@carlh.net>2021-09-27 13:41:46 +0200
commit3799e91d126d243d41c44dcb0ca1bfa66b53a57e (patch)
tree74348b18d5ac0ef81bbebb27fe32862b22baa0b2 /src/lib/image.h
parent9bfa07293928c371d59db2091ba2b7e715ce5994 (diff)
Replace aligned bool with enum Alignment.
Diffstat (limited to 'src/lib/image.h')
-rw-r--r--src/lib/image.h25
1 files changed, 15 insertions, 10 deletions
diff --git a/src/lib/image.h b/src/lib/image.h
index 3cba8f7e5..128b546b5 100644
--- a/src/lib/image.h
+++ b/src/lib/image.h
@@ -40,10 +40,15 @@ class Socket;
class Image : public std::enable_shared_from_this<Image>
{
public:
- Image (AVPixelFormat p, dcp::Size s, bool aligned);
- explicit Image (AVFrame const *, bool aligned);
+ enum class Alignment {
+ COMPACT,
+ PADDED
+ };
+
+ Image (AVPixelFormat p, dcp::Size s, Alignment alignment);
+ explicit Image (AVFrame const *, Alignment alignment);
explicit Image (Image const &);
- Image (std::shared_ptr<const Image>, bool);
+ Image (std::shared_ptr<const Image>, Alignment alignment);
Image& operator= (Image const &);
~Image ();
@@ -53,7 +58,7 @@ public:
/** @return array of sizes of the data in each line, in bytes (including any alignment padding) */
int const * stride () const;
dcp::Size size () const;
- bool aligned () const;
+ Alignment alignment () const;
int planes () const;
int vertical_factor (int) const;
@@ -61,8 +66,8 @@ public:
dcp::Size sample_size (int) const;
float bytes_per_pixel (int) const;
- std::shared_ptr<Image> convert_pixel_format (dcp::YUVToRGB yuv_to_rgb, AVPixelFormat out_format, bool aligned, bool fast) const;
- std::shared_ptr<Image> scale (dcp::Size out_size, dcp::YUVToRGB yuv_to_rgb, AVPixelFormat out_format, bool aligned, bool fast) const;
+ std::shared_ptr<Image> convert_pixel_format (dcp::YUVToRGB yuv_to_rgb, AVPixelFormat out_format, Alignment alignment, bool fast) const;
+ std::shared_ptr<Image> scale (dcp::Size out_size, dcp::YUVToRGB yuv_to_rgb, AVPixelFormat out_format, Alignment alignment, bool fast) const;
std::shared_ptr<Image> crop_scale_window (
Crop crop,
dcp::Size inter_size,
@@ -71,7 +76,7 @@ public:
VideoRange video_range,
AVPixelFormat out_format,
VideoRange out_video_range,
- bool aligned,
+ Alignment alignment,
bool fast
) const;
@@ -94,7 +99,7 @@ public:
void png_error (char const * message);
- static std::shared_ptr<const Image> ensure_aligned (std::shared_ptr<const Image> image, bool aligned);
+ static std::shared_ptr<const Image> ensure_alignment (std::shared_ptr<const Image> image, Alignment alignment);
private:
friend struct pixel_formats_test;
@@ -112,10 +117,10 @@ private:
uint8_t** _data; ///< array of pointers to components
int* _line_size; ///< array of sizes of the data in each line, in bytes (without any alignment padding bytes)
int* _stride; ///< array of strides for each line, in bytes (including any alignment padding bytes)
- bool _aligned;
+ Alignment _alignment;
};
-extern PositionImage merge (std::list<PositionImage> images, bool aligned);
+extern PositionImage merge (std::list<PositionImage> images, Image::Alignment alignment);
extern bool operator== (Image const & a, Image const & b);
#endif