diff options
author | Santhosh Kumar H E <skhara@codeaurora.org> | 2014-10-16 11:20:34 +0530 |
---|---|---|
committer | Santhosh Kumar H E <skhara@codeaurora.org> | 2014-10-16 11:20:34 +0530 |
commit | 823c8f4379320c407b5193540246bb8ac0f57ee6 (patch) | |
tree | 27552dda09e3b59adfca91e3306e39dc36dd3b3a | |
parent | d7810337255f08f3c89e2fb02ca393fc2997ca8d (diff) | |
download | android_packages_apps_Snap-823c8f4379320c407b5193540246bb8ac0f57ee6.tar.gz android_packages_apps_Snap-823c8f4379320c407b5193540246bb8ac0f57ee6.tar.bz2 android_packages_apps_Snap-823c8f4379320c407b5193540246bb8ac0f57ee6.zip |
Camera2: Do not restart preview to update flip params on new orientation
When there was a orientation change flip paramter had to be changed.
Currently all parameters are set again and preview is being restarted.
so preview will not be smooth when user rotae the device.
This change makes sure only necessary params are updated and
preview will not be restarted.
CRs-Fixed: 710129
Change-Id: I564431ef8cedaf68c9d12e2a84a3a430c845ab6d
-rwxr-xr-x | src/com/android/camera/PhotoModule.java | 23 | ||||
-rwxr-xr-x | src/com/android/camera/VideoModule.java | 96 |
2 files changed, 67 insertions, 52 deletions
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index eee1110b1..a16033506 100755 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -1700,7 +1700,8 @@ public class PhotoModule if (oldOrientation != mOrientation) { Log.v(TAG, "onOrientationChanged, update parameters"); if (mParameters != null && mCameraDevice != null) { - onSharedPreferenceChanged(); + setFlipValue(); + mCameraDevice.setParameters(mParameters); } } @@ -2886,6 +2887,18 @@ public class PhotoModule mCameraDevice.setHistogramMode(null); } } + + setFlipValue(); + + /* Disable focus if aebracket is ON */ + String aeBracket = mParameters.get(CameraSettings.KEY_QC_AE_BRACKETING); + if (!aeBracket.equalsIgnoreCase("off")) { + String fMode = Parameters.FLASH_MODE_OFF; + mParameters.setFlashMode(fMode); + } + } + + private void setFlipValue() { // Read Flip mode from adb command //value: 0(default) - FLIP_MODE_OFF //value: 1 - FLIP_MODE_H @@ -2928,14 +2941,8 @@ public class PhotoModule if(CameraUtil.isSupported(picture_flip, CameraSettings.getSupportedFlipMode(mParameters))){ mParameters.set(CameraSettings.KEY_QC_SNAPSHOT_PICTURE_FLIP, picture_flip); } - /* Disable focus if aebracket is ON */ - String aeBracket = mParameters.get(CameraSettings.KEY_QC_AE_BRACKETING); - if (!aeBracket.equalsIgnoreCase("off")) { - String fMode = Parameters.FLASH_MODE_OFF; - mUI.overrideSettings(CameraSettings.KEY_FLASH_MODE, fMode); - mParameters.setFlashMode(fMode); - } } + @TargetApi(Build.VERSION_CODES.JELLY_BEAN) private void setAutoExposureLockIfSupported() { if (mAeLockSupported) { diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java index 226e50398..dda9ba27b 100755 --- a/src/com/android/camera/VideoModule.java +++ b/src/com/android/camera/VideoModule.java @@ -565,8 +565,10 @@ public class VideoModule implements CameraModule, if (mOrientation != newOrientation) { mOrientation = newOrientation; Log.v(TAG, "onOrientationChanged, update parameters"); - if ((mParameters != null) && (true == mPreviewing) && !mMediaRecorderRecording){ - setCameraParameters(); + if ((mCameraDevice != null) && (mParameters != null) + && (true == mPreviewing) && !mMediaRecorderRecording){ + setFlipValue(); + mCameraDevice.setParameters(mParameters); } } @@ -1919,6 +1921,53 @@ public class VideoModule implements CameraModule, return supported == null ? false : supported.indexOf(value) >= 0; } + private void setFlipValue() { + + // Read Flip mode from adb command + //value: 0(default) - FLIP_MODE_OFF + //value: 1 - FLIP_MODE_H + //value: 2 - FLIP_MODE_V + //value: 3 - FLIP_MODE_VH + int preview_flip_value = SystemProperties.getInt("debug.camera.preview.flip", 0); + int video_flip_value = SystemProperties.getInt("debug.camera.video.flip", 0); + int picture_flip_value = SystemProperties.getInt("debug.camera.picture.flip", 0); + int rotation = CameraUtil.getJpegRotation(mCameraId, mOrientation); + mParameters.setRotation(rotation); + if (rotation == 90 || rotation == 270) { + // in case of 90 or 270 degree, V/H flip should reverse + if (preview_flip_value == 1) { + preview_flip_value = 2; + } else if (preview_flip_value == 2) { + preview_flip_value = 1; + } + if (video_flip_value == 1) { + video_flip_value = 2; + } else if (video_flip_value == 2) { + video_flip_value = 1; + } + if (picture_flip_value == 1) { + picture_flip_value = 2; + } else if (picture_flip_value == 2) { + picture_flip_value = 1; + } + } + String preview_flip = CameraUtil.getFilpModeString(preview_flip_value); + String video_flip = CameraUtil.getFilpModeString(video_flip_value); + String picture_flip = CameraUtil.getFilpModeString(picture_flip_value); + + if(CameraUtil.isSupported(preview_flip, CameraSettings.getSupportedFlipMode(mParameters))){ + mParameters.set(CameraSettings.KEY_QC_PREVIEW_FLIP, preview_flip); + } + if(CameraUtil.isSupported(video_flip, CameraSettings.getSupportedFlipMode(mParameters))){ + mParameters.set(CameraSettings.KEY_QC_VIDEO_FLIP, video_flip); + } + if(CameraUtil.isSupported(picture_flip, CameraSettings.getSupportedFlipMode(mParameters))){ + mParameters.set(CameraSettings.KEY_QC_SNAPSHOT_PICTURE_FLIP, picture_flip); + } + + + } + private void qcomSetCameraParameters(){ // add QCOM Parameters here // Set color effect parameter. @@ -2058,48 +2107,7 @@ public class VideoModule implements CameraModule, mParameters.setVideoHighFrameRate("off"); mParameters.set(CameraSettings.KEY_VIDEO_HSR, "off"); } - - // Read Flip mode from adb command - //value: 0(default) - FLIP_MODE_OFF - //value: 1 - FLIP_MODE_H - //value: 2 - FLIP_MODE_V - //value: 3 - FLIP_MODE_VH - int preview_flip_value = SystemProperties.getInt("debug.camera.preview.flip", 0); - int video_flip_value = SystemProperties.getInt("debug.camera.video.flip", 0); - int picture_flip_value = SystemProperties.getInt("debug.camera.picture.flip", 0); - int rotation = CameraUtil.getJpegRotation(mCameraId, mOrientation); - mParameters.setRotation(rotation); - if (rotation == 90 || rotation == 270) { - // in case of 90 or 270 degree, V/H flip should reverse - if (preview_flip_value == 1) { - preview_flip_value = 2; - } else if (preview_flip_value == 2) { - preview_flip_value = 1; - } - if (video_flip_value == 1) { - video_flip_value = 2; - } else if (video_flip_value == 2) { - video_flip_value = 1; - } - if (picture_flip_value == 1) { - picture_flip_value = 2; - } else if (picture_flip_value == 2) { - picture_flip_value = 1; - } - } - String preview_flip = CameraUtil.getFilpModeString(preview_flip_value); - String video_flip = CameraUtil.getFilpModeString(video_flip_value); - String picture_flip = CameraUtil.getFilpModeString(picture_flip_value); - - if(CameraUtil.isSupported(preview_flip, CameraSettings.getSupportedFlipMode(mParameters))){ - mParameters.set(CameraSettings.KEY_QC_PREVIEW_FLIP, preview_flip); - } - if(CameraUtil.isSupported(video_flip, CameraSettings.getSupportedFlipMode(mParameters))){ - mParameters.set(CameraSettings.KEY_QC_VIDEO_FLIP, video_flip); - } - if(CameraUtil.isSupported(picture_flip, CameraSettings.getSupportedFlipMode(mParameters))){ - mParameters.set(CameraSettings.KEY_QC_SNAPSHOT_PICTURE_FLIP, picture_flip); - } + setFlipValue(); // Set video CDS String video_cds = mPreferences.getString( |