-
- virtual PixelFormat pixel_format () const = 0;
-
- void emit_video (boost::shared_ptr<Image>, SourceFrame);
- void emit_subtitle (boost::shared_ptr<TimedSubtitle>);
- void repeat_last_video ();
-
- /** Subtitle stream to use when decoding */
- boost::shared_ptr<SubtitleStream> _subtitle_stream;
- /** Subtitle streams that this decoder's content has */
- std::vector<boost::shared_ptr<SubtitleStream> > _subtitle_streams;
-
-private:
- void signal_video (boost::shared_ptr<Image>, boost::shared_ptr<Subtitle>);
-
- SourceFrame _video_frame;
- SourceFrame _last_source_frame;
-
- boost::shared_ptr<TimedSubtitle> _timed_subtitle;
-
- boost::shared_ptr<Image> _last_image;
- boost::shared_ptr<Subtitle> _last_subtitle;
+ friend struct video_decoder_fill_test1;
+ friend struct video_decoder_fill_test2;
+
+ void seek (ContentTime time, bool accurate);
+ void video (boost::shared_ptr<const ImageProxy>, Frame frame);
+ std::list<ContentVideo> decoded_video (Frame frame);
+ void fill_one_eye (Frame from, Frame to, Eyes);
+ void fill_both_eyes (Frame from, Frame to, Eyes);
+
+ boost::shared_ptr<const VideoContent> _video_content;
+ std::list<ContentVideo> _decoded_video;
+ boost::shared_ptr<Image> _black_image;
+ boost::optional<ContentTime> _last_seek_time;
+ bool _last_seek_accurate;
+
+ /** true if this decoder should ignore all video; i.e. never produce any */
+ bool _ignore_video;