X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fprocessor.h;h=603239f8ff7094ebadb0a09d22304654d88cb427;hb=37258f4ee74582feaac8b311baaeb27bf5f17ac9;hp=cddcbf3f10fe47a466342fbb756e7a62b7758e38;hpb=b1defe9019642dc4b80697291d40ed88f09de8be;p=dcpomatic.git diff --git a/src/lib/processor.h b/src/lib/processor.h index cddcbf3f1..603239f8f 100644 --- a/src/lib/processor.h +++ b/src/lib/processor.h @@ -37,15 +37,20 @@ class Log; class Processor { public: - Processor (Log* log) + /** Construct a Processor. + * @param log Log to use. + */ + Processor (boost::shared_ptr log) : _log (log) {} - - virtual void process_begin () {} + + virtual ~Processor() {} + + /** Will be called at the end of a processing run */ virtual void process_end () {} protected: - Log* _log; + boost::shared_ptr _log; ///< log to write to }; /** @class AudioVideoProcessor @@ -54,18 +59,33 @@ protected: class AudioVideoProcessor : public Processor, public VideoSource, public VideoSink, public AudioSource, public AudioSink { public: - AudioVideoProcessor (Log* log) + /** Construct an AudioVideoProcessor. + * @param log Log to write to. + */ + AudioVideoProcessor (boost::shared_ptr log) : Processor (log) {} }; +class TimedAudioVideoProcessor : public Processor, public TimedVideoSource, public TimedVideoSink, public TimedAudioSource, public TimedAudioSink +{ +public: + TimedAudioVideoProcessor (boost::shared_ptr log) + : Processor (log) + {} +}; + + /** @class AudioProcessor * @brief A processor which handles just audio data. */ class AudioProcessor : public Processor, public AudioSource, public AudioSink { public: - AudioProcessor (Log* log) + /** Construct an AudioProcessor. + * @param log Log to write to. + */ + AudioProcessor (boost::shared_ptr log) : Processor (log) {} }; @@ -76,9 +96,20 @@ public: class VideoProcessor : public Processor, public VideoSource, public VideoSink { public: - VideoProcessor (Log* log) + /** Construct an VideoProcessor. + * @param log Log to write to. + */ + VideoProcessor (boost::shared_ptr log) : Processor (log) {} }; +class TimedVideoProcessor : public Processor, public TimedVideoSource, public TimedVideoSink +{ +public: + TimedVideoProcessor (boost::shared_ptr log) + : Processor (log) + {} +}; + #endif