Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
6704 Discussions

Capture screen video data through HD graphics 3000

kkbee
Beginner
948 Views
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.
0 Kudos
6 Replies
SergeyKostrov
Valued Contributor II
948 Views
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 )?

0 Kudos
Bernard
Valued Contributor I
948 Views
I think that GDI function BitBlit can be used for screen capture.
0 Kudos
kkbee
Beginner
948 Views
GDI is too slow.
I want to get high fps.
Can I get video frame buffer through HD graphic card?

Thanks
0 Kudos
Bernard
Valued Contributor I
948 Views

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.
0 Kudos
kkbee
Beginner
948 Views
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
0 Kudos
Bernard
Valued Contributor I
948 Views

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.





0 Kudos
Reply