summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/imageprocessor/filter/UbifocusFilter.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/imageprocessor/filter/UbifocusFilter.java')
-rw-r--r--src/com/android/camera/imageprocessor/filter/UbifocusFilter.java21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/com/android/camera/imageprocessor/filter/UbifocusFilter.java b/src/com/android/camera/imageprocessor/filter/UbifocusFilter.java
index b410e01b4..c68b5091e 100644
--- a/src/com/android/camera/imageprocessor/filter/UbifocusFilter.java
+++ b/src/com/android/camera/imageprocessor/filter/UbifocusFilter.java
@@ -63,7 +63,7 @@ public class UbifocusFilter implements ImageFilter {
private int mStrideY;
private int mStrideVU;
private static String TAG = "UbifocusFilter";
- private static final boolean DEBUG = true;
+ private static final boolean DEBUG = false;
private static final int FOCUS_ADJUST_TIME_OUT = 200;
private static final int META_BYTES_SIZE = 25;
private int temp;
@@ -76,6 +76,8 @@ public class UbifocusFilter implements ImageFilter {
final String[] NAMES = {"00.jpg", "01.jpg", "02.jpg", "03.jpg",
"04.jpg", "DepthMapImage.y", "AllFocusImage.jpg"};
+ private int mSavedCount = 0;
+
private static void Log(String msg) {
if (DEBUG) {
Log.d(TAG, msg);
@@ -122,18 +124,24 @@ public class UbifocusFilter implements ImageFilter {
}
@Override
- public void addImage(ByteBuffer bY, ByteBuffer bVU, int imageNum, Object param) {
+ public void addImage(final ByteBuffer bY, final ByteBuffer bVU, final int imageNum, Object param) {
Log("addImage");
if(imageNum == 0) {
mModule.setRefocusLastTaken(false);
mOrientation = CameraUtil.getJpegRotation(mModule.getMainCameraId(), mModule.getDisplayOrientation());
+ mSavedCount = 0;
}
- saveToPrivateFile(imageNum, nv21ToJpeg(bY, bVU, new Rect(0, 0, mWidth, mHeight), mOrientation));
int yActualSize = bY.remaining();
int vuActualSize = bVU.remaining();
if(nativeAddImage(bY, bVU, yActualSize, vuActualSize, imageNum) < 0) {
Log.e(TAG, "Fail to add image");
}
+ new Thread() {
+ public void run() {
+ saveToPrivateFile(imageNum, nv21ToJpeg(bY, bVU, new Rect(0, 0, mWidth, mHeight), mOrientation));
+ mSavedCount++;
+ }
+ }.start();
}
@Override
@@ -151,7 +159,12 @@ public class UbifocusFilter implements ImageFilter {
saveToPrivateFile(NAMES.length - 1, nv21ToJpeg(mOutBuf, null, new Rect(roi[0], roi[1], roi[0] + roi[2], roi[1] + roi[3]), mOrientation));
mModule.setRefocusLastTaken(true);
}
-
+ while(mSavedCount < NUM_REQUIRED_IMAGE) {
+ try {
+ Thread.sleep(1);
+ } catch (Exception e) {
+ }
+ }
ResultImage result = new ResultImage(mOutBuf, new Rect(roi[0], roi[1], roi[0]+roi[2], roi[1] + roi[3]), mWidth, mHeight, mStrideY);
Log("processImage done");
return result;