title: How to convert ueyesrc buffer to opengl texture?
body: <p>I'm trying to make a <a href="https://en.ids-imaging.com/store/ui-3370cp-rev-2.html" rel="nofollow noreferrer">UI-3370CP-C-HQ R2 Camera</a> work on a <a href="https://coral.withgoogle.com/docs/dev-board/datasheet/" rel="nofollow noreferrer">Coral DevBoard</a> with gstreamer. </p>
  
  <p>Since the camera is no standard v4l2 camera, I downloaded and compiled the <code>ueyesrc</code> gst plugin (<a href="https://github.com/atdgroup/gst-plugin-ueye" rel="nofollow noreferrer">https://github.com/atdgroup/gst-plugin-ueye</a>) on the devboard. </p>
  
  <p>In my application I need to have the frame as opengl textures and I'm stuck at building a working pipeline.</p>
  
  <p>So far the only way I managed to get something from the camera is to save a frame as jpeg:</p>
  
  <p><code>gst-launch-1.0 tee ueyesrc num-buffers=10 ! jpegenc ! filesinklocation=ueyesrc-frame.jpg</code></p>
  
  <p>The pipeline example provided with ueyesrc <code>gst-launch-1.0 ueyesrc ! videoconvert ! xvimagesink</code> doesn't work in my case because there is no X-Server on the device (but Wayland)</p>
  
  <p><code>gst-launch-1.0 ueyesrc ! videoconvert  ! glimagesink</code> returns the following error:</p>
  
  <pre><code>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 ...
  </code></pre>
  
  <p>With a standard USB webcam (Logitech HD Pro Webcam C920), <code>gst-launch-1.0 v4l2src ! videoconvert ! glimagesink</code> works fine.</p>
  
  <p>I don't really understand what is going wrong or how to find more clues about it, I suppose I'm missing a conversion step in the middle but I don't know how to fix it. Does someone have an idea?</p>
  
  <p><strong>edit 1</strong>: it is indeed a conversion issue. I got it to work by specifying the format in the <code>videoconvert</code> caps: <code>gst-launch-1.0 ueyesrc exposure=2 ! videoconvert ! video/x-raw,format=YUY2 ! glimagesink sync=False</code>
  Although the CPU usage is super high (>90% on all 4 cores of the iMx8) and the framerate reach a max of 6.5 fps. </p>