summaryrefslogtreecommitdiff
path: root/src/lib/imagemagick_decoder.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2012-12-17 23:36:18 +0000
committerCarl Hetherington <cth@carlh.net>2012-12-17 23:36:18 +0000
commit8dd455ba867122056e2093e259a9a045aeeea451 (patch)
tree1e4ca9f9a413fc34acace48b28297fd3e4d26982 /src/lib/imagemagick_decoder.cc
parentc421f6a5551f0755737f57fbeac6a0157599e0e8 (diff)
Various fixes to still-image mode.
Diffstat (limited to 'src/lib/imagemagick_decoder.cc')
-rw-r--r--src/lib/imagemagick_decoder.cc20
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 ();
+ }
}