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

Reply via email to