В настоящее время я пишу плагин Gstreamer1.0, который будет перехватывать кадр, использовать тензорный поток для выполнения некоторой задачи, записывать данные в кадр и вставлять их обратно.
Я делаю это на C/C++, и в настоящее время я сталкиваюсь с проблемой, когда данные должны передаваться между Gstreamer и Tensorflow.
У меня есть кадр в объекте GstBuffer, из которого я должен извлечь данные и создать входной тензор. Формат всегда один и тот же, матрица UINT8 RGB [ширина, высота, 3].
/* extract raw data from gstreamer buffer */
gpointer bytes;
gst_buffer_extract_dup(outbuf, 0, size, &bytes, &copied);
Теперь с указателем байтов мне нужно построить:
Tensor input(tensorflow::DT_UINT8, tensorflow::TensorShape(cwidth, cheight, 3));
Я понятия не имею, как я должен это сделать.
Я не смог найти никакой информации или примера о том, как я могу работать с gpointer, а в тензорном потоке я мог найти только примеры, использующие файл в качестве источника, который не является моим дело вообще.
Мы будем очень признательны за любые выводы или идеи.