tony Tong (chaffmanus@xxxxxxxxx): > Is overlay implemented by dma? If it is ,does it means that I cant > get the video data because it is transfered by pci bus direct to video > memory. Then how can I get the content in the video mem to screen ? There is a module in the xfree source called "v4l" which will negotiate with a v4l card to have it dma video frames directly onto an overlay surface. The problems with this are deinterlacing and field positioning, and tearing. The video card just keeps reading from the same location in memory. So your choices are just read a single field worth of data and have the quality be poor, or have it read two fields and get artifacts. Also, currently the overlay is run in single-buffer mode, so tearing is an issue. Ideally, on each field interrupt from the capture card, the overlay position would be modified by xvideo driver and the correct field would be shown, and the buffers would be swapped for double buffering. However, because of the way this is architectured this is not possible. An example is shown by my software deinterlacer, where the memcpy() is necessary as I interpolate a field, clearly alot more work than what you're looking for. You could probably settle for just viewing single field height images for your example, using the v4l module. > I learned SDL can do the yuv overlay display .but when I looked into > the doc for sdl ,I found that when display yuvovelay surface, memcpy > operation still is needed as follow. > //memcpy(overlay->pixels, map, (width * height * 3) / Well, with SDL you write to an shm surface, and X does a memcpy into video memory. You shouldn't hit any extra memcpy()s in the SDL source. -- Billy Biggs vektor@xxxxxxxxxxxx