diff options
author | kaiyiz <kaiyiz@codeaurora.org> | 2014-08-20 17:49:52 +0800 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2014-10-20 22:20:48 +0000 |
commit | 9f87f1ebdfd11cb92b88d8f35eeeba3395a53628 (patch) | |
tree | 1e94d4a1fa02b271ade3b7a223343c2a1abc15d5 | |
parent | 562fcac981aea65c471355ee32c9295479697d14 (diff) | |
download | android_packages_apps_Camera2-9f87f1ebdfd11cb92b88d8f35eeeba3395a53628.tar.gz android_packages_apps_Camera2-9f87f1ebdfd11cb92b88d8f35eeeba3395a53628.tar.bz2 android_packages_apps_Camera2-9f87f1ebdfd11cb92b88d8f35eeeba3395a53628.zip |
Camera2: Do not restart preview to update flip params during orientation change.
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
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 9 | ||||
-rw-r--r-- | src/com/android/camera/VideoModule.java | 96 |
2 files changed, 60 insertions, 45 deletions
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index a3aff2d54..f847e6b13 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -1558,7 +1558,8 @@ public class PhotoModule oldOrientation != OrientationEventListener.ORIENTATION_UNKNOWN) { Log.v(TAG, "onOrientationChanged, update parameters"); if (mParameters != null && mCameraDevice != null) { - onSharedPreferenceChanged(); + setFlipValue(); + mCameraDevice.setParameters(mParameters); } } @@ -2560,6 +2561,11 @@ public class PhotoModule mCameraDevice.setHistogramMode(null); } } + + setFlipValue(); + } + + private void setFlipValue() { // Read Flip mode from adb command //value: 0(default) - FLIP_MODE_OFF //value: 1 - FLIP_MODE_H @@ -2601,6 +2607,7 @@ public class PhotoModule mParameters.set(CameraSettings.KEY_QC_SNAPSHOT_PICTURE_FLIP, picture_flip); } } + @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 e453f98a5..242175079 100644 --- a/src/com/android/camera/VideoModule.java +++ b/src/com/android/camera/VideoModule.java @@ -603,8 +603,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); } } @@ -1941,6 +1943,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. @@ -2011,48 +2060,7 @@ public class VideoModule implements CameraModule, mParameters.setVideoHighFrameRate("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 HDR. String videoHDR = mPreferences.getString( CameraSettings.KEY_VIDEO_HDR, |