summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com/android/camera/CameraActivity.java3
-rw-r--r--src/com/android/camera/CameraSettings.java2
-rw-r--r--[-rwxr-xr-x]src/com/android/camera/SettingsManager.java2
-rw-r--r--src/com/android/camera/imageprocessor/FrameProcessor.java12
-rw-r--r--src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java60
-rw-r--r--[-rwxr-xr-x]src/com/android/camera/ui/Camera2FaceView.java2
-rw-r--r--src/com/android/camera/util/CameraUtil.java4
7 files changed, 74 insertions, 11 deletions
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java
index 7f155cbd7..ca78ba969 100644
--- a/src/com/android/camera/CameraActivity.java
+++ b/src/com/android/camera/CameraActivity.java
@@ -129,7 +129,7 @@ public class CameraActivity extends Activity
ActionBar.OnMenuVisibilityListener,
ShareActionProvider.OnShareTargetSelectedListener {
- private static final String TAG = "CAM_Activity";
+ private static final String TAG = "CAM_Activity";
private static final String INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE =
"android.media.action.STILL_IMAGE_CAMERA_SECURE";
@@ -1467,7 +1467,6 @@ public class CameraActivity extends Activity
} else {
mSecureCamera = intent.getBooleanExtra(SECURE_CAMERA_EXTRA, false);
}
-
if (mSecureCamera) {
// Change the window flags so that secure camera can show when locked
Window win = getWindow();
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java
index 44f3978f5..541c65704 100644
--- a/src/com/android/camera/CameraSettings.java
+++ b/src/com/android/camera/CameraSettings.java
@@ -982,6 +982,8 @@ public class CameraSettings {
supportedAdvancedFeatures)) {
removePreference(group, chromaFlash.getKey());
}
+ //remove chromaFlash
+ removePreference(group, chromaFlash.getKey());
}
if (sceneMode != null) {
diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java
index c0a545426..af796c6a7 100755..100644
--- a/src/com/android/camera/SettingsManager.java
+++ b/src/com/android/camera/SettingsManager.java
@@ -1397,7 +1397,9 @@ public class SettingsManager implements ListMenu.SettingsListener {
modes.add("" + i);
}
} catch(NullPointerException e) {
+ Log.w(TAG, "Supported instant aec modes is null.");
} catch(IllegalArgumentException e) {
+ Log.w(TAG, "Supported instant aec modes is null.");
}
return modes;
diff --git a/src/com/android/camera/imageprocessor/FrameProcessor.java b/src/com/android/camera/imageprocessor/FrameProcessor.java
index b1b415acd..6b0c97732 100644
--- a/src/com/android/camera/imageprocessor/FrameProcessor.java
+++ b/src/com/android/camera/imageprocessor/FrameProcessor.java
@@ -401,7 +401,11 @@ public class FrameProcessor {
}
} else {
filter.init(mSize.getWidth(), mSize.getHeight(), stride, stride);
- filter.addImage(bY, bVU, 0, new Boolean(true));
+ if (filter instanceof BeautificationFilter) {
+ filter.addImage(bY, bVU, 0, new Boolean(false));
+ } else {
+ filter.addImage(bY, bVU, 0, new Boolean(true));
+ }
needToFeedSurface = true;
}
bY.rewind();
@@ -485,7 +489,11 @@ public class FrameProcessor {
mBY.rewind();
mBVU.rewind();
mFilter.init(mWidth, mHeight, mStride, mStride);
- mFilter.addImage(mBY, mBVU, 0, new Boolean(true));
+ if (mFilter instanceof BeautificationFilter) {
+ mFilter.addImage(mBY, mBVU, 0, new Boolean(false));
+ } else {
+ mFilter.addImage(mBY, mBVU, 0, new Boolean(true));
+ }
mMutureLock.release();
} catch (InterruptedException e) {
}
diff --git a/src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java b/src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java
index 607908ebf..4682e3947 100644
--- a/src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java
+++ b/src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java
@@ -32,8 +32,10 @@ import android.graphics.Rect;
import android.hardware.camera2.CameraAccessException;
import android.hardware.camera2.CameraCaptureSession;
import android.hardware.camera2.CameraCharacteristics;
+import android.hardware.camera2.CameraDevice;
import android.hardware.camera2.CaptureRequest;
import android.hardware.camera2.CaptureResult;
+import android.hardware.camera2.TotalCaptureResult;
import android.os.Handler;
import android.util.Log;
@@ -155,20 +157,33 @@ public class ChromaflashFilter implements ImageFilter{
for (int i = 0; i < NUM_REQUIRED_IMAGE; i++) {
if (i == 0) {
captureSession.capture(builder.build(), callback, handler);
+ waitForImage(i);
} else if (i == 1) { //To change the setting
builder.set(CaptureRequest.CONTROL_AE_LOCK, Boolean.FALSE);
+ builder.set(CaptureRequest.FLASH_MODE,
+ CaptureRequest.FLASH_MODE_SINGLE);
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);
+ builder.set(CaptureRequest.CONTROL_AE_MODE,
+ CaptureRequest.CONTROL_AE_MODE_ON);
+ CaptureRequest.Builder AeTunningBuilder = captureSession.getDevice().
+ createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
+ CaptureRequest request = builder.build();
+ for (CaptureRequest.Key key : request.getKeys()) {
+ AeTunningBuilder.set(key, request.get(key));
+ }
+ AeTunningBuilder.addTarget(mModule.getPreviewSurfaceForSession(
+ mModule.getMainCameraId()));
+
+ waitForAeBlock(AeTunningBuilder,builder,callback,
+ captureSession,handler,5);
} else if (i == 3) {
captureSession.capture(builder.build(), callback, handler);
+ waitForImage(i);
} else if (i == 4) { //To change the setting
builder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF);
+ builder.set(CaptureRequest.CONTROL_AE_LOCK, Boolean.FALSE);
captureSession.capture(builder.build(), callback, handler);
waitForImage(i);
} else if (i == 5) {
@@ -190,6 +205,41 @@ public class ChromaflashFilter implements ImageFilter{
}
}
+ private void waitForAeBlock(final CaptureRequest.Builder tuningBuilder,
+ final CaptureRequest.Builder captureBuilder,
+ final CameraCaptureSession.CaptureCallback callback,
+ final CameraCaptureSession captureSession,
+ final Handler handler, final int AeTunningTime) {
+ try{
+ captureSession.capture(tuningBuilder.build(),
+ new CameraCaptureSession.CaptureCallback() {
+ private boolean mAeStateConverged = false;
+
+ @Override
+ public void onCaptureCompleted(CameraCaptureSession session, CaptureRequest request,
+ TotalCaptureResult result) {
+ Integer aeState = result.get(CaptureResult.CONTROL_AE_STATE);
+ Log.d(TAG,"AE tunning onCaptureCompleted aeState = " + aeState);
+ if (aeState != null && aeState == CaptureResult.CONTROL_AE_STATE_CONVERGED) {
+ mAeStateConverged = true;
+ }
+ Log.d(TAG,"AE tunning completed mAeStateConverged = " + mAeStateConverged);
+ if(!mAeStateConverged && AeTunningTime >= 2) {
+ int resetTime = AeTunningTime - 1;
+ waitForAeBlock(tuningBuilder,captureBuilder,callback,
+ captureSession,handler,resetTime);
+ } else {
+ try{
+ captureSession.capture(captureBuilder.build(),callback,handler);
+ } catch (CameraAccessException e){}
+ }
+ }
+ }, handler);
+ }catch (CameraAccessException e){
+
+ }
+ }
+
public static boolean isSupportedStatic() {
return mIsSupported;
}
diff --git a/src/com/android/camera/ui/Camera2FaceView.java b/src/com/android/camera/ui/Camera2FaceView.java
index 3b6d10541..81be61f81 100755..100644
--- a/src/com/android/camera/ui/Camera2FaceView.java
+++ b/src/com/android/camera/ui/Camera2FaceView.java
@@ -151,7 +151,9 @@ public class Camera2FaceView extends FaceView {
faceBound.offset(-mCameraBound.left, -mCameraBound.top);
mRect.set(faceBound);
translateMatrix.mapRect(mRect);
+ if (LOGV) CameraUtil.dumpRect(mRect, "Original rect");
mMatrix.mapRect(mRect);
+ if (LOGV) CameraUtil.dumpRect(mRect, "Transformed rect");
mPaint.setColor(mColor);
mRect.offset(dx, dy);
diff --git a/src/com/android/camera/util/CameraUtil.java b/src/com/android/camera/util/CameraUtil.java
index 3b0d5e6ac..d6c1956d9 100644
--- a/src/com/android/camera/util/CameraUtil.java
+++ b/src/com/android/camera/util/CameraUtil.java
@@ -526,8 +526,8 @@ public class CameraUtil {
//For < 720p, there is no need to do any capping.
//By capping the panel size, we are indirectly controlling the preview size being
//chosen in getOptimalPreviewSize().
- String uMax = SystemProperties.get("camera.display.umax", "");
- String lMax = SystemProperties.get("camera.display.lmax", "");
+ String uMax = PersistUtil.getDisplayUMax();
+ String lMax = PersistUtil.getDisplayLMax();
if ((uMax.length() > 0) && (lMax.length() > 0)) {
Log.v(TAG,"display uMax "+ uMax + " lMax " + lMax);
String uMaxArr[] = uMax.split("x", 2);