mParameters.getPreviewSize(&width, &height);
}
- int fps = mParameters.getPreviewFrameRate();
+ int fps = getPreviewFrameRate(mParameters);
ALOGD("CameraHardware::startPreviewLocked: Open, %dx%d", width, height);
int w, h;
params.getPreviewSize(&w, &h);
- ALOGD("CameraHardware::setParameters: PREVIEW: Size %dx%d, %d fps, format: %s", w, h, params.getPreviewFrameRate(), params.getPreviewFormat());
+ ALOGD("CameraHardware::setParameters: PREVIEW: Size %dx%d, %d fps, format: %s", w, h, getPreviewFrameRate(params), params.getPreviewFormat());
params.getPictureSize(&w, &h);
ALOGD("CameraHardware::setParameters: PICTURE: Size %dx%d, format: %s", w, h, params.getPictureFormat());
String8 fpsranges("");
for (i = 0; i < avFps.size(); i++) {
char descr[32];
- int ss = avFps[i];
- sprintf(descr,"(%d,%d)",ss,ss);
+ int ss = avFps[i] * 1000;
+ sprintf(descr, "(%d,%d)", ss, ss);
fpsranges.append(descr);
if (i < avFps.size() - 1) {
fpsranges.append(",");
{
ALOGV("CameraHardware::previewThread: this=%p",this);
- int previewFrameRate = mParameters.getPreviewFrameRate();
+ int previewFrameRate = getPreviewFrameRate(mParameters);
// Calculate how long to wait between frames.
int delay = (int)(1000000 / previewFrameRate);
return NO_ERROR;
}
+int CameraHardware::getPreviewFrameRate(const CameraParameters& params)
+{
+ int min_fps = -1, max_fps = -1;
+ params.getPreviewFpsRange(&min_fps, &max_fps);
+ if (max_fps == -1) {
+ max_fps = params.getPreviewFrameRate();
+ } else {
+ max_fps /= 1000;
+ }
+ return max_fps;
+}
+
/****************************************************************************
* Camera API callbacks as defined by camera_device_ops structure.
*