diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2015-05-05 01:18:39 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2015-05-05 01:18:39 -0700 |
commit | 4bc162998337775368584dcdf4165eff004c35e1 (patch) | |
tree | 64ebb36de2a48f89998cd76bf29c684bfffd39e7 | |
parent | 0748aaa586045a489c5bfb763246c354e0dc442a (diff) | |
parent | 164a956d7aa04958df9043cc33bb0cca11bed29f (diff) | |
download | android_packages_apps_Snap-4bc162998337775368584dcdf4165eff004c35e1.tar.gz android_packages_apps_Snap-4bc162998337775368584dcdf4165eff004c35e1.tar.bz2 android_packages_apps_Snap-4bc162998337775368584dcdf4165eff004c35e1.zip |
Merge "SnapdragonCamera: Fix preview window race condition."
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java index e2fc34b0c..cf1de18f3 100644 --- a/src/com/android/camera/PhotoModule.java +++ b/src/com/android/camera/PhotoModule.java @@ -584,12 +584,14 @@ public class PhotoModule if (mCameraState == PREVIEW_STOPPED) { startPreview(); } else { - SurfaceHolder sh = mUI.getSurfaceHolder(); - if (sh == null) { - Log.w(TAG, "startPreview: holder for preview are not ready."); - return; + synchronized (mCameraDevice) { + SurfaceHolder sh = mUI.getSurfaceHolder(); + if (sh == null) { + Log.w(TAG, "startPreview: holder for preview are not ready."); + return; + } + mCameraDevice.setPreviewDisplay(sh); } - mCameraDevice.setPreviewDisplay(sh); } } @@ -2617,15 +2619,16 @@ public class PhotoModule return; } - SurfaceHolder sh = null; - Log.v(TAG, "startPreview: SurfaceHolder (MDP path)"); - if (mUI != null) { - sh = mUI.getSurfaceHolder(); - } + synchronized (mCameraDevice) { + SurfaceHolder sh = null; + Log.v(TAG, "startPreview: SurfaceHolder (MDP path)"); + if (mUI != null) { + sh = mUI.getSurfaceHolder(); + } - setCameraParameters(UPDATE_PARAM_ALL); - // Let UI set its expected aspect ratio - mCameraDevice.setPreviewDisplay(sh); + // Let UI set its expected aspect ratio + mCameraDevice.setPreviewDisplay(sh); + } if (!mCameraPreviewParamsReady) { Log.w(TAG, "startPreview: parameters for preview are not ready."); |