summaryrefslogtreecommitdiff
path: root/src/lib/image.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-09-15 01:00:33 +0200
committerCarl Hetherington <cth@carlh.net>2021-09-27 13:41:46 +0200
commit9bfa07293928c371d59db2091ba2b7e715ce5994 (patch)
treef73bc4c69e13d19c934b0ee798ebfa4a68e46597 /src/lib/image.cc
parentc59981ce92898f6be6987f10ebb29161e36e6766 (diff)
Various alignment adjustments.
Diffstat (limited to 'src/lib/image.cc')
-rw-r--r--src/lib/image.cc16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/lib/image.cc b/src/lib/image.cc
index d2f8fbbfd..ce3f5817d 100644
--- a/src/lib/image.cc
+++ b/src/lib/image.cc
@@ -1027,10 +1027,10 @@ Image::Image (Image const & other)
}
}
-Image::Image (AVFrame const * frame)
+Image::Image (AVFrame const * frame, bool aligned)
: _size (frame->width, frame->height)
, _pixel_format (static_cast<AVPixelFormat>(frame->format))
- , _aligned (true)
+ , _aligned (aligned)
{
DCPOMATIC_ASSERT (_pixel_format != AV_PIX_FMT_NONE);
@@ -1139,7 +1139,7 @@ Image::aligned () const
PositionImage
-merge (list<PositionImage> images)
+merge (list<PositionImage> images, bool aligned)
{
if (images.empty ()) {
return {};
@@ -1154,7 +1154,7 @@ merge (list<PositionImage> images)
all.extend (dcpomatic::Rect<int>(i.position, i.image->size().width, i.image->size().height));
}
- auto merged = make_shared<Image>(images.front().image->pixel_format(), dcp::Size(all.width, all.height), false);
+ auto merged = make_shared<Image>(images.front().image->pixel_format(), dcp::Size(all.width, all.height), aligned);
merged->make_transparent ();
for (auto const& i: images) {
merged->alpha_blend (i.image, i.position - all.position());
@@ -1312,16 +1312,18 @@ Image::fade (float f)
}
}
+
shared_ptr<const Image>
-Image::ensure_aligned (shared_ptr<const Image> image)
+Image::ensure_aligned (shared_ptr<const Image> image, bool aligned)
{
- if (image->aligned()) {
+ if (image->aligned() == aligned) {
return image;
}
- return make_shared<Image>(image, true);
+ return make_shared<Image>(image, aligned);
}
+
size_t
Image::memory_used () const
{