[C++-sig] Conversion problem

Simon Pickles sipickles at googlemail.com
Thu Jan 14 09:23:49 CET 2010


Thanks Nicolas,

I learnt a lot from your way of doing it!

Simon

On 13/01/2010 11:17, Nicolas Lelong wrote:
> Simon,
>
> it seems that I wrapped the same videoinput library you're using.
>
> I wrapped the getPixels the following way : python script is 
> responsible of the memory allocation for pixels buffer (in a correctly 
> sized string).
>
> The getPixels function is wrapped as follows :
>
> namespace {
>
>   bool videoInput_getPixels(videoInput& input, int device_id, 
> python::object memory_buffer)
>   {
>     PyObject* pyObject = memory_buffer.ptr();
>     if (PyString_CheckExact(pyObject))
>     {
>       Py_ssize_t string_size = PyString_Size(pyObject);
>       if (string_size >= Py_ssize_t(input.getWidth(device_id)) * 
> Py_ssize_t(input.getHeight(device_id)) * Py_ssize_t(3))
>       {
>         unsigned char* pixels = reinterpret_cast<unsigned 
> char*>(PyString_AsString(pyObject));
>
>         return input.getPixels(device_id, pixels, false, false);
>       }
>     }
>     return false;
>   }
>
> };
>
> python::class_<videoInput, boost::noncopyable> klass("VideoInput");
> klass.def("getPixels", videoInput_getPixels);
>
> This certainly lacks some error checking for the actual 
> 'memory_buffer' parameter type, but can give you a clue.
>
> HTH,
>
> Nicolas
>
> _______________________________________________
> Cplusplus-sig mailing list
> Cplusplus-sig at python.org
> http://mail.python.org/mailman/listinfo/cplusplus-sig
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/cplusplus-sig/attachments/20100114/b2bee01a/attachment.htm>


More information about the Cplusplus-sig mailing list