summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/VideoModule.java
diff options
context:
space:
mode:
authorJay Wang <jaywang@codeaurora.org>2016-02-25 14:23:02 -0800
committerCamera Software Integration <camswint@localhost>2016-03-02 18:41:20 -0700
commit7252fd0c4d3597a51d51f2e0bb554f0406628fb6 (patch)
tree7571e3bd9a819a0557f5c9ae69b20d99218d2df4 /src/com/android/camera/VideoModule.java
parent39abf394c32f731ebaa8d1dcac25cdefea91a248 (diff)
downloadandroid_packages_apps_Snap-7252fd0c4d3597a51d51f2e0bb554f0406628fb6.tar.gz
android_packages_apps_Snap-7252fd0c4d3597a51d51f2e0bb554f0406628fb6.tar.bz2
android_packages_apps_Snap-7252fd0c4d3597a51d51f2e0bb554f0406628fb6.zip
SnapdragonCamera: Add face detection icon to video
Add video face detection to developer option CRs-Fixed: 978207 Change-Id: I9308573a5a1004fc3803a955bc96f495ecbfc6c7
Diffstat (limited to 'src/com/android/camera/VideoModule.java')
-rw-r--r--src/com/android/camera/VideoModule.java52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java
index 64cb814e9..5efe02ace 100644
--- a/src/com/android/camera/VideoModule.java
+++ b/src/com/android/camera/VideoModule.java
@@ -209,6 +209,9 @@ public class VideoModule implements CameraModule,
private boolean mIsMute = false;
private boolean mWasMute = false;
+ private boolean mFaceDetectionEnabled = false;
+ private boolean mFaceDetectionStarted = false;
+
private final MediaSaveService.OnMediaSavedListener mOnVideoSavedListener =
new MediaSaveService.OnMediaSavedListener() {
@Override
@@ -1190,6 +1193,7 @@ public class VideoModule implements CameraModule,
private void onPreviewStarted() {
mUI.enableShutter(true);
+ startFaceDetection();
}
@Override
@@ -1204,6 +1208,7 @@ public class VideoModule implements CameraModule,
mPreviewing = false;
mStopPrevPending = false;
mUI.enableShutter(false);
+ stopFaceDetection();
}
private void closeCamera() {
@@ -1214,11 +1219,13 @@ public class VideoModule implements CameraModule,
}
mCameraDevice.setZoomChangeListener(null);
mCameraDevice.setErrorCallback(null);
+ mCameraDevice.setFaceDetectionCallback(null, null);
CameraHolder.instance().release();
mCameraDevice = null;
mPreviewing = false;
mSnapshotInProgress = false;
mPreviewFocused = false;
+ mFaceDetectionStarted = false;
}
private void releasePreviewResources() {
@@ -2475,6 +2482,23 @@ public class VideoModule implements CameraModule,
//set power mode settings
updatePowerMode();
+
+ // Set face detetction parameter.
+ String faceDetection = mPreferences.getString(
+ CameraSettings.KEY_FACE_DETECTION,
+ mActivity.getString(R.string.pref_camera_facedetection_default));
+
+ if (CameraUtil.isSupported(faceDetection, mParameters.getSupportedFaceDetectionModes())) {
+ Log.d(TAG, "setFaceDetectionMode "+faceDetection);
+ mParameters.setFaceDetectionMode(faceDetection);
+ if(faceDetection.equals("on") && mFaceDetectionEnabled == false) {
+ mFaceDetectionEnabled = true;
+ startFaceDetection();
+ } else if(faceDetection.equals("off") && mFaceDetectionEnabled == true) {
+ stopFaceDetection();
+ mFaceDetectionEnabled = false;
+ }
+ }
}
@SuppressWarnings("deprecation")
@@ -2926,4 +2950,32 @@ public class VideoModule implements CameraModule,
}
}
+
+ public void startFaceDetection() {
+ if (mCameraDevice == null) return;
+
+ if (mFaceDetectionEnabled == false
+ || mFaceDetectionStarted) return;
+ if (mParameters.getMaxNumDetectedFaces() > 0) {
+ mFaceDetectionStarted = true;
+ CameraInfo info = CameraHolder.instance().getCameraInfo()[mCameraId];
+ mUI.onStartFaceDetection(mCameraDisplayOrientation,
+ (info.facing == CameraInfo.CAMERA_FACING_FRONT));
+ mCameraDevice.setFaceDetectionCallback(mHandler, mUI);
+ Log.d(TAG, "start face detection Video "+mParameters.getMaxNumDetectedFaces());
+ mCameraDevice.startFaceDetection();
+ }
+ }
+
+ public void stopFaceDetection() {
+ Log.d(TAG, "stop face detection");
+ if (mFaceDetectionEnabled == false || !mFaceDetectionStarted) return;
+ if (mParameters.getMaxNumDetectedFaces() > 0) {
+ mFaceDetectionStarted = false;
+ mCameraDevice.setFaceDetectionCallback(null, null);
+ mUI.pauseFaceDetection();
+ mCameraDevice.stopFaceDetection();
+ mUI.onStopFaceDetection();
+ }
+ }
}