diff options
author | Jon Bergli Heier <snakebite@jvnv.net> | 2011-01-03 20:50:59 +0100 |
---|---|---|
committer | Jon Bergli Heier <snakebite@jvnv.net> | 2011-01-03 20:50:59 +0100 |
commit | 3a3bab26aea5c064c07c307d1e8ccf463edae568 (patch) | |
tree | 8789f9cbec352268858f5c9c6a1d8e2b270a3d76 /encoder.cpp | |
parent | b3c30578ae1709feb978b72d756d88c17941cad4 (diff) |
Decoder, encoder and transcoder-related classes and factories now uses boost::shared_ptr.
Diffstat (limited to 'encoder.cpp')
-rw-r--r-- | encoder.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/encoder.cpp b/encoder.cpp index 9bea59b..d0566fb 100644 --- a/encoder.cpp +++ b/encoder.cpp @@ -3,16 +3,17 @@ #include <map> -namespace encoder { - typedef boost::function<EncoderBase*()> EncoderFactory; - std::map<std::string, EncoderFactory> encoder_factories; - -void init() { - encoder_factories["lame"] = boost::factory<EncoderLame*>(); +EncoderFilter::EncoderFilter(EncoderBase::p encoder_) { + encoder = encoder_; } -EncoderBase *get_encoder(const std::string& name) { - return encoder_factories[name](); +typedef boost::function<boost::shared_ptr<EncoderBase>()> EncoderFactory; +std::map<std::string, EncoderFactory> encoder_factories; + +void encoder::init() { + encoder_factories["lame"] = boost::factory<boost::shared_ptr<EncoderLame> >(); } -}; +EncoderFilter::p encoder::get_encoder(const std::string& name) { + return EncoderFilter::p(new EncoderFilter(EncoderBase::p(encoder_factories[name]()))); +} |