- virtual void process_end () {}
-
- float current_frames_per_second () const;
- bool skipping () const;
- SourceFrame last_frame () const;
-
-protected:
-
- /** 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 ();
-
+ void end ();
+
+ float current_encoding_rate () const;
+ int video_frames_enqueued () const;
+
+ void servers_list_changed ();
+
+private:
+
+ static void call_servers_list_changed (boost::weak_ptr<Encoder> encoder);
+
+ void frame_done ();
+
+ void encoder_thread (boost::optional<EncodeServerDescription>);
+ void terminate_threads ();
+