X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fprocessor.h;h=7b7735faafa139a43b60f69f1796387edf79e413;hb=47f25009bcbc765e397bcb471dd361a511c99daf;hp=cddcbf3f10fe47a466342fbb756e7a62b7758e38;hpb=b1defe9019642dc4b80697291d40ed88f09de8be;p=dcpomatic.git diff --git a/src/lib/processor.h b/src/lib/processor.h index cddcbf3f1..7b7735faa 100644 --- a/src/lib/processor.h +++ b/src/lib/processor.h @@ -21,8 +21,8 @@ * @brief Parent class for classes which accept and then emit video or audio data. */ -#ifndef DVDOMATIC_PROCESSOR_H -#define DVDOMATIC_PROCESSOR_H +#ifndef DCPOMATIC_PROCESSOR_H +#define DCPOMATIC_PROCESSOR_H #include "video_source.h" #include "video_sink.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