-void
-FFmpegSubtitleStream::as_xml (xmlpp::Node* root, PeriodMap const & subs, string node_name) const
-{
- for (PeriodMap::const_iterator i = subs.begin(); i != subs.end(); ++i) {
- xmlpp::Node* node = root->add_child (node_name);
- node->add_child("Id")->add_child_text (i->first);
- node->add_child("From")->add_child_text (raw_convert<string> (i->second.from.get ()));
- node->add_child("To")->add_child_text (raw_convert<string> (i->second.to.get ()));
- }
-}
-
-void
-FFmpegSubtitleStream::add_image_subtitle (string id, ContentTimePeriod period)
-{
- DCPOMATIC_ASSERT (_image_subtitles.find (id) == _image_subtitles.end ());
- _image_subtitles[id] = period;
-}
-
-void
-FFmpegSubtitleStream::add_text_subtitle (string id, ContentTimePeriod period)
-{
- DCPOMATIC_ASSERT (_text_subtitles.find (id) == _text_subtitles.end ());
- _text_subtitles[id] = period;
-}
-
-list<ContentTimePeriod>
-FFmpegSubtitleStream::image_subtitles_during (ContentTimePeriod period, bool starting) const
-{
- return subtitles_during (period, starting, _image_subtitles);
-}
-
-list<ContentTimePeriod>
-FFmpegSubtitleStream::text_subtitles_during (ContentTimePeriod period, bool starting) const
-{
- return subtitles_during (period, starting, _text_subtitles);
-}
-
-list<ContentTimePeriod>
-FFmpegSubtitleStream::subtitles_during (ContentTimePeriod period, bool starting, PeriodMap const & subs) const
-{
- list<ContentTimePeriod> d;
-
- /* XXX: inefficient */
- for (map<string, ContentTimePeriod>::const_iterator i = subs.begin(); i != subs.end(); ++i) {
- if ((starting && period.contains (i->second.from)) || (!starting && period.overlaps (i->second))) {
- d.push_back (i->second);
- }
- }
-
- return d;
-}
-
-ContentTime
-FFmpegSubtitleStream::find_subtitle_to (string id) const
-{
- PeriodMap::const_iterator i = _image_subtitles.find (id);
- if (i != _image_subtitles.end ()) {
- return i->second.to;
- }
-
- i = _text_subtitles.find (id);
- DCPOMATIC_ASSERT (i != _text_subtitles.end ());
- return i->second.to;
-}
-
-/** Add some offset to all the times in the stream */
-void
-FFmpegSubtitleStream::add_offset (ContentTime offset)
-{
- for (PeriodMap::iterator i = _image_subtitles.begin(); i != _image_subtitles.end(); ++i) {
- i->second.from += offset;
- i->second.to += offset;
- }
-
- for (PeriodMap::iterator i = _text_subtitles.begin(); i != _text_subtitles.end(); ++i) {
- i->second.from += offset;
- i->second.to += offset;
- }
-}
-