- void frame_done ();
-
- void encoder_thread (boost::optional<EncodeServerDescription>);
- void terminate_threads ();
-
- /** Film that we are encoding */
- boost::shared_ptr<const Film> _film;
-
- EventHistory _history;
-
- /** Mutex for _threads */
- mutable boost::mutex _threads_mutex;
- std::list<boost::thread *> _threads;
- mutable boost::mutex _queue_mutex;
- std::list<boost::shared_ptr<DCPVideo> > _queue;
- /** condition to manage thread wakeups when we have nothing to do */
- boost::condition _empty_condition;
- /** condition to manage thread wakeups when we have too much to do */
- boost::condition _full_condition;
-
- boost::shared_ptr<Writer> _writer;
- Waker _waker;
-
- boost::shared_ptr<PlayerVideo> _last_player_video;
- boost::optional<DCPTime> _last_player_video_time;
-
- boost::signals2::scoped_connection _server_found_connection;
+protected:
+ std::shared_ptr<const Film> _film;
+ std::weak_ptr<Job> _job;
+ std::shared_ptr<Player> _player;