Merge.
[dcpomatic.git] / src / lib / ab_transcoder.h
index c75398b5c7013dca8e1613c80f305edb12209515..58a08af04ca7fbe67eddd78937af60c0fd53b51d 100644 (file)
 #include <boost/shared_ptr.hpp>
 #include <stdint.h>
 #include "util.h"
+#include "decoder_factory.h"
 
 class Job;
 class Encoder;
-class Decoder;
-class Options;
+class VideoDecoder;
+class AudioDecoder;
 class Image;
 class Log;
 class Subtitle;
 class Film;
+class Matcher;
+class DelayLine;
+class Gain;
+class Combiner;
 
 /** @class ABTranscoder
  *  @brief A transcoder which uses one Film for the left half of the screen, and a different one
@@ -45,24 +50,23 @@ public:
        ABTranscoder (
                boost::shared_ptr<Film> a,
                boost::shared_ptr<Film> b,
-               boost::shared_ptr<const Options> o,
+               DecodeOptions o,
                Job* j,
                boost::shared_ptr<Encoder> e
                );
        
-       ~ABTranscoder ();
-
        void go ();
 
 private:
-       void process_video (boost::shared_ptr<Image>, boost::shared_ptr<Subtitle>, int);
-       
        boost::shared_ptr<Film> _film_a;
        boost::shared_ptr<Film> _film_b;
-       boost::shared_ptr<const Options> _opt;
        Job* _job;
        boost::shared_ptr<Encoder> _encoder;
-       boost::shared_ptr<Decoder> _da;
-       boost::shared_ptr<Decoder> _db;
+       Decoders _da;
+       Decoders _db;
+       boost::shared_ptr<Combiner> _combiner;
+       boost::shared_ptr<Matcher> _matcher;
+       boost::shared_ptr<DelayLine> _delay_line;
+       boost::shared_ptr<Gain> _gain;
        boost::shared_ptr<Image> _image;
 };