summaryrefslogtreecommitdiffstats
path: root/libcamera/SecCameraHWInterface.cpp
diff options
context:
space:
mode:
authorWu-cheng Li <wuchengli@google.com>2010-11-10 08:37:35 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2010-11-10 08:37:35 -0800
commit89edd87e5ec7f5dbd71d43b40832b11528b64f82 (patch)
tree0b7522f35d45d2a6d1d2aa19f3f8ec763826e7c1 /libcamera/SecCameraHWInterface.cpp
parent16dd7384dfa6e2fd087ca65479ee855383e721bd (diff)
parentcb1461b5c065c9d924d236132cb72e936a5ea58a (diff)
downloaddevice_samsung_crespo-89edd87e5ec7f5dbd71d43b40832b11528b64f82.zip
device_samsung_crespo-89edd87e5ec7f5dbd71d43b40832b11528b64f82.tar.gz
device_samsung_crespo-89edd87e5ec7f5dbd71d43b40832b11528b64f82.tar.bz2
am cb1461b5: am 1f5810e6: Merge "libcamera: Fix a problem when switching recording mode in night scnen" into gingerbread
* commit 'cb1461b5c065c9d924d236132cb72e936a5ea58a': libcamera: Fix a problem when switching recording mode in night scnen
Diffstat (limited to 'libcamera/SecCameraHWInterface.cpp')
-rw-r--r--libcamera/SecCameraHWInterface.cpp42
1 files changed, 24 insertions, 18 deletions
diff --git a/libcamera/SecCameraHWInterface.cpp b/libcamera/SecCameraHWInterface.cpp
index 0e2a418..8a0da2c 100644
--- a/libcamera/SecCameraHWInterface.cpp
+++ b/libcamera/SecCameraHWInterface.cpp
@@ -1753,6 +1753,10 @@ status_t CameraHardwareSec::setParameters(const CameraParameters& params)
}
}
+ // scene mode
+ const char *new_scene_mode_str = params.get(CameraParameters::KEY_SCENE_MODE);
+ const char *current_scene_mode_str = mParameters.get(CameraParameters::KEY_SCENE_MODE);
+
// fps range
int new_min_fps = 0;
int new_max_fps = 0;
@@ -1761,31 +1765,36 @@ status_t CameraHardwareSec::setParameters(const CameraParameters& params)
mParameters.getPreviewFpsRange(&current_min_fps, &current_max_fps);
/* our fps range is determined by the sensor, reject any request
* that isn't exactly what we're already at.
+ * but the check is performed when requesting only changing fps range
*/
- if ((new_min_fps != current_min_fps) || (new_max_fps != current_max_fps)) {
- LOGW("%s : requested new_min_fps = %d, new_max_fps = %d not allowed",
- __func__, new_min_fps, new_max_fps);
- LOGE("%s : current_min_fps = %d, current_max_fps = %d",
- __func__, current_min_fps, current_max_fps);
+ if (new_scene_mode_str && current_scene_mode_str) {
+ if (!strcmp(new_scene_mode_str, current_scene_mode_str)) {
+ if ((new_min_fps != current_min_fps) || (new_max_fps != current_max_fps)) {
+ LOGW("%s : requested new_min_fps = %d, new_max_fps = %d not allowed",
+ __func__, new_min_fps, new_max_fps);
+ LOGE("%s : current_min_fps = %d, current_max_fps = %d",
+ __func__, current_min_fps, current_max_fps);
+ ret = UNKNOWN_ERROR;
+ }
+ }
+ } else {
+ /* Check basic validation if scene mode is different */
+ if ((new_min_fps > new_max_fps) ||
+ (new_min_fps < 0) || (new_max_fps < 0))
ret = UNKNOWN_ERROR;
}
- // scene mode
- const char *new_scene_mode_str = params.get(CameraParameters::KEY_SCENE_MODE);
-
- LOGV("%s : new_scene_mode_str %s", __func__, new_scene_mode_str);
-
if (new_scene_mode_str != NULL) {
int new_scene_mode = -1;
const char *new_flash_mode_str = params.get(CameraParameters::KEY_FLASH_MODE);
const char *new_focus_mode_str;
- if (mSecCamera->getCameraId() == SecCamera::CAMERA_ID_BACK) {
- new_focus_mode_str = params.get(CameraParameters::KEY_FOCUS_MODE);
- } else {
- new_focus_mode_str = NULL;
- }
+ new_focus_mode_str = params.get(CameraParameters::KEY_FOCUS_MODE);
+ // fps range is (15000,30000) by default.
+ mParameters.set(CameraParameters::KEY_SUPPORTED_PREVIEW_FPS_RANGE, "(15000,30000)");
+ mParameters.set(CameraParameters::KEY_PREVIEW_FPS_RANGE,
+ "15000,30000");
if (!strcmp(new_scene_mode_str, CameraParameters::SCENE_MODE_AUTO)) {
new_scene_mode = SCENE_MODE_NONE;
@@ -1795,9 +1804,6 @@ status_t CameraHardwareSec::setParameters(const CameraParameters& params)
new_focus_mode_str = CameraParameters::FOCUS_MODE_AUTO;
}
new_flash_mode_str = CameraParameters::FLASH_MODE_OFF;
- mParameters.set(CameraParameters::KEY_SUPPORTED_PREVIEW_FPS_RANGE, "(15000,30000)");
- mParameters.set(CameraParameters::KEY_PREVIEW_FPS_RANGE,
- "15000,30000");
if (!strcmp(new_scene_mode_str,
CameraParameters::SCENE_MODE_PORTRAIT)) {