slow video capture

I’ve got this-pc which has a 1.2ghz processor, windows embedded and using this-video-capture-device.

In amcap I am getting very quick video capture (uses direct show), but when I run a basic app in ofw to show the video, it runs at 2 frames per second.

Below is the code. Any ideas why this could be running so slowly, especially when it runs quick in amcap or winvdig?

ofVideoGrabber 		vidGrabber;  
// testApp.cpp  
// setup  
vidGrabber.initGrabber(768, 576);  
// update  
// draw  

it is very slow for directshow or quicktime capture.

if you comment out the drawing of the video is still slow?

yes, 2 frames per second when drawing, but 20 frames per second when not drawing but still updating.

Any ideas?


how do the other apps feel? does texture example run OK ? how about if you just do a color texture at the same size as you cameras, is that ok?

also, if you compare against amcap, did you be sure to set it to that resolution (it often defaults to previewing at one half the max resolution).

I’m guessing 768x576 is pretty large for uploading, it’s 1.18mb per frame. Alot of non good graphics cards are unhappy with that speed?

take care,

you are right, it is drawing that is the problem.

texture example is 42fps when not drawing, and only 5 fps when drawing.

the spec says:

Integrated VIA UniChrome™ Pro II 3D/2D AGP graphics with MPEG-2/4 and WMV9 decoding acceleration

strange that windows is ok, and amcap at drawing, but not openframeworks / glut.

Any ideas if this can be fixed? This graphics card seems to be used quite a bit in embedded pcs.

Is the OpenGL hardware accelerated or are you doing OpenGL in software ?

There will be a function, possibly provided by GLUT or otherwise GLEE that will return the a driver string, if that contains “Microsoft” you are doing OpenGL in software mode and that will be very slow.

It defaults to this sometimes if you use a feature that is not supported in hardware, so scaling your advanced features back until it runs in hardware might help.

Maybe compile an old and simple GLUT example from the net and run it to see what happens.