More automated renaming.
[dcpomatic.git] / src / lib / decoder.h
index f70eca8b3fb55a41ca8d627b9e141f3728abf0d5..1b330316ecc7c5c8812720ba4c8f1835f12fda9c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012-2016 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2018 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -32,7 +32,7 @@
 class Decoded;
 class VideoDecoder;
 class AudioDecoder;
-class SubtitleDecoder;
+class TextDecoder;
 class DecoderPart;
 
 /** @class Decoder.
@@ -45,10 +45,15 @@ public:
 
        boost::shared_ptr<VideoDecoder> video;
        boost::shared_ptr<AudioDecoder> audio;
-       boost::shared_ptr<SubtitleDecoder> subtitle;
+       std::list<boost::shared_ptr<TextDecoder> > caption;
 
-       virtual void pass () = 0;
-       virtual void seek (ContentTime time, bool accurate) = 0;
+       boost::shared_ptr<TextDecoder> only_caption () const;
+
+       /** Do some decoding and perhaps emit video, audio or subtitle data.
+        *  @return true if this decoder will emit no more data unless a seek() happens.
+        */
+       virtual bool pass () = 0;
+       virtual void seek (ContentTime time, bool accurate);
 
        ContentTime position () const;
 };