summaryrefslogtreecommitdiffstats
path: root/libcamera
diff options
context:
space:
mode:
authorMike J. Chen <mjchen@sta.samsung.com>2010-10-29 19:44:41 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-10-29 19:44:41 -0700
commite92ebc36a3b4b611a42a2ff556c20a97d1faaff6 (patch)
tree9a86b8dd7413922d31f537c1aa6c31376407d769 /libcamera
parent6612cbde7f43130569aa59493edb532697592a76 (diff)
parent54008a32aecb88aed085d0b36ec47e8c8c5ba5e6 (diff)
downloaddevice_samsung_crespo-e92ebc36a3b4b611a42a2ff556c20a97d1faaff6.zip
device_samsung_crespo-e92ebc36a3b4b611a42a2ff556c20a97d1faaff6.tar.gz
device_samsung_crespo-e92ebc36a3b4b611a42a2ff556c20a97d1faaff6.tar.bz2
am 54008a32: am b625b09e: S5PC11X: libcamera: fix new CTS failures and use of closed fd
* commit '54008a32aecb88aed085d0b36ec47e8c8c5ba5e6': S5PC11X: libcamera: fix new CTS failures and use of closed fd
Diffstat (limited to 'libcamera')
-rw-r--r--libcamera/SecCamera.cpp16
-rw-r--r--libcamera/SecCameraHWInterface.cpp15
2 files changed, 20 insertions, 11 deletions
diff --git a/libcamera/SecCamera.cpp b/libcamera/SecCamera.cpp
index c336a69..55baef7 100644
--- a/libcamera/SecCamera.cpp
+++ b/libcamera/SecCamera.cpp
@@ -186,7 +186,7 @@ static int fimc_poll(struct pollfd *events)
{
int ret;
- /* 10 second delay is because sensor can take a long time
+ /* 10 second delay is because sensor can take a long time
* to do auto focus and capture in dark settings
*/
ret = poll(events, 1, 10000);
@@ -859,20 +859,28 @@ void SecCamera::DeinitCamera()
m_jpeg_fd = 0;
}
#endif
+
+#ifdef DUAL_PORT_RECORDING
+ stopRecord();
+#endif
+
+ /* close m_cam_fd after stopRecord() because stopRecord()
+ * uses m_cam_fd to change frame rate
+ */
LOGE("DeinitCamera: m_cam_fd(%d)", m_cam_fd);
if (m_cam_fd > -1) {
close(m_cam_fd);
m_cam_fd = -1;
}
-#ifdef DUAL_PORT_RECORDING
- stopRecord();
+#ifdef DUAL_PORT_RECORDING
LOGE("DeinitCamera: m_cam_fd2(%d)", m_cam_fd2);
if (m_cam_fd2 > -1) {
close(m_cam_fd2);
m_cam_fd2 = -1;
}
#endif
+
if (m_cam_fd_temp != -1) {
close(m_cam_fd_temp);
m_cam_fd_temp = -1;
@@ -985,7 +993,7 @@ int SecCamera::startPreview(void)
CHECK(ret);
#ifdef SWP1_CAMERA_ADD_ADVANCED_FUNCTION
- LOGV("%s: get the first frame of the preview\n", __func__);
+ LOGV("%s: got the first frame of the preview\n", __func__);
#endif /* SWP1_CAMERA_ADD_ADVANCED_FUNCTION */
#ifndef SWP1_CAMERA_ADD_ADVANCED_FUNCTION
diff --git a/libcamera/SecCameraHWInterface.cpp b/libcamera/SecCameraHWInterface.cpp
index fdcb1a3..5b45654 100644
--- a/libcamera/SecCameraHWInterface.cpp
+++ b/libcamera/SecCameraHWInterface.cpp
@@ -320,8 +320,8 @@ void CameraHardwareSec::initDefaultParameters(int cameraId)
p.set(CameraParameters::KEY_FOCAL_LENGTH, "3.43");
} else {
- p.set(CameraParameters::KEY_SUPPORTED_PREVIEW_FPS_RANGE, "(7500,15000)");
- p.set(CameraParameters::KEY_PREVIEW_FPS_RANGE, "7500,15000");
+ p.set(CameraParameters::KEY_SUPPORTED_PREVIEW_FPS_RANGE, "(7500,30000)");
+ p.set(CameraParameters::KEY_PREVIEW_FPS_RANGE, "7500,30000");
p.set(CameraParameters::KEY_FOCAL_LENGTH, "0.9");
}
@@ -1087,7 +1087,7 @@ int CameraHardwareSec::pictureThread()
mStateLock.lock();
mCaptureInProgress = false;
mStateLock.unlock();
- return UNKNOWN_ERROR;
+ return UNKNOWN_ERROR;
}
LOGI("snapshotandjpeg done\n");
}
@@ -1097,7 +1097,7 @@ int CameraHardwareSec::pictureThread()
mStateLock.lock();
mCaptureInProgress = false;
mStateLock.unlock();
- return UNKNOWN_ERROR;
+ return UNKNOWN_ERROR;
}
jpeg_data = mSecCamera->yuv2Jpeg((unsigned char*)phyAddr, 0, &jpeg_size,
@@ -1222,7 +1222,7 @@ PostviewOverlayEnd:
LOGV("JpegExifSize=%d", JpegExifSize);
if (JpegExifSize < 0) {
- return UNKNOWN_ERROR;
+ return UNKNOWN_ERROR;
}
unsigned char *ExifStart = (unsigned char *)JpegHeap->base() + 2;
@@ -1670,8 +1670,9 @@ status_t CameraHardwareSec::setParameters(const CameraParameters& params)
/* ignore any fps request, we're determine fps automatically based
* on scene mode. don't return an error because it causes CTS failure.
*/
- if (new_frame_rate != 30) {
- LOGW("WARN(%s): request for frame rate setting (%d) not allowed\n", __func__, new_frame_rate);
+ if (new_frame_rate != mParameters.getPreviewFrameRate()) {
+ LOGW("WARN(%s): request for preview frame %d not allowed, != %d\n",
+ __func__, new_frame_rate, mParameters.getPreviewFrameRate());
}
// rotation