diff options
author | Angus Kong <shkong@google.com> | 2013-02-11 16:28:04 -0800 |
---|---|---|
committer | Angus Kong <shkong@google.com> | 2013-02-12 09:52:41 -0800 |
commit | 31019e09eaaa460e68b3f90a881ea3278fbd6108 (patch) | |
tree | 14802cf80329acd0a819e96dc0b0d17a36eefc31 /src | |
parent | 83eeb942e8eda7da94303eb1c105164c253cdbba (diff) | |
download | android_packages_apps_Snap-31019e09eaaa460e68b3f90a881ea3278fbd6108.tar.gz android_packages_apps_Snap-31019e09eaaa460e68b3f90a881ea3278fbd6108.tar.bz2 android_packages_apps_Snap-31019e09eaaa460e68b3f90a881ea3278fbd6108.zip |
Wait for the previous MosaicPreviewRenderer to end
When changing orientations very fast, there might be 2 MosaicPreviewRenderer
instances accessing the SRI native library at the same time. The library is not
designed so.
bug:8151753
Change-Id: Ie7a381349feeb95b40bae3c093cfcb66acba9069
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/camera/MosaicFrameProcessor.java | 3 | ||||
-rw-r--r-- | src/com/android/camera/MosaicPreviewRenderer.java | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/com/android/camera/MosaicFrameProcessor.java b/src/com/android/camera/MosaicFrameProcessor.java index c59e6b91b..efd4ad2ae 100644 --- a/src/com/android/camera/MosaicFrameProcessor.java +++ b/src/com/android/camera/MosaicFrameProcessor.java @@ -92,7 +92,8 @@ public class MosaicFrameProcessor { mPreviewBufferSize = bufSize; setupMosaicer(mPreviewWidth, mPreviewHeight, mPreviewBufferSize); setStripType(Mosaic.STRIPTYPE_WIDE); - reset(); + // no need to call reset() here. reset() should be called by the client + // after this initialization before calling other methods of this object. } public void clear() { diff --git a/src/com/android/camera/MosaicPreviewRenderer.java b/src/com/android/camera/MosaicPreviewRenderer.java index e12fe432e..26ce733aa 100644 --- a/src/com/android/camera/MosaicPreviewRenderer.java +++ b/src/com/android/camera/MosaicPreviewRenderer.java @@ -90,6 +90,7 @@ public class MosaicPreviewRenderer { break; case MSG_RELEASE: doRelease(); + mEglThreadBlockVar.open(); break; } } @@ -203,7 +204,7 @@ public class MosaicPreviewRenderer { } public void release() { - mEglHandler.sendEmptyMessage(EGLHandler.MSG_RELEASE); + mEglHandler.sendMessageSync(EGLHandler.MSG_RELEASE); } public void showPreviewFrameSync() { |