/*
- Copyright (C) 2014 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2014-2021 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
*/
-#include "subtitle_decoder.h"
+
+#include "text_decoder.h"
#include "dcp_subtitle.h"
+
class DCPSubtitleContent;
+
class DCPSubtitleDecoder : public DCPSubtitle, public Decoder
{
public:
- DCPSubtitleDecoder (boost::shared_ptr<const DCPSubtitleContent>);
+ DCPSubtitleDecoder (std::shared_ptr<const Film> film, std::shared_ptr<const DCPSubtitleContent>);
-protected:
- bool pass (PassReason, bool accurate);
- void seek (ContentTime time, bool accurate);
+ bool pass () override;
+ void seek (dcpomatic::ContentTime time, bool accurate) override;
+
+ boost::optional<dcpomatic::ContentTime> first () const;
private:
- std::list<ContentTimePeriod> image_subtitles_during (ContentTimePeriod, bool starting) const;
- std::list<ContentTimePeriod> text_subtitles_during (ContentTimePeriod, bool starting) const;
- ContentTimePeriod content_time_period (dcp::SubtitleString s) const;
+ dcpomatic::ContentTimePeriod content_time_period (std::shared_ptr<const dcp::Subtitle> s) const;
+ void update_position();
+
+ std::vector<std::shared_ptr<const dcp::Subtitle>> _subtitles;
+ std::vector<std::shared_ptr<const dcp::Subtitle>>::const_iterator _next;
- std::list<dcp::SubtitleString> _subtitles;
- std::list<dcp::SubtitleString>::const_iterator _next;
+ dcp::Standard _standard;
};