Merge branch 'master' of /home/carl/git/dvdomatic
[dcpomatic.git] / src / lib / processor.h
index 19d7c4b0c82e80e0ec22ee6a259a3f7d69efb0f0..603239f8ff7094ebadb0a09d22304654d88cb427 100644 (file)
@@ -40,7 +40,7 @@ public:
        /** Construct a Processor.
         *  @param log Log to use.
         */
-       Processor (Log* log)
+       Processor (boost::shared_ptr<Log> log)
                : _log (log)
        {}
 
@@ -50,7 +50,7 @@ public:
        virtual void process_end () {}
 
 protected:
-       Log* _log; ///< log to write to
+       boost::shared_ptr<Log> _log; ///< log to write to
 };
 
 /** @class AudioVideoProcessor
@@ -62,11 +62,20 @@ public:
        /** Construct an AudioVideoProcessor.
         *  @param log Log to write to.
         */
-       AudioVideoProcessor (Log* log)
+       AudioVideoProcessor (boost::shared_ptr<Log> log)
                : Processor (log)
        {}
 };
 
+class TimedAudioVideoProcessor : public Processor, public TimedVideoSource, public TimedVideoSink, public TimedAudioSource, public TimedAudioSink
+{
+public:
+       TimedAudioVideoProcessor (boost::shared_ptr<Log> log)
+               : Processor (log)
+       {}
+};
+                               
+
 /** @class AudioProcessor
  *  @brief A processor which handles just audio data.
  */
@@ -76,7 +85,7 @@ public:
        /** Construct an AudioProcessor.
         *  @param log Log to write to.
         */
-       AudioProcessor (Log* log)
+       AudioProcessor (boost::shared_ptr<Log> log)
                : Processor (log)
        {}
 };
@@ -90,9 +99,17 @@ public:
        /** Construct an VideoProcessor.
         *  @param log Log to write to.
         */
-       VideoProcessor (Log* log)
+       VideoProcessor (boost::shared_ptr<Log> log)
                : Processor (log)
        {}
 };
 
+class TimedVideoProcessor : public Processor, public TimedVideoSource, public TimedVideoSink
+{
+public:
+       TimedVideoProcessor (boost::shared_ptr<Log> log)
+               : Processor (log)
+       {}
+};     
+
 #endif