diff options
| author | Carl Hetherington <cth@carlh.net> | 2021-09-15 01:00:33 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2021-09-27 13:41:46 +0200 |
| commit | 9bfa07293928c371d59db2091ba2b7e715ce5994 (patch) | |
| tree | f73bc4c69e13d19c934b0ee798ebfa4a68e46597 /src/lib/image.cc | |
| parent | c59981ce92898f6be6987f10ebb29161e36e6766 (diff) | |
Various alignment adjustments.
Diffstat (limited to 'src/lib/image.cc')
| -rw-r--r-- | src/lib/image.cc | 16 |
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 { |
