summaryrefslogtreecommitdiff
path: root/encoder.cpp
diff options
context:
space:
mode:
authorJon Bergli Heier <snakebite@jvnv.net>2011-01-03 20:50:59 +0100
committerJon Bergli Heier <snakebite@jvnv.net>2011-01-03 20:50:59 +0100
commit3a3bab26aea5c064c07c307d1e8ccf463edae568 (patch)
tree8789f9cbec352268858f5c9c6a1d8e2b270a3d76 /encoder.cpp
parentb3c30578ae1709feb978b72d756d88c17941cad4 (diff)
Decoder, encoder and transcoder-related classes and factories now uses boost::shared_ptr.
Diffstat (limited to 'encoder.cpp')
-rw-r--r--encoder.cpp19
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]())));
+}