/*
- Copyright (C) 2013-2016 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2013-2019 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
#include "dcpomatic_time.h"
#include "rgba.h"
#include "ffmpeg_stream.h"
+#include <boost/thread/mutex.hpp>
#include <map>
class FFmpegSubtitleStream : public FFmpegStream
: FFmpegStream (n, i)
{}
- FFmpegSubtitleStream (cxml::ConstNodePtr, int version);
+ FFmpegSubtitleStream (cxml::ConstNodePtr node, int version);
void as_xml (xmlpp::Node *) const;
- void add_image_subtitle (std::string id, ContentTimePeriod period);
- void add_text_subtitle (std::string id, ContentTimePeriod period);
- std::list<ContentTimePeriod> image_subtitles_during (ContentTimePeriod period, bool starting) const;
- std::list<ContentTimePeriod> text_subtitles_during (ContentTimePeriod period, bool starting) const;
- ContentTime find_subtitle_to (std::string id) const;
- void add_offset (ContentTime offset);
void set_colour (RGBA from, RGBA to);
std::map<RGBA, RGBA> colours () const;
- bool has_text () const;
- bool has_image () const;
-
private:
-
- typedef std::map<std::string, ContentTimePeriod> PeriodMap;
-
- void as_xml (xmlpp::Node *, PeriodMap const & subs, std::string node) const;
- std::list<ContentTimePeriod> subtitles_during (ContentTimePeriod period, bool starting, PeriodMap const & subs) const;
-
- PeriodMap _image_subtitles;
- PeriodMap _text_subtitles;
+ /** mutex to protect _colours as it can be set from the "examine FFmpeg subtitles" job thread */
+ mutable boost::mutex _mutex;
std::map<RGBA, RGBA> _colours;
};