人脸 SDK 安全收尾与相机帧防护实施计划

目标:避免取消、超时或重开时与百度人脸 SDK 原生任务重叠,拦截异常相机帧,并对暗光能力执行可恢复降级。

架构

识别全链路收敛到一个专用串行执行器。会话结束时立即停止相机和新帧,新会话使用最长 1 秒的非阻塞排空屏障等待 SDK 空闲。相机边界明确使用 NV21 并校验帧尺寸;暗光模型失败时降级为原图识别。

任务

  1. 新增可测试的 IDLE/RUNNING/DRAINING SDK 排空状态机。
  2. track → detect → live → feature → search 收敛到同一单线程执行器,并在 finally 释放门闩。
  3. 会话取消、超时和销毁时立即停相机;新会话非阻塞等待最多 1000ms。
  4. Camera1 明确设置 NV21,进入 native 前校验宽高、偶数性和帧长度。
  5. 暗光模型独立记录可用性;失败时跳过暗光增强,不阻断基础识别。
  6. 运行定向单测、完整单测和 Debug 构建,配对写入变更记录。

验收

执行状态:代码、单测、Debug APK 构建、覆盖安装和两次真机识别冒烟已完成;快速开关 50 次、超时重开 30 次和 USB 相机重枚举压力验收待执行。

本计划不执行 Git 提交。