diff options
| author | Carl Hetherington <cth@carlh.net> | 2012-12-17 23:36:18 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2012-12-17 23:36:18 +0000 |
| commit | 8dd455ba867122056e2093e259a9a045aeeea451 (patch) | |
| tree | 1e4ca9f9a413fc34acace48b28297fd3e4d26982 /src/lib/imagemagick_decoder.cc | |
| parent | c421f6a5551f0755737f57fbeac6a0157599e0e8 (diff) | |
Various fixes to still-image mode.
Diffstat (limited to 'src/lib/imagemagick_decoder.cc')
| -rw-r--r-- | src/lib/imagemagick_decoder.cc | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/lib/imagemagick_decoder.cc b/src/lib/imagemagick_decoder.cc index 33bc5ee7b..5713e68f9 100644 --- a/src/lib/imagemagick_decoder.cc +++ b/src/lib/imagemagick_decoder.cc @@ -73,13 +73,13 @@ ImageMagickDecoder::pass () return true; } - using namespace MagickCore; - Magick::Image* magick_image = new Magick::Image (_film->content_path ()); Size size = native_size (); - shared_ptr<SimpleImage> image (new SimpleImage (PIX_FMT_RGB24, size, false)); + shared_ptr<Image> image (new SimpleImage (PIX_FMT_RGB24, size, false)); + using namespace MagickCore; + uint8_t* p = image->data()[0]; for (int y = 0; y < size.height; ++y) { for (int x = 0; x < size.width; ++x) { @@ -91,6 +91,8 @@ ImageMagickDecoder::pass () } delete magick_image; + + image = image->crop (_film->crop(), false); emit_video (image, 0); @@ -111,10 +113,18 @@ ImageMagickDecoder::seek (SourceFrame f) _iter = _files.begin (); for (int i = 0; i < f; ++i) { if (_iter == _files.end()) { - return false; + return true; } ++_iter; } - return true; + return false; +} + +void +ImageMagickDecoder::film_changed (Film::Property p) +{ + if (p == Film::CROP) { + OutputChanged (); + } } |
