summaryrefslogtreecommitdiff
path: root/src/lib/imagemagick_decoder.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-06-26 01:21:21 +0100
committerCarl Hetherington <cth@carlh.net>2013-06-26 17:04:31 +0100
commit09a9ac376db005a40a351736bcff4077f098825d (patch)
tree64ea69741155d15d114ad96daf0f90e24b3abe28 /src/lib/imagemagick_decoder.cc
parent46cd0fe7b5b514f0d9456b25f670679cc584a218 (diff)
Another try at sorting out the thorny question of timing.
Diffstat (limited to 'src/lib/imagemagick_decoder.cc')
-rw-r--r--src/lib/imagemagick_decoder.cc41
1 files changed, 9 insertions, 32 deletions
diff --git a/src/lib/imagemagick_decoder.cc b/src/lib/imagemagick_decoder.cc
index c9123c77c..04d3d9df7 100644
--- a/src/lib/imagemagick_decoder.cc
+++ b/src/lib/imagemagick_decoder.cc
@@ -34,7 +34,7 @@ using libdcp::Size;
ImageMagickDecoder::ImageMagickDecoder (shared_ptr<const Film> f, shared_ptr<const ImageMagickContent> c)
: Decoder (f)
- , VideoDecoder (f, c)
+ , VideoDecoder (f)
, ImageMagick (c)
{
@@ -43,12 +43,12 @@ ImageMagickDecoder::ImageMagickDecoder (shared_ptr<const Film> f, shared_ptr<con
void
ImageMagickDecoder::pass ()
{
- if (_next_video >= _imagemagick_content->length ()) {
+ if (_video_position >= _imagemagick_content->video_length ()) {
return;
}
if (_image) {
- video (_image, true, _next_video);
+ video (_image, true, _video_position);
return;
}
@@ -71,48 +71,25 @@ ImageMagickDecoder::pass ()
delete magick_image;
- _image = _image->crop (_imagemagick_content->crop(), true);
- video (_image, false, _next_video);
+ video (_image, false, _video_position);
}
void
-ImageMagickDecoder::seek (Time t)
+ImageMagickDecoder::seek (VideoContent::Frame frame)
{
- _next_video = t;
+ _video_position = frame;
}
void
ImageMagickDecoder::seek_back ()
{
- boost::shared_ptr<const Film> f = _film.lock ();
- if (!f) {
- return;
- }
-
- _next_video -= f->video_frames_to_time (2);
-}
-
-void
-ImageMagickDecoder::seek_forward ()
-{
- boost::shared_ptr<const Film> f = _film.lock ();
- if (!f) {
- return;
+ if (_video_position > 0) {
+ _video_position--;
}
-
- _next_video += f->video_frames_to_time (1);
}
-Time
-ImageMagickDecoder::position () const
-{
- return _next_video;
-}
-
-
bool
ImageMagickDecoder::done () const
{
- return video_done ();
+ return _video_position >= _imagemagick_content->video_length ();
}
-