summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkaiyiz <kaiyiz@codeaurora.org>2014-08-20 17:49:52 +0800
committerGerrit Code Review <gerrit@cyanogenmod.org>2014-10-20 22:20:48 +0000
commit9f87f1ebdfd11cb92b88d8f35eeeba3395a53628 (patch)
tree1e94d4a1fa02b271ade3b7a223343c2a1abc15d5
parent562fcac981aea65c471355ee32c9295479697d14 (diff)
downloadandroid_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.java9
-rw-r--r--src/com/android/camera/VideoModule.java96
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,