-
- if (!_video_size) {
- using namespace MagickCore;
- Magick::Image* image = new Magick::Image (p.string());
- _video_size = libdcp::Size (image->columns(), image->rows());
- delete image;
+ uint8_t* buffer = new uint8_t[size];
+ fread (buffer, 1, size, f);
+ fclose (f);
+ try {
+ _video_size = dcp::decompress_j2k (buffer, size, 0)->size ();
+ } catch (dcp::DCPReadError& e) {
+ delete[] buffer;
+ throw DecodeError (String::compose (_("Could not decode JPEG2000 file %1 (%2)"), path, e.what ()));