summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/imageprocessor
diff options
context:
space:
mode:
authorJack Yoo <jyoo@codeaurora.org>2016-09-12 12:48:28 -0700
committerJay Wang <jaywang@codeaurora.org>2016-09-27 15:54:56 -0700
commitc3a465da5ed9ba64512eda37597e96f6ab839fa8 (patch)
treea92a4655021e0be421f02f297f49e063c05b3526 /src/com/android/camera/imageprocessor
parent8f6566e427e0091e95974768596e29220c2f181b (diff)
downloadandroid_packages_apps_Snap-c3a465da5ed9ba64512eda37597e96f6ab839fa8.tar.gz
android_packages_apps_Snap-c3a465da5ed9ba64512eda37597e96f6ab839fa8.tar.bz2
android_packages_apps_Snap-c3a465da5ed9ba64512eda37597e96f6ab839fa8.zip
SnapdragonCamera: Makeup feature
Makeup feature for camera preview and video Change-Id: Ia8cdb629372333c9dceef8aa474402553b7259f0 CRs-Fixed: 1067848
Diffstat (limited to 'src/com/android/camera/imageprocessor')
-rw-r--r--src/com/android/camera/imageprocessor/FrameProcessor.java6
-rw-r--r--src/com/android/camera/imageprocessor/filter/BeautificationFilter.java18
-rw-r--r--src/com/android/camera/imageprocessor/filter/UbifocusFilter.java1
3 files changed, 20 insertions, 5 deletions
diff --git a/src/com/android/camera/imageprocessor/FrameProcessor.java b/src/com/android/camera/imageprocessor/FrameProcessor.java
index 193e8ee17..a2ae18c1c 100644
--- a/src/com/android/camera/imageprocessor/FrameProcessor.java
+++ b/src/com/android/camera/imageprocessor/FrameProcessor.java
@@ -31,6 +31,7 @@ package com.android.camera.imageprocessor;
import android.app.Activity;
import android.graphics.ImageFormat;
+import android.hardware.camera2.CameraCharacteristics;
import android.media.Image;
import android.media.ImageReader;
import android.os.Handler;
@@ -154,7 +155,10 @@ public class FrameProcessor {
mRsRotator.set_width(width);
mRsRotator.set_height(height);
mRsRotator.set_pad(stridePad);
- mRsRotator.set_gFlip(!mModule.isBackCamera());
+ if(mModule.getMainCameraCharacteristics() != null &&
+ mModule.getMainCameraCharacteristics().get(CameraCharacteristics.SENSOR_ORIENTATION) == 270) {
+ mRsRotator.set_gFlip(true);
+ }
mRsYuvToRGB.set_gIn(mProcessAllocation);
mRsYuvToRGB.set_width(height);
mRsYuvToRGB.set_height(width);
diff --git a/src/com/android/camera/imageprocessor/filter/BeautificationFilter.java b/src/com/android/camera/imageprocessor/filter/BeautificationFilter.java
index 77e6ead6e..3f0a10bbf 100644
--- a/src/com/android/camera/imageprocessor/filter/BeautificationFilter.java
+++ b/src/com/android/camera/imageprocessor/filter/BeautificationFilter.java
@@ -33,12 +33,15 @@ import android.hardware.Camera;
import android.hardware.camera2.CameraCaptureSession;
import android.hardware.camera2.CaptureRequest;
import android.hardware.camera2.params.Face;
+import android.media.audiofx.BassBoost;
import android.os.Handler;
import android.util.Log;
import android.util.Size;
import com.android.camera.CaptureModule;
+import com.android.camera.SettingsManager;
import com.android.camera.ui.FilmstripBottomControls;
+import com.android.camera.ui.ListMenu;
import java.nio.ByteBuffer;
import java.util.List;
@@ -53,9 +56,15 @@ public class BeautificationFilter implements ImageFilter {
private static boolean DEBUG = false;
private static String TAG = "BeautificationFilter";
private static boolean mIsSupported = false;
+ private int mStrengthValue = 0;
public BeautificationFilter(CaptureModule module) {
mModule = module;
+ String value = SettingsManager.getInstance().getValue(SettingsManager.KEY_MAKEUP);
+ try {
+ mStrengthValue = Integer.parseInt(value);
+ } catch(Exception e) {
+ }
}
@Override
@@ -97,12 +106,13 @@ public class BeautificationFilter implements ImageFilter {
}
float widthRatio = (float)mWidth/back.width();
float heightRatio = (float)mHeight/back.height();
- if(faces == null || faces.length == 0)
+ if(faces == null || faces.length == 0) {
return;
+ }
Rect rect = faces[0].getBounds();
int value = nativeBeautificationProcess(bY, bVU, mWidth, mHeight, mStrideY,
(int)(rect.left*widthRatio), (int)(rect.top*heightRatio),
- (int)(rect.right*widthRatio), (int)(rect.bottom*heightRatio));
+ (int)(rect.right*widthRatio), (int)(rect.bottom*heightRatio), mStrengthValue, mStrengthValue);
if(DEBUG && value < 0) {
if(value == -1) {
Log.d(TAG, "library initialization is failed.");
@@ -143,11 +153,11 @@ public class BeautificationFilter implements ImageFilter {
}
private native int nativeBeautificationProcess(ByteBuffer yB, ByteBuffer vuB,
- int width, int height, int stride, int fleft, int ftop, int fright, int fbottom);
+ int width, int height, int stride, int fleft, int ftop, int fright, int fbottom, int whiteLevel, int cleanLevel);
static {
try {
- System.loadLibrary("jni_makeup");
+ System.loadLibrary("jni_makeupV2");
mIsSupported = true;
}catch(UnsatisfiedLinkError e) {
mIsSupported = false;
diff --git a/src/com/android/camera/imageprocessor/filter/UbifocusFilter.java b/src/com/android/camera/imageprocessor/filter/UbifocusFilter.java
index 37ee1dc27..a4e0f8e1e 100644
--- a/src/com/android/camera/imageprocessor/filter/UbifocusFilter.java
+++ b/src/com/android/camera/imageprocessor/filter/UbifocusFilter.java
@@ -215,6 +215,7 @@ public class UbifocusFilter implements ImageFilter {
} while(Math.abs(mModule.getPreviewCaptureResult().get(CaptureResult.LENS_FOCUS_DISTANCE)
- value) >= 0.5f);
} catch (InterruptedException e) {
+ } catch (NullPointerException e) {
}
builder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_OFF);
builder.set(CaptureRequest.LENS_FOCUS_DISTANCE, value);