2016-04-19 28 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>,所以在任何情況下,你需要創建數組和複製內容。

相關問題