Hi Jon, please remove the dependency on the "opus/*" headers, so we can compile the module ourselves and try to reproduce what you are reporting. (That's what I meant with "self-contained test".)
Thanks, Stefan On 08.09.2016 17:30, Jon Lederman wrote: > Hi, > > Thanks for responding. Here is my header file. I am compiling this to a > shared object called opus_strategy.so. If I set the argument of > BOOST_PYTHON_MODULE to opus_encoder_strategy, and compile my .so file to have > the name opus_encoder_strategy.so,I can load the boost python module into my > python interpreter and see the OpusEncoderStrategy class as an attribute. > > However, if I choose other names such as opus_strategy for the argument to > BOOST_PYTHON_MODULE, when I load the boost python object it doesn’t appear to > have any recognized attributes. I don’t understand why the name should > matter. As I had noted in my previous email, I would like to have a shared > object file with the name opus_strategy.so that encompasses a set of classes. > Just can’t figure out how to get it to work. I am on OS X, BTW if that > matters. > > Any help would be greatly appreciated. > > Thanks. > > -Jon > #ifndef OPUS_ENCODER_STRATEGY_H_ > #define OPUS_ENCODER_STRATEGY_H_ > > > > > > #include "memory" > #include "opus/opus.h" > #include "opus/opus_defines.h" > #include "opus/opus_multistream.h" > #include "opus/opus_types.h" > > #include <boost/python.hpp> > #include <boost/numpy.hpp> > #include <exception> > #include <memory> > #include <map> > #include <vector> > #include <iostream> > > namespace bp = boost::python; > namespace np = boost::numpy; > > using namespace std; > > > class OpusEncoderStrategy { > > public: > > OpusEncoderStrategy(const int sample_rate, const int number_channels, > const int opus_application); > ~OpusEncoderStrategy(); > > opus_int32 encode(const float* pcm, const int frame_size, const > unsigned char* data, opus_int32 max_data_bytes); > > bool setComplexity(const int c); > int getComplexity(); > > > private: > > bool encoderCtl(); > int getPacketDurationBytes(); > > > > OpusEncoder* encoder; > > int fs; > int channels; > int application; > int error; > > > }; > > > BOOST_PYTHON_MODULE(opus_strategy) > { > using namespace boost::python; > > > class_<OpusEncoderStrategy>("OpusEncoderStrategy", init<const int, > const int, const int>()) > .def("setComplexity", &OpusEncoderStrategy::setComplexity) > .def("getComplexity", &OpusEncoderStrategy::getComplexity); > } > > > #endif >> On Sep 8, 2016, at 4:47 PM, Stefan Seefeld <ste...@seefeld.name> wrote: >> >> Hi Jon, >> >> what you are describing makes perfect sense, and should work without >> problem. From your description it isn't clear why this isn't working, so >> I suggest you put together a self-contained test that doesn't work as >> you expect, and send that out so we can have a look. Otherwise we'd have >> to guess. >> The online docs at http://boostorg.github.io/python/doc/html/index.html >> should contain everything you need. >> >> Stefan >> >> -- >> >> ...ich hab' noch einen Koffer in Berlin... >> >> _______________________________________________ >> Cplusplus-sig mailing list >> Cplusplus-sig@python.org >> https://mail.python.org/mailman/listinfo/cplusplus-sig > _______________________________________________ > Cplusplus-sig mailing list > Cplusplus-sig@python.org > https://mail.python.org/mailman/listinfo/cplusplus-sig -- ...ich hab' noch einen Koffer in Berlin... _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org https://mail.python.org/mailman/listinfo/cplusplus-sig