-
- /** Called with a frame of video.
- * @param i Video frame image.
- * @param f Frame number within the film's source.
- * @param s A subtitle that should be on this frame, or 0.
- */
- virtual void do_process_video (boost::shared_ptr<const Image> i, SourceFrame f, boost::shared_ptr<Subtitle> s) = 0;
-
- /** Called with some audio data */
- virtual void do_process_audio (boost::shared_ptr<const AudioBuffers>) = 0;
-
- void frame_done (SourceFrame n);
- void frame_skipped ();
-
- /** Film that we are encoding */
- boost::shared_ptr<const Film> _film;
- /** Options */
- boost::shared_ptr<const Options> _opt;
-
- /** Mutex for _time_history, _just_skipped and _last_frame */
- mutable boost::mutex _history_mutex;
- /** List of the times of completion of the last _history_size frames;
- first is the most recently completed.
- */
- std::list<struct timeval> _time_history;
- /** Number of frames that we should keep history for */
- static int const _history_size;
- /** true if the last frame we processed was skipped (because it was already done) */
- bool _just_skipped;
- /** Source index of the last frame to be processed */
- SourceFrame _last_frame;