I use simple AverMedia card with BT878 chip.I need to capture frame by frame and process each. I try to do this with the
following code, but I get only 12 frames per second. I need at least 20 fps,
but I don't what is wrong with my code, or what needs to be change, to get
frames more frequently.Is it a matter of coding or the chipset?
I would be very thankful if somebody could help me.
Jacek///////////////////
//capture codedev.Open("/dev/video0");
//get memory buffer size
dev.GetMemoryBuffer(&stMemBuf);//map memory for frame buffer
szFrame = (char*) mmap(0,stMemBuf.size,PROT_READ|PROT_WRITE,MAP_SHARED,dev,0);//set channel to COMPOSITE and mode to PAL
dev.SetSource(1,VIDEO_MODE_PAL);//set capture image size and pixel format
stMemMap.width = IMAGE_WIDTH;
stMemMap.height = IMAGE_HEIGHT;
stMemMap.format = VIDEO_PALETTE_GREY;//capture frame 0
stMemMap.frame = nFrame;
ioctl(dev,VIDIOCMCAPTURE,&stMemMap);while (m_bProcessing)
{
stMemMap.frame = nFrame;
ioctl(dev,VIDIOCSYNC,&stMemMap.frame);stMemMap.frame = 1 - nFrame;
ioctl(dev,VIDIOCMCAPTURE,&stMemMap);ProcessFrame(..); //actually do nothing, simply count up frames
nFrame = 1 - nFrame;
}_______________________________________________
Video4linux-list mailing list
Video4linux-list@xxxxxxxxxx
https://listman.redhat.com/mailman/listinfo/video4linux-list
I'm using a WinTV grabber (BT878 I think), and I acheive about
25 fps on
a 800Mhz Linux box, with a cpu loading of 0.1 % (just capture
no processing).
This is the max for a PAL device.
Incidentally indicating the types of the variables you have makes it
a little easier to understand
code fragments.
I found that the maximum speed comes from capturing to the current buffer,
and THEN synchronisi ng
the last capture, synchronising your last capture first, and then capturing,
seems to cause
the system to operate at about 50% speed. I'm not sure why.
If you have further questions, drop me an email. (mike@xxxxxxxxx)
regards
mike.
-- #include----------------------------------------------------------------------- (Ingeniør) Michael Nielsen BE(Hons) ----------------------------------------------------------------------- At arbejede er godt, så længe man husker at leve! (To work is good as long as we remember to live!)