Как преобразовать буфер ueyesrc в текстуру opengl? - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь заставить камеру UI-3370CP-C-HQ R2 работать на Coral DevBoard с gstreamer.

Поскольку камера не является стандартной камерой v4l2, я скачал и скомпилировал плагин ueyesrc gst (https://github.com/atdgroup/gst-plugin-ueye) на devboard.

В моем приложении мне нужно иметьFrame как текстуры OpenGL, и я застрял в построении рабочего конвейера.

Пока что единственный способ получить что-то с камеры - это сохранить кадр в формате jpeg:

gst-launch-1.0 tee ueyesrc num-buffers=10 ! jpegenc ! filesinklocation=ueyesrc-frame.jpg

Пример конвейера, предоставляемый с ueyesrc gst-launch-1.0 ueyesrc ! videoconvert ! xvimagesink, не работает в моем случае, потому что на устройстве нет X-сервера (но Wayland)

gst-launch-1.0 ueyesrc ! videoconvert ! glimagesink возвращает следующую ошибку:

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Got context from element 'sink': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayWayland\)\ gldisplaywayland0";
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0/GstGLImageSink:sink: Failed to convert multiview video buffer
Additional debug info:
gstglimagesink.c(1741): gst_glimage_sink_prepare (): /GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0/GstGLImageSink:sink
Execution ended after 0:00:00.486558117
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

Со стандартной веб-камерой USB (Logitech HD Pro Webcam C920) gst-launch-1.0 v4l2src ! videoconvert ! glimagesink работает нормально.

Я не совсем понимаю, что происходит, или как найти большеподсказки об этом, я полагаю, что я пропускаю шаг конвертации в середине, но я не знаю, как это исправить. У кого-то есть идея?

edit 1 : этодействительно проблема с конвертацией. Я заставил ее работать, указав формат в заглавных буквах videoconvert:gst-launch-1.0 ueyesrc exposure=2 ! videoconvert ! video/x-raw,format=YUY2 ! glimagesink sync=False Хотя загрузка ЦП очень высока (> 90% на всех 4 ядрах iMx8), а частота кадров достигает макс. 6,5 кадров в секунду.

...