summaryrefslogtreecommitdiff
path: root/src/lib/image.h
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2012-12-17 23:36:18 +0000
committerCarl Hetherington <cth@carlh.net>2012-12-17 23:36:18 +0000
commit8dd455ba867122056e2093e259a9a045aeeea451 (patch)
tree1e4ca9f9a413fc34acace48b28297fd3e4d26982 /src/lib/image.h
parentc421f6a5551f0755737f57fbeac6a0157599e0e8 (diff)
Various fixes to still-image mode.
Diffstat (limited to 'src/lib/image.h')
-rw-r--r--src/lib/image.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/lib/image.h b/src/lib/image.h
index 22758a6cf..13b92d72f 100644
--- a/src/lib/image.h
+++ b/src/lib/image.h
@@ -74,6 +74,7 @@ public:
boost::shared_ptr<Image> scale (Size, Scaler const *, bool aligned) const;
boost::shared_ptr<Image> post_process (std::string, bool aligned) const;
void alpha_blend (boost::shared_ptr<const Image> image, Position pos);
+ boost::shared_ptr<Image> crop (Crop c, bool aligned) const;
void make_black ();
@@ -84,7 +85,11 @@ public:
return _pixel_format;
}
-private:
+protected:
+ virtual void swap (Image &);
+ float bytes_per_pixel (int) const;
+
+private:
AVPixelFormat _pixel_format; ///< FFmpeg's way of describing the pixel format of this Image
};
@@ -103,6 +108,10 @@ public:
Size size () const;
private:
+ /* Not allowed */
+ FilterBufferImage (FilterBufferImage const &);
+ FilterBufferImage& operator= (FilterBufferImage const &);
+
AVFilterBufferRef* _buffer;
};
@@ -113,6 +122,8 @@ class SimpleImage : public Image
{
public:
SimpleImage (AVPixelFormat, Size, bool);
+ SimpleImage (SimpleImage const &);
+ SimpleImage& operator= (SimpleImage const &);
SimpleImage (boost::shared_ptr<const Image>, bool aligned);
~SimpleImage ();
@@ -120,9 +131,12 @@ public:
int * line_size () const;
int * stride () const;
Size size () const;
+
+protected:
+ void allocate ();
+ void swap (SimpleImage &);
private:
-
Size _size; ///< size in pixels
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)