- boost::signals2::signal<void (boost::shared_ptr<Image>, SourceFrame, boost::shared_ptr<Subtitle>)> Video;
-
- /** Emitted when some audio data is ready */
- boost::signals2::signal<void (boost::shared_ptr<AudioBuffers>, int64_t)> Audio;
-
-protected:
-
- virtual PixelFormat pixel_format () const = 0;
-
- void process_video (AVFrame *);
- void process_audio (boost::shared_ptr<AudioBuffers>);
- void process_subtitle (boost::shared_ptr<TimedSubtitle>);
- void repeat_last_video ();
-
- /** our Film */
- boost::shared_ptr<Film> _film;
- /** our options */
- boost::shared_ptr<const Options> _opt;
- /** associated Job, or 0 */
- Job* _job;
-
- boost::optional<AudioStream> _audio_stream;
- boost::optional<SubtitleStream> _subtitle_stream;
-
- std::vector<AudioStream> _audio_streams;
- std::vector<SubtitleStream> _subtitle_streams;
-
-private:
- void emit_video (boost::shared_ptr<Image>, boost::shared_ptr<Subtitle>);
- void emit_audio (boost::shared_ptr<AudioBuffers>);
-
- SourceFrame _video_frame;
- int64_t _audio_frame;
-
- std::list<boost::shared_ptr<FilterGraph> > _filter_graphs;
-
- DelayLine* _delay_line;
- int _delay_in_frames;
-
- boost::shared_ptr<TimedSubtitle> _timed_subtitle;
-
- boost::shared_ptr<Image> _last_image;
- boost::shared_ptr<Subtitle> _last_subtitle;