diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2015-04-09 02:36:20 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2015-04-09 02:36:19 -0700 |
commit | daf31ffbf9af98c5fe161a2b6f744e239203dc85 (patch) | |
tree | 12d1c244d79a44e2a03f5976ef3d4bbf7dfe8d1c /src | |
parent | e341b3d335e848babb0f2da684ea94df3fe53130 (diff) | |
parent | 918e9627ecd69dab90be053bba59c6593ad235e9 (diff) | |
download | android_packages_apps_Snap-daf31ffbf9af98c5fe161a2b6f744e239203dc85.tar.gz android_packages_apps_Snap-daf31ffbf9af98c5fe161a2b6f744e239203dc85.tar.bz2 android_packages_apps_Snap-daf31ffbf9af98c5fe161a2b6f744e239203dc85.zip |
Merge "SnapdragonCamera: Fix camera parameters concurrent modification."
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 47 |
1 files changed, 30 insertions, 17 deletions
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index bba073f68..6bfffb695 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -1518,20 +1518,23 @@ public class PhotoModule // Set rotation and gps data. int orientation = mOrientation; mJpegRotation = CameraUtil.getJpegRotation(mCameraId, orientation); - mParameters.setRotation(mJpegRotation); String pictureFormat = mParameters.get(KEY_PICTURE_FORMAT); Location loc = getLocationAccordPictureFormat(pictureFormat); - CameraUtil.setGpsParameters(mParameters, loc); - if (mRefocus) { - mParameters.set(CameraSettings.KEY_QC_LEGACY_BURST, - CameraSettings.KEY_QC_RE_FOCUS_COUNT); - } else { - mParameters.remove(CameraSettings.KEY_QC_LEGACY_BURST); - } + synchronized (mCameraDevice) { + mParameters.setRotation(mJpegRotation); + CameraUtil.setGpsParameters(mParameters, loc); - mCameraDevice.setParameters(mParameters); - mParameters = mCameraDevice.getParameters(); + if (mRefocus) { + mParameters.set(CameraSettings.KEY_QC_LEGACY_BURST, + CameraSettings.KEY_QC_RE_FOCUS_COUNT); + } else { + mParameters.remove(CameraSettings.KEY_QC_LEGACY_BURST); + } + + mCameraDevice.setParameters(mParameters); + mParameters = mCameraDevice.getParameters(); + } mBurstSnapNum = mParameters.getInt("num-snaps-per-shutter"); mReceivedSnapNum = 0; @@ -1870,9 +1873,11 @@ public class PhotoModule if (oldOrientation != mOrientation) { Log.v(TAG, "onOrientationChanged, update parameters"); if (mParameters != null && mCameraDevice != null) { - setFlipValue(); - updatePowerMode(); - mCameraDevice.setParameters(mParameters); + synchronized (mCameraDevice) { + setFlipValue(); + updatePowerMode(); + mCameraDevice.setParameters(mParameters); + } } mUI.setOrientation(mOrientation, true); if (mGraphView != null) { @@ -4255,10 +4260,12 @@ public class PhotoModule mZoomValue = index; if (mParameters == null || mCameraDevice == null) return index; // Set zoom parameters asynchronously - mParameters.setZoom(mZoomValue); - mCameraDevice.setParameters(mParameters); - Parameters p = mCameraDevice.getParameters(); - if (p != null) return p.getZoom(); + synchronized (mCameraDevice) { + mParameters.setZoom(mZoomValue); + mCameraDevice.setParameters(mParameters); + Parameters p = mCameraDevice.getParameters(); + if (p != null) return p.getZoom(); + } return index; } @@ -4363,6 +4370,12 @@ public class PhotoModule @Override public void onMakeupLevel(String key, String value) { + synchronized (mCameraDevice) { + onMakeupLevelSync(key, value); + } + } + + public void onMakeupLevelSync(String key, String value) { Log.d(TAG, "PhotoModule.onMakeupLevel(): key is " + key + ", value is " + value); if(TextUtils.isEmpty(value)) { |