Which technology should I learn to do this?

Which technology should I learn to do this?

Shachar Shemesh shachar at shemesh.biz
Fri Jan 6 22:02:44 IST 2012


Hi all,

I have a setup which is embeddedish (Intel CPU and quite a bit of power,
but will need most of this power to do stuff with. An Intel display
adapter). The device has a local display (touch screen LCD) that needs
to display some UI (implemented by a web server on the device) displayed
by webkit. The background for the UI needs to be a live stream from a
local camera connected directly to the device.

There is software written already to do some of this stuff on another HW
platform, where the display is hard-wired to show a background from the
camera and a foreground (RGBA). It is working with embedded QT (formerly
QTopia) and webkit. I need to port this to the fore-mentioned Intel
platform.

So what I need is this. I need a browser to display UI with partial
transparency, through which you can see a lower layer that is generated
anywhere from 25 to 60 times a second from a camera. Ideally, I should
be able to keep the camera code in a separate process from the webkit
one. I am unfamiliar with all of the technologies I'm about to mention,
so I'd like your help in which one to learn - which one will most likely
let me do what I want the easiest.

The options I could think of:
- Keep things in the frame buffer. I know QT has some classes to do just
that. They even support color spaces other than RGB (the camera
typically produces 4:2:2 YUV). I'm not sure how much free of conversion
that is (if it does require conversion, I'd rather do it myself). I'm
also not sure how much support I'd have for partial transparency and for
running the Video preview in a separate process than the browser.

- Use X11 and DRI/DRM. I know for sure that different processes are
supported. From what I've started to read about DRM, however, it seems
that taking over the entire screen is the only option truly supported.
I'm not sure how it works.

- Use X11 and OpenGL. This will definitely support all the transparency
I'd need, but I'm not sure whether that is the right option.

Does anyone know what does Xine/VLC/Dragon player use? How does the UI
cause things to be transparent when, e.g., I'm moving a window around?
Is OpenGL involved in this?

Shachar

-- 
Shachar Shemesh
Lingnu Open Source Consulting Ltd.
http://www.lingnu.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.cs.huji.ac.il/pipermail/linux-il/attachments/20120106/35617982/attachment.html>


More information about the Linux-il mailing list