Capture screen video data through HD graphics 3000

Capture screen video data through HD graphics 3000

kkbee's picture

Can Icapture screen videodata through HD graphics 3000 via IPP library.
If not, is there any way I can get destop screen video data from Intel geaphic card.
Thanks.

7 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Sergey Kostrov's picture
Quoting kkbee Can Icapture screen videodata through HD graphics 3000 via IPP library.
If not, is there any way I can get destop screen video data from Intel geaphic card.
Thanks.

Did you try to look at DirectShow samples of MS Platform SDK ( any version )?

iliyapolak's picture

I think that GDI function BitBlit can be used for screen capture.

kkbee's picture

GDI is too slow.
I want to get high fps.
Can I get video frame buffer through HD graphic card?

Thanks

iliyapolak's picture

GDI is too slow

How do you know this? Did you test it.

>>Can I get video frame buffer through HD graphic card

You can use windbg working in kernel mode to inspect memory-mapped I/O used by theIntel display driver to store bitmaps.You have to know the memory address range.

kkbee's picture

Hi iliyapolak,
Thanks for your reply.
Yes, I test it.
I want to capture more than 30FPS.

How can I know the memory address range?

Thanks

iliyapolak's picture

How can I know the memory address range?

The most important thing is to have a two physical computers connected by the firewire cable.Do not use kernel debugger on vm machine because video card and chipset are emulated the chipset is iirc Intel815.
Have you ever worked with the kernel debugger?
I warn you that you are going to deal with a lot of data presented to you as a rawhex values be it raster bitmaps , fonts vertex data and etc..
You can also read ports this is used for text out and colour palletes.
Pleasefollow this link:http://forums.create.msdn.com/forums/t/58638.aspx

Port range 3D0-3Dfh was used by the vga can be read with the help of windbg command "ib"
You can also break-on access here is the command:
bai43D0 // breakpoint on access
ib 3D0 // read from the port
ob 3D0 // write to the port

To find your video card memory-mappedI/O range.Go to Device Manager choose Display Device and click on Resources tab.You will see I/O port rtange and memory-mapped I/O.

From within kernel debugger you can use db,dw or dd to read the memory or eb,ew and ed command to modify the memory.
Regarding your 30 fps capture when you break-in the target everything freezes so you can freely inspect the memory.By consecutively issueingbreak-in you can obtain various images of the memory-mapped I/O.
Be careful you will be in kernel space so any mistake and you can render your machine unbootable.

Login to leave a comment.