package com.basic.security.manager; import com.basic.security.utils.DetectedResult; import java.util.LinkedList; public class DetectResultManager { public static DetectedResult detectedResult; public static long lastTimeSetDetectResult; static LinkedList detectedResultLinkedList = new LinkedList<>(); public static boolean needSetDetectResultByTimeout() { if (System.currentTimeMillis() - lastTimeSetDetectResult > 500) { return true; } return false; } public static boolean needSetDetectResultByScoreHigher(DetectedResult oldDetectedResult, DetectedResult newDetectedResult) { try { if (oldDetectedResult != null && oldDetectedResult.facePositions.size() == newDetectedResult.facePositions.size() && oldDetectedResult.facePositions.size() == 1) { for (int i = 0; i < oldDetectedResult.facePositions.size(); i++) { if (oldDetectedResult.facePositions.get(i).detectScore < newDetectedResult.facePositions.get(i).detectScore) { return true; } } } else { return true; } } catch (Exception e) { e.printStackTrace(); return true; } return false; } public static void setDetectResult(DetectedResult detectedResult) { try { DetectResultManager.detectedResult = detectedResult; lastTimeSetDetectResult = System.currentTimeMillis(); synchronized (RecognizeManager.recongizeObjectLock) { // System1.out.println("DetectResultManager.setDetectResult"); RecognizeManager.detectedResultQueue.add("1"); RecognizeManager.recongizeObjectLock.notify(); } } catch (Exception e) { e.printStackTrace(); } } public static DetectedResult getDetectResultFromCache(byte[] nv21Array) { DetectedResult detectedResult = new DetectedResult(); detectedResult.nv21Array = ByteArrayManager.newBytes(nv21Array.length); //memory System.arraycopy(nv21Array, 0, detectedResult.nv21Array, 0, nv21Array.length); // detectedResult.nv21Array = nv21Array; return detectedResult; } }