+ boost::optional<dcpomatic::ContentTime> _first_video;
+ /** Video length, either obtained from the header or derived by running
+ * through the whole file.
+ */
+ Frame _video_length;
+ bool _need_video_length;
+
+ boost::optional<double> _rotation;
+ bool _pulldown;
+
+#ifdef DCPOMATIC_VARIANT_SWAROOP
+ boost::optional<std::string> _id;
+#endif
+
+ struct SubtitleStart
+ {
+ SubtitleStart (std::string id_, bool image_, dcpomatic::ContentTime time_)
+ : id (id_)
+ , image (image_)
+ , time (time_)
+ {}
+
+ std::string id;
+ /** true if it's an image subtitle, false for text */
+ bool image;
+ dcpomatic::ContentTime time;
+ };
+
+ typedef std::map<boost::shared_ptr<FFmpegSubtitleStream>, boost::optional<SubtitleStart> > LastSubtitleMap;
+ LastSubtitleMap _last_subtitle_start;