diff options
author | Wu-cheng Li <wuchengli@google.com> | 2010-11-10 08:37:35 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2010-11-10 08:37:35 -0800 |
commit | 89edd87e5ec7f5dbd71d43b40832b11528b64f82 (patch) | |
tree | 0b7522f35d45d2a6d1d2aa19f3f8ec763826e7c1 /libcamera/SecCameraHWInterface.cpp | |
parent | 16dd7384dfa6e2fd087ca65479ee855383e721bd (diff) | |
parent | cb1461b5c065c9d924d236132cb72e936a5ea58a (diff) | |
download | device_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.cpp | 42 |
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(¤t_min_fps, ¤t_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)) { |