<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Hi.</p>
<p>I'm using a pipeline to display live video from cameras to a QT
application. Cameras' driver produces NV12 video, and for QT I'm
using qmlglsink.</p>
<p>Element qmlglsink seems to only accept RGBA, so I have to make
the conversion. I'm doing it with this pipeline: v4l2src
device="/dev/video1" !
video/x-raw,format=NV12,width=1440,height=1152,framerate=5/1 !
glupload ! glcolorconvert ! qmlglsink sync=false</p>
<p>However, I'm getting very poor performance, around 1fps or less,
and glcolorconvert seems to be the bottleneck. With this pipeline
I get 25 fps with no problem: v4l2src device="/dev/video1" !
video/x-raw,format=NV12,width=1440,height=1152,framerate=25/1 !
glupload ! fakesink silent=false</p>
<p>With 720x576 video I'm getting a better performance (obvious),
but I need to use also 1440x1152 because this is video from the 4
cameras at the same time.</p>
<p>Possible solutions that might be acceptable for me:</p>
<ul>
<li>More efficient way of converting from NV12 to RGBA</li>
<li>Efficient way of scale down to 720x576, or even less, before
color conversion</li>
<li>Two previous options at the same time</li>
<li>Other solutions you might suggest<br>
</li>
</ul>
<p>I'm running this on an ARM processor (Allwinner A20) with GPU and
OpenGLES. This processor also have a Video Processing Unit that
works with VDPAU.</p>
<p>Thanks</p>
<p>IƱigo<br>
</p>
</body>
</html>