diff options
Diffstat (limited to 'src/lib/video_decoder.cc')
| -rw-r--r-- | src/lib/video_decoder.cc | 31 |
1 files changed, 12 insertions, 19 deletions
diff --git a/src/lib/video_decoder.cc b/src/lib/video_decoder.cc index 16a076698..533fdcf1a 100644 --- a/src/lib/video_decoder.cc +++ b/src/lib/video_decoder.cc @@ -1,3 +1,5 @@ +/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */ + /* Copyright (C) 2012 Carl Hetherington <cth@carlh.net> @@ -22,7 +24,6 @@ #include "film.h" #include "image.h" #include "log.h" -#include "options.h" #include "job.h" #include "i18n.h" @@ -31,10 +32,10 @@ using std::cout; using boost::shared_ptr; using boost::optional; -VideoDecoder::VideoDecoder (shared_ptr<Film> f, DecodeOptions o) - : Decoder (f, o) +VideoDecoder::VideoDecoder (shared_ptr<const Film> f) + : Decoder (f) , _video_frame (0) - , _last_source_time (0) + , _last_content_time (0) { } @@ -42,20 +43,21 @@ VideoDecoder::VideoDecoder (shared_ptr<Film> f, DecodeOptions o) /** Called by subclasses to tell the world that some video data is ready. * We find a subtitle then emit it for listeners. * @param image frame to emit. - * @param t Time of the frame within the source, in seconds. + * @param t Time of the frame within the source. */ void -VideoDecoder::emit_video (shared_ptr<Image> image, bool same, double t) +VideoDecoder::emit_video (shared_ptr<Image> image, bool same, Time t) { shared_ptr<Subtitle> sub; if (_timed_subtitle && _timed_subtitle->displayed_at (t)) { sub = _timed_subtitle->subtitle (); } + TIMING (N_("Decoder emits %1"), _video_frame); Video (image, same, sub, t); ++_video_frame; - - _last_source_time = t; + + _last_content_time = t; } /** Set up the current subtitle. This will be put onto frames that @@ -74,21 +76,12 @@ VideoDecoder::emit_subtitle (shared_ptr<TimedSubtitle> s) } } -/** Set which stream of subtitles we should use from our source. - * @param s Stream to use. - */ -void -VideoDecoder::set_subtitle_stream (shared_ptr<SubtitleStream> s) -{ - _subtitle_stream = s; -} - void VideoDecoder::set_progress (Job* j) const { assert (j); - + if (_film->length()) { - j->set_progress (float (_video_frame) / _film->length().get()); + j->set_progress (float (_video_frame) / _film->time_to_video_frames (_film->length())); } } |
