summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAngus Kong <shkong@google.com>2013-02-11 16:28:04 -0800
committerAngus Kong <shkong@google.com>2013-02-12 09:52:41 -0800
commit31019e09eaaa460e68b3f90a881ea3278fbd6108 (patch)
tree14802cf80329acd0a819e96dc0b0d17a36eefc31 /src
parent83eeb942e8eda7da94303eb1c105164c253cdbba (diff)
downloadandroid_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.java3
-rw-r--r--src/com/android/camera/MosaicPreviewRenderer.java3
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() {