summaryrefslogtreecommitdiff
path: root/src/lib/black_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 01:21:21 +0100
commitd0d584a7dde6de383302615634fdee17e9724fe8 (patch)
tree884bda89f740ab69a86fa4fe1691e787629f8b29 /src/lib/black_decoder.cc
parent46cd0fe7b5b514f0d9456b25f670679cc584a218 (diff)
Hacks.
Diffstat (limited to 'src/lib/black_decoder.cc')
-rw-r--r--src/lib/black_decoder.cc45
1 files changed, 12 insertions, 33 deletions
diff --git a/src/lib/black_decoder.cc b/src/lib/black_decoder.cc
index 0b231edd3..beb6bfef3 100644
--- a/src/lib/black_decoder.cc
+++ b/src/lib/black_decoder.cc
@@ -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,50 +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;
-}
-
-Time
-BlackDecoder::position () const
-{
- return _next_video;
+ return _null_content->length() * video_frame_rate() / TIME_HZ;
}
void
-BlackDecoder::seek (Time t)
+BlackDecoder::seek (VideoContent::Frame frame)
{
- _next_video = t;
+ _next_video_frame = frame;
}
void
BlackDecoder::seek_back ()
{
- boost::shared_ptr<const Film> f = _film.lock ();
- if (!f) {
- return;
- }
-
- _next_video -= f->video_frames_to_time (2);
-}
-
-void
-BlackDecoder::seek_forward ()
-{
- boost::shared_ptr<const Film> f = _film.lock ();
- if (!f) {
- return;
+ if (_next_video_frame > 0) {
+ --_next_video_frame;
}
-
- _next_video += f->video_frames_to_time (1);
}
-
+
bool
BlackDecoder::done () const
{
- return video_done ();
+ return _next_video_frame >= _null_content->video_length ();
}
-
-