- std::list<ContentTimePeriod> subtitles_during (ContentTimePeriod, bool starting) const;
-
- boost::shared_ptr<Log> _log;
-
- std::list<boost::shared_ptr<FilterGraph> > _filter_graphs;
- boost::mutex _filter_graphs_mutex;
+ FlushResult flush_codecs();
+ FlushResult flush_fill();
+
+ VideoFilterGraphSet _filter_graphs;
+
+ dcpomatic::ContentTime _pts_offset;
+ boost::optional<dcpomatic::ContentTime> _current_subtitle_to;
+ /** true if we have a subtitle which has not had emit_stop called for it yet */
+ bool _have_current_subtitle = false;
+
+ std::shared_ptr<Image> _black_image;
+
+ std::map<std::shared_ptr<FFmpegAudioStream>, boost::optional<dcpomatic::ContentTime>> _next_time;
+
+ enum class FlushState {
+ CODECS,
+ AUDIO_DECODER,
+ FILL,
+ };