2016-04-19 19 views
0

我试图将GstBuffer对象map.data发送到java服务器。我创建了一个参数为int[]的事件,但是当引发事件时,我在编译时得到以下错误。kurento:如何将guint8 *作为int传递给java服务器[]

error: no matching function for call to ‘kurento::module::vadcustomfilter::BufferReceived::BufferReceived(std::shared_ptr<kurento::MediaObject>, const char [16], int*)’ 

BufferReceived event (shared_from_this(), "Buffer Received", ((int *)buffer)); 

map.data的类型是guint8 *

的是有什么错误的类型转换我在做什么?

我尝试发送map.data作为std::string但在java端我没有收到完整的字符串。

回答

2

铸造guint8*char*是好的,因为只有符号改变。投射到int *不正确,因为大小不同,为了发送此类事件,您可能需要将guint8的数组复制到int的数组中。但认为这不是一个快速的操作,也不是对这个大事件进行序列化,所以不要指望有很好的表现。

此外,什么kurento事件期待(你应该检查的BufferReceived的签名)在声明数组是std::vector<int>,所以在任何情况下,你需要创建数组和复制内容。

相关问题