AnsweredAssumed Answered

How to get access to the raw pixel data just before it's sent to the LVDS?

Question asked by Eric Theis on Mar 19, 2014
Latest reply on Apr 14, 2014 by alejandrolozano

We are using a Sabre board with an IMX.6dq. Apologies in advance: I'm a kernel guy but video is new to me.

 

We want to copy/capture the Android display contents in near real time, and copy/DMA them to our development device

(which is not a display). Similarly we want to be able to pull raw display images from our device and display them on the

Android display screen. We need to do this fast enough that we could run, say, a game on one device, transfer the screen

images using our device to a separate Andriod system, and display them there. We need to grab the frames fast enough/

display them fast enough that there's no obvious latency (to the degreee possible).

 

We have demo code which reads from the Android frame buffer /dev/fb0. However

1) it's pretty slow, and

2) it captures 'Android UI' graphics, but doesn't seem to see the game screen at all.

 

The idea is that we could:

- Discover the address of the IPU's output frame buffer,

- Hack the driver to DMA its active framebuffer contents to a buffer allocated for our device (or vice versa)

- Hack in some way to notify our driver when a framebuffer is made 'active' (is ready to display).

 

I'm thinking of adding an ioctl where we would pass the address of our device's buffer(s),

and possibly a callback so we could get notified when a buffer is made 'active' (being displayed).

 

I've been rummaging around in the code a good bit, but I'm pretty lost.

Suggestions? Pointers?

 

This is for a demo, so this doesn't need to be an industrial-strength solution. That's later.

Outcomes