summaryrefslogtreecommitdiff
path: root/src/lib/image.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-10-12 00:46:00 +0100
committerCarl Hetherington <cth@carlh.net>2018-10-12 00:46:00 +0100
commit72b11d5eb036651b6ff68edf3ed270e8fc52960f (patch)
treec6b88de5c86696f186c93322d50fd954d09c9349 /src/lib/image.cc
parentc4ac1ba47652884a647103ec49b2de4c0b6e60a9 (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.cc61
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();
}