My VideoCapture loop receives only about 15 FPS on a Nexus 10. Is there any reasonable chance I could increase this up to about 30? If so, how? Logcat messages suggest that 30 FPS is possible. I would like to get frames with as little preprocessing done to them as possible, which should not take much cpu time. Is this a limitation of the native camera implementation? Would the Java camera interface enable higher frame rates?
Here is the relevant code fragment.
cv::VideoCapture reader;
reader.set( CV_CAP_PROP_CONVERT_RGB, 0 );
reader.set( CV_CAP_PROP_FPS, 30 );
reader.open( CV_CAP_ANDROID + 1-camID );
reader.set( CV_CAP_PROP_FRAME_WIDTH, 320 );
reader.set( CV_CAP_PROP_FRAME_HEIGHT, 240 );
cv::Mat frame;
while( !stopRequested() )
{
//... get time here
reader >> frame;
//... record elased time here
//... ultimately do somthing with the frame here
}