Builds again.
[dcpomatic.git] / src / lib / black_decoder.cc
index e8e1a3df2e2ce967bb5ae79d0fcfef16a82e85da..beb6bfef385c5b5f5a3c21a67e95d7aece5d845a 100644 (file)
@@ -25,7 +25,8 @@ using boost::shared_ptr;
 
 BlackDecoder::BlackDecoder (shared_ptr<const Film> f, shared_ptr<NullContent> c)
        : Decoder (f)
-       , VideoDecoder (f, c)
+       , VideoDecoder (f)
+       , _null_content (c)
 {
 
 }
@@ -36,9 +37,9 @@ BlackDecoder::pass ()
        if (!_image) {
                _image.reset (new SimpleImage (AV_PIX_FMT_RGB24, video_size(), true));
                _image->make_black ();
-               video (_image, false, _next_video);
+               video (_image, false, _next_video_frame);
        } else {
-               video (_image, true, _next_video);
+               video (_image, true, _next_video_frame);
        }
 }
 
@@ -53,20 +54,28 @@ BlackDecoder::video_frame_rate () const
        return f->dcp_video_frame_rate ();
 }
 
-ContentVideoFrame
+VideoContent::Frame
 BlackDecoder::video_length () const
 {
-       return _video_content->length() * video_frame_rate() / TIME_HZ;
+       return _null_content->length() * video_frame_rate() / TIME_HZ;
 }
 
-Time
-BlackDecoder::next () const
+void
+BlackDecoder::seek (VideoContent::Frame frame)
 {
-       return _next_video;
+       _next_video_frame = frame;
 }
 
 void
-BlackDecoder::seek (Time t)
+BlackDecoder::seek_back ()
+{
+       if (_next_video_frame > 0) {
+               --_next_video_frame;
+       }
+}
+       
+bool
+BlackDecoder::done () const
 {
-       _next_video = t;
+       return _next_video_frame >= _null_content->video_length ();
 }