Display UYVY frame in widget
-
I would like to know what's the best way to show UYVY frames coming from capture card (720p 60Hz) using Qt framework? Basically I am given a pointer to a memory location of a frame of video, and need to display that video in realtime.
I have looked at the multimedia/videowidget sample, but the images there are RGB, where as I'm using YUV colorspace.
I have also looked at the phonon module, but didn't look too promising for my application.
Anyone solved this problem previously?
-
If you do not want to use OpenGL, you will have to do the YUV/RGB conversion on the CPU which can be quite intensive, and then display the resulting image. I would not go that way...
A great solution would be to stream the contents of that buffer to an OpenGL texture and then to use a GLSL fragment shader program to do the conversion when displaying the frame.
Using this approach the conversion will be completed very efficiently in parallel on the GPU. The many cores available in modern GPUs just crave to do such processing. It would work great even on entry-level embedded GPUs such as Intel Graphics 3000 and such.