我致力于捕获相机并在屏幕上显示其内容的应用程序。这是在具有HDMI输入和Android 7.1输出的自定义Android设备上。
问题是从外部HDMI输入接收的相机信号到显示输出之间的等待时间约为5帧= 82ms。 (我们可以通过测量IN和OUT HDMI信号的延迟来测量应用中的延迟)。要求是最大程度地减少延迟,对于预期的设备使用情况,5帧太长了。
该应用使用相机API接收视频数据作为纹理,并在OpenGL中将其绘制到屏幕上(可以选择录制捕获的视频,但现在不相关了)。
我了解到数据是通过SurfaceFlinger和Hardware Composer传递的,它们采用了VSYNC和三重缓冲,因此我了解了延迟发生的位置。
但是我想知道是否没有某种方法可以将摄像机预览直接连接到HW作曲家,从而使其绕过应用程序的流程并以最小的延迟出现在输出上。
谢谢