Hallo,
ich versuche mich im Moment an einem gstreamer plugin um die Bild-Daten und andere errechnete Daten über eine bestimmte Middleware an andere Komponenten verschicken zu können. Dafür muss ich die guint8 Daten die gstreamer in einem Buffer verschickt in eine Ice::ByteSeq verpacken um sie dann verschicken zu können. Im Moment mache ich das über folgenden Code:
Ich kann mir aber vorstellen, dass man das Kopieren der Daten bestimmt auch effizienter gestalten kann. Hat jemand da einen Vorschlag für mich?
Gruß
Der Wolf
ich versuche mich im Moment an einem gstreamer plugin um die Bild-Daten und andere errechnete Daten über eine bestimmte Middleware an andere Komponenten verschicken zu können. Dafür muss ich die guint8 Daten die gstreamer in einem Buffer verschickt in eine Ice::ByteSeq verpacken um sie dann verschicken zu können. Im Moment mache ich das über folgenden Code:
Code:
void
XcfExporter::processBuffer(GstBuffer *buffer) {
gst_buffer_ref(buffer);
XCF::Binary::TransportVecBytePtr transport = new XCF::Binary::TransportVecByte();
std::vector<unsigned char> values(buffer->size);
for (int i = 0; i < buffer->size; i++) {
values[i] = (buffer->data)[i];
}
transport->set(values);
XCF::CTUPtr ctu = new XCF::CTU();
ctu->setXML("<MIXELGRAM></MIXELGRAM>");
ctu->addBinary("image", transport);
mixelgramPublisher->send(ctu);
gst_buffer_unref(buffer);
}
Ich kann mir aber vorstellen, dass man das Kopieren der Daten bestimmt auch effizienter gestalten kann. Hat jemand da einen Vorschlag für mich?
Gruß
Der Wolf