summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/imageprocessor/filter
diff options
context:
space:
mode:
authorJack Yoo <jyoo@codeaurora.org>2016-10-12 09:50:47 -0700
committerJack Yoo <jyoo@codeaurora.org>2016-10-20 11:24:37 -0700
commite5638a1b4697191588438be133102f61b67a3985 (patch)
treeb127b3484af48db5d576d320b3807250fc190166 /src/com/android/camera/imageprocessor/filter
parentc250484c375484e70a1c8e64eb8bd956b3f1c15d (diff)
downloadandroid_packages_apps_Snap-e5638a1b4697191588438be133102f61b67a3985.tar.gz
android_packages_apps_Snap-e5638a1b4697191588438be133102f61b67a3985.tar.bz2
android_packages_apps_Snap-e5638a1b4697191588438be133102f61b67a3985.zip
SnapdragonCamera: PanoramaUI and filter change
1. Adjusting Panorama UI 2. Adjusting Chormaflash filter 3. Changing Ubifocus focus timeout value 4. ZSL Flash mode change Change-Id: Ia46fdc827cd5529a8b7c6f5cfafc44bb3cf00d06 CRs-Fixed: 1080317
Diffstat (limited to 'src/com/android/camera/imageprocessor/filter')
-rw-r--r--src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java57
-rw-r--r--src/com/android/camera/imageprocessor/filter/UbifocusFilter.java10
2 files changed, 50 insertions, 17 deletions
diff --git a/src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java b/src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java
index ad4c9933a..e244c1040 100644
--- a/src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java
+++ b/src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java
@@ -44,7 +44,7 @@ import java.util.ArrayList;
import java.util.List;
public class ChromaflashFilter implements ImageFilter{
- public static final int NUM_REQUIRED_IMAGE = 3;
+ public static final int NUM_REQUIRED_IMAGE = 6;
private int mWidth;
private int mHeight;
private int mStrideY;
@@ -105,6 +105,10 @@ public class ChromaflashFilter implements ImageFilter{
@Override
public void addImage(ByteBuffer bY, ByteBuffer bVU, int imageNum, Object param) {
Log("addImage");
+ if(imageNum == 1 || imageNum == 2 || imageNum == 4) {
+ mImageNum = imageNum;
+ return;
+ }
int yActualSize = bY.remaining();
int vuActualSize = bVU.remaining();
mImageNum = imageNum;
@@ -143,19 +147,46 @@ public class ChromaflashFilter implements ImageFilter{
}
@Override
- public void manualCapture(CaptureRequest.Builder builder, CameraCaptureSession captureSession,
- CameraCaptureSession.CaptureCallback callback, Handler handler) throws CameraAccessException {
- for(int i=0; i < NUM_REQUIRED_IMAGE; i++) {
- if(i == 1) {
- mModule.setFlashModeToPreview(mModule.getMainCameraId(), true);
- builder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON);
- builder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_SINGLE);
- } else {
- mModule.setFlashModeToPreview(mModule.getMainCameraId(), false);
- builder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON);
- builder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF);
+ public void manualCapture(final CaptureRequest.Builder builder, final CameraCaptureSession captureSession,
+ final CameraCaptureSession.CaptureCallback callback, final Handler handler) throws CameraAccessException {
+ new Thread() {
+ public void run() {
+ try {
+ for (int i = 0; i < NUM_REQUIRED_IMAGE; i++) {
+ if (i == 0) {
+ captureSession.capture(builder.build(), callback, handler);
+ } else if (i == 1) { //To change the setting
+ builder.set(CaptureRequest.CONTROL_AE_LOCK, Boolean.FALSE);
+ captureSession.capture(builder.build(), callback, handler);
+ waitForImage(i);
+ } else if (i == 2) { //To change the setting
+ builder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON);
+ builder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_SINGLE);
+ builder.set(CaptureRequest.CONTROL_AE_LOCK, Boolean.TRUE);
+ captureSession.capture(builder.build(), callback, handler);
+ waitForImage(i);
+ } else if (i == 3) {
+ captureSession.capture(builder.build(), callback, handler);
+ } else if (i == 4) { //To change the setting
+ builder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF);
+ captureSession.capture(builder.build(), callback, handler);
+ waitForImage(i);
+ } else if (i == 5) {
+ captureSession.capture(builder.build(), callback, handler);
+ }
+ }
+ } catch(CameraAccessException e) {}
+
+ }
+ }.start();
+ }
+
+ private void waitForImage(int index) {
+ try {
+ while(mImageNum < index) {
+ Thread.sleep(50);
}
- captureSession.capture(builder.build(), callback, handler);
+ } catch (InterruptedException e) {
}
}
diff --git a/src/com/android/camera/imageprocessor/filter/UbifocusFilter.java b/src/com/android/camera/imageprocessor/filter/UbifocusFilter.java
index 57da5c441..f32832dd8 100644
--- a/src/com/android/camera/imageprocessor/filter/UbifocusFilter.java
+++ b/src/com/android/camera/imageprocessor/filter/UbifocusFilter.java
@@ -64,7 +64,7 @@ public class UbifocusFilter implements ImageFilter {
private int mStrideVU;
private static String TAG = "UbifocusFilter";
private static final boolean DEBUG = false;
- private static final int FOCUS_ADJUST_TIME_OUT = 200;
+ private static final int FOCUS_ADJUST_TIME_OUT = 400;
private static final int META_BYTES_SIZE = 25;
private int temp;
private static boolean mIsSupported = true;
@@ -206,6 +206,8 @@ public class UbifocusFilter implements ImageFilter {
float value = (i * step);
mModule.setAFModeToPreview(mModule.getMainCameraId(), CaptureRequest.CONTROL_AF_MODE_OFF);
mModule.setFocusDistanceToPreview(mModule.getMainCameraId(), value);
+ Log("Request: " + value);
+ float focusDistance;
try {
int count = FOCUS_ADJUST_TIME_OUT;
do {
@@ -214,15 +216,15 @@ public class UbifocusFilter implements ImageFilter {
if(count <= 0) {
break;
}
- } while(Math.abs(mModule.getPreviewCaptureResult().get(CaptureResult.LENS_FOCUS_DISTANCE)
- - value) >= 0.5f);
+ focusDistance = mModule.getPreviewCaptureResult().get(CaptureResult.LENS_FOCUS_DISTANCE);
+ Log("Taken focus value :"+focusDistance);
+ } while(Math.abs(focusDistance - value) >= 1f);
} catch (InterruptedException e) {
} catch (NullPointerException e) {
}
builder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_OFF);
builder.set(CaptureRequest.LENS_FOCUS_DISTANCE, value);
captureSession.capture(builder.build(), callback, handler);
- Log.d(TAG, "Request: " + value);
}
}