diff options
| author | Carl Hetherington <cth@carlh.net> | 2018-10-12 00:46:00 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2018-10-12 00:46:00 +0100 |
| commit | 72b11d5eb036651b6ff68edf3ed270e8fc52960f (patch) | |
| tree | c6b88de5c86696f186c93322d50fd954d09c9349 /src/lib/image.cc | |
| parent | c4ac1ba47652884a647103ec49b2de4c0b6e60a9 (diff) | |
Change MagickImageProxy to FFmpegImageProxy and make it use FFmpeg
to decode images. Hence remove {Image,Graphics}Magick.
Diffstat (limited to 'src/lib/image.cc')
| -rw-r--r-- | src/lib/image.cc | 61 |
1 files changed, 2 insertions, 59 deletions
diff --git a/src/lib/image.cc b/src/lib/image.cc index 75345cb06..0590a4e78 100644 --- a/src/lib/image.cc +++ b/src/lib/image.cc @@ -30,7 +30,6 @@ #include "dcpomatic_socket.h" #include <dcp/rgb_xyz.h> #include <dcp/transfer_function.h> -#include <Magick++.h> extern "C" { #include <libswscale/swscale.h> #include <libavutil/pixfmt.h> @@ -794,34 +793,6 @@ Image::Image (AVPixelFormat p, dcp::Size s, bool aligned, int extra_pixels) allocate (); } -/** Construct an Image from some PNG data */ -Image::Image (dcp::Data png) -{ - Magick::Blob blob; - blob.update (png.data().get(), png.size()); - Magick::Image* magick_image = new Magick::Image (blob); - _size = dcp::Size(magick_image->columns(), magick_image->rows()); - _pixel_format = AV_PIX_FMT_BGRA; - _aligned = true; - _extra_pixels = 0; - allocate (); - - /* Write line-by-line here as _image must be aligned, and write() cannot be told about strides */ - uint8_t* p = data()[0]; - for (int i = 0; i < _size.height; ++i) { -#ifdef DCPOMATIC_HAVE_MAGICKCORE_NAMESPACE - using namespace MagickCore; -#endif -#ifdef DCPOMATIC_HAVE_MAGICKLIB_NAMESPACE - using namespace MagickLib; -#endif - magick_image->write (0, i, _size.width, 1, "BGRA", CharPixel, p); - p += stride()[0]; - } - - delete magick_image; -} - void Image::allocate () { @@ -1187,34 +1158,6 @@ Image::memory_used () const dcp::Data Image::as_png () const { -#ifdef DCPOMATIC_IMAGE_MAGICK - using namespace MagickCore; -#else - using namespace MagickLib; -#endif - - string format; - switch (_pixel_format) { - case AV_PIX_FMT_RGB24: - format = "RGB"; - break; - case AV_PIX_FMT_BGRA: - format = "BGRA"; - break; - default: - DCPOMATIC_ASSERT (false); - break; - } - - shared_ptr<const Image> use; - if (aligned()) { - use.reset (new Image(shared_from_this(), false)); - } - - Magick::Image m (size().width, size().height, format, CharPixel, (void *) use->data()[0]); - m.magick ("PNG"); - Magick::Blob blob; - m.write (&blob); - /* XXX: could use a subclass of Data here (storing its data in a Blob) */ - return dcp::Data (static_cast<const uint8_t*>(blob.data()), blob.length()); + /* XXX */ + return dcp::Data(); } |
