Merge branch 'master' into content-rework-take5
[dcpomatic.git] / src / lib / imagemagick_decoder.cc
index 508863e3e003d43350524ee46ec2b966cc1fe82a..7049b7d6e31945ace55eadd9e16bc4ef6f04a170 100644 (file)
@@ -61,12 +61,14 @@ ImageMagickDecoder::video_length () const
 bool
 ImageMagickDecoder::pass ()
 {
-       if (_position > 0 && _position < _imagemagick_content->video_length ()) {
-               repeat_last_video ();
+       if (_position < 0 || _position >= _imagemagick_content->video_length ()) {
+               return true;
+       }
+
+       if (have_last_video ()) {
+               repeat_last_video (double (_position) / 24);
                _position++;
                return false;
-       } else if (_position >= _imagemagick_content->video_length ()) {
-               return true;
        }
        
        Magick::Image* magick_image = new Magick::Image (_imagemagick_content->file().string ());
@@ -90,7 +92,7 @@ ImageMagickDecoder::pass ()
 
        image = image->crop (_film->crop(), true);
        
-       emit_video (image, 0);
+       emit_video (image, double (_position) / 24);
 
        ++_position;
        return false;
@@ -103,16 +105,6 @@ ImageMagickDecoder::pixel_format () const
        return PIX_FMT_RGB24;
 }
 
-bool
-ImageMagickDecoder::seek_to_last ()
-{
-       if (_position > 0) {
-               --_position;
-       }
-
-       return false;
-}
-
 bool
 ImageMagickDecoder::seek (double t)
 {