diff options
author | Jay Wang <jaywang@codeaurora.org> | 2016-02-25 14:23:02 -0800 |
---|---|---|
committer | Camera Software Integration <camswint@localhost> | 2016-03-02 18:41:20 -0700 |
commit | 7252fd0c4d3597a51d51f2e0bb554f0406628fb6 (patch) | |
tree | 7571e3bd9a819a0557f5c9ae69b20d99218d2df4 /src/com/android/camera/VideoModule.java | |
parent | 39abf394c32f731ebaa8d1dcac25cdefea91a248 (diff) | |
download | android_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.java | 52 |
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(); + } + } } |