summaryrefslogtreecommitdiffstats
path: root/core/java/android/hardware/camera2/impl/CameraMetadataNative.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/hardware/camera2/impl/CameraMetadataNative.java')
-rw-r--r--core/java/android/hardware/camera2/impl/CameraMetadataNative.java24
1 files changed, 17 insertions, 7 deletions
diff --git a/core/java/android/hardware/camera2/impl/CameraMetadataNative.java b/core/java/android/hardware/camera2/impl/CameraMetadataNative.java
index e42bdf5..072c5bb 100644
--- a/core/java/android/hardware/camera2/impl/CameraMetadataNative.java
+++ b/core/java/android/hardware/camera2/impl/CameraMetadataNative.java
@@ -518,21 +518,31 @@ public class CameraMetadataNative extends CameraMetadata implements Parcelable {
}
}
- Face[] faces = new Face[numFaces];
+ ArrayList<Face> faceList = new ArrayList<Face>();
if (faceDetectMode == CaptureResult.STATISTICS_FACE_DETECT_MODE_SIMPLE) {
for (int i = 0; i < numFaces; i++) {
- faces[i] = new Face(faceRectangles[i], faceScores[i]);
+ if (faceScores[i] <= Face.SCORE_MAX &&
+ faceScores[i] >= Face.SCORE_MIN) {
+ faceList.add(new Face(faceRectangles[i], faceScores[i]));
+ }
}
} else {
// CaptureResult.STATISTICS_FACE_DETECT_MODE_FULL
for (int i = 0; i < numFaces; i++) {
- Point leftEye = new Point(faceLandmarks[i*6], faceLandmarks[i*6+1]);
- Point rightEye = new Point(faceLandmarks[i*6+2], faceLandmarks[i*6+3]);
- Point mouth = new Point(faceLandmarks[i*6+4], faceLandmarks[i*6+5]);
- faces[i] = new Face(faceRectangles[i], faceScores[i], faceIds[i],
- leftEye, rightEye, mouth);
+ if (faceScores[i] <= Face.SCORE_MAX &&
+ faceScores[i] >= Face.SCORE_MIN &&
+ faceIds[i] >= 0) {
+ Point leftEye = new Point(faceLandmarks[i*6], faceLandmarks[i*6+1]);
+ Point rightEye = new Point(faceLandmarks[i*6+2], faceLandmarks[i*6+3]);
+ Point mouth = new Point(faceLandmarks[i*6+4], faceLandmarks[i*6+5]);
+ Face face = new Face(faceRectangles[i], faceScores[i], faceIds[i],
+ leftEye, rightEye, mouth);
+ faceList.add(face);
+ }
}
}
+ Face[] faces = new Face[faceList.size()];
+ faceList.toArray(faces);
return faces;
}