strangely enough I was playing with exactly the same process for last 2
weeks
> -1- It is programmed to capture frames in RGB565 format (like the display)
on a mmap shared buffer
> -2- Via a memcpy, the captured frame is copied into a XImage created with
XShmCreateImage
> -3- Then the sw process this rgb image
> -4- Finally the image is displayed in a window via XShmPutImage
> -5- XSync(display, False)

> task 1 was done by PCI dma, so it was the faster way.
> task 2 may be faster with a DMA accelerated copy instead of memcpy... but
how?

attached MMXed memcpy taken from mplayer

> task 3 is a user algorithm, so I must use ASM and MMX instrucions...maybe!
:-)
> task 4 XShmPutImage is DMA accelerated, right? so it is the fastest way?

don't think so, but really don't know

> task 5 ...what's doing exactly the XSync? Is possible to synchronize with
monitor VSynch.
>
> ---
>
> Another way may be, if is possible, to map directly XImage data memory
over the mmap captured frame, avoiding the memcpy in task 2.
> Anyone knows how to do it?
if you find a way tell me, I am interested in exactly the same :)

>
> Otherwise, how to blit the captured mmap buffer (after processing it) onto
the display, even without any XImage or with other functions than
XShmPutImage.

I was suggested to use Textures (DRI OpenGL), but it seems to be very
complicated path

good luck and keep me informed in case you find something :)

Michael

fastlibc.cpp

fastlibc.h

Reply via email to