- for (map<ContentTime, ContentTime>::const_iterator i = _subtitles.begin(); i != _subtitles.end(); ++i) {
- xmlpp::Node* node = root->add_child ("Period");
- node->add_child("From")->add_child_text (raw_convert<string> (i->first.get ()));
- node->add_child("To")->add_child_text (raw_convert<string> (i->second.get ()));
- }
-}
-
-void
-FFmpegSubtitleStream::add_subtitle (ContentTimePeriod period)
-{
- DCPOMATIC_ASSERT (_subtitles.find (period.from) == _subtitles.end ());
- _subtitles[period.from] = period.to;
-}
-
-list<ContentTimePeriod>
-FFmpegSubtitleStream::subtitles_during (ContentTimePeriod period, bool starting) const
-{
- list<ContentTimePeriod> d;
-
- /* XXX: inefficient */
- for (map<ContentTime, ContentTime>::const_iterator i = _subtitles.begin(); i != _subtitles.end(); ++i) {
- if ((starting && period.contains (i->first)) || (!starting && period.overlaps (ContentTimePeriod (i->first, i->second)))) {
- d.push_back (ContentTimePeriod (i->first, i->second));
- }
+ boost::mutex::scoped_lock lm (_mutex);
+ for (map<RGBA, RGBA>::const_iterator i = _colours.begin(); i != _colours.end(); ++i) {
+ xmlpp::Node* node = root->add_child("Colour");
+ i->first.as_xml (node->add_child("From"));
+ i->second.as_xml (node->add_child("To"));