Android CameraServer 答疑4:Request返回顺序问题
2026/7/22 15:41:48 网站建设 项目流程

问题: HAL 返回结果是按 Request 顺序返回的吗?还是可以乱序?

结论: 可以乱序返回,但有约束条件。

HAL 通过两个回调返回结果:notify()(Shutter 事件)和processCaptureResult()(Metadata + Image Data)。它们的乱序规则如下:

1. Shutter 顺序(notify 回调)
  • 同一个 Request 内的多次 notify 不保证顺序
  • 不同 Request 之间的 notify 必须严格按 Request 顺序返回— Request N 的 shutter 必须在 Request N+1 的 shutter 之前到达
  • 代码强制校验:Camera3OutputUtils.cpp:1202-1233notifyShutter()对帧号做递增检查,乱序直接SET_ERR导致设备进入 ERROR 状态
// Camera3OutputUtils.cpp:1225-1232if(msg.frame_number<states.nextShutterFrameNum){SET_ERR(CAMERA_HAL_CALLBACK_ERROR,"Shutter notification out-of-order. Expected ""notification for frame %d, got frame %d",states.nextShutterFrameNum,msg.frame_number);return;}states.nextShutterFrameNum=msg.frame_number+1;

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询