Fix overlapping burnt-in subtitles in some cases (#959).
[dcpomatic.git] / src / lib / subtitle_decoder.h
index 73d447b9a9480990cee298e5da13758e56f81efb..eba36315e3d6ad0102a9993386878d8a297a89d6 100644 (file)
 #include "content_subtitle.h"
 #include <dcp/subtitle_string.h>
 
+namespace sub {
+       class Subtitle;
+}
+
 class Image;
 
 class SubtitleDecoder
@@ -47,22 +51,25 @@ public:
        std::list<ContentTextSubtitle> get_text (ContentTimePeriod period, bool starting, bool accurate);
 
        void seek (ContentTime, bool);
+       void reset ();
 
        void give_image (ContentTimePeriod period, boost::shared_ptr<Image>, dcpomatic::Rect<double>);
        void give_text (ContentTimePeriod period, std::list<dcp::SubtitleString>);
+       void give_text (ContentTimePeriod period, sub::Subtitle const & subtitle);
 
        boost::shared_ptr<const SubtitleContent> content () const {
                return _content;
        }
 
 private:
+
        Decoder* _parent;
        std::list<ContentImageSubtitle> _decoded_image;
        std::list<ContentTextSubtitle> _decoded_text;
        boost::shared_ptr<const SubtitleContent> _content;
 
        template <class T>
-       std::list<T> get (std::list<T> const & subs, std::list<ContentTimePeriod> const & sp, ContentTimePeriod period, bool starting, bool accurate);
+       std::list<T> get (std::list<T> const & subs, std::list<ContentTimePeriod> const & sp, ContentTimePeriod period, bool accurate);
 
        boost::function<std::list<ContentTimePeriod> (ContentTimePeriod, bool)> _image_during;
        boost::function<std::list<ContentTimePeriod> (ContentTimePeriod, bool)> _text_during;