Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在openles 2.0中渲染摄影机并强制延迟_Android_Android Camera_Opengl Es 2.0_Render - Fatal编程技术网

Android 在openles 2.0中渲染摄影机并强制延迟

Android 在openles 2.0中渲染摄影机并强制延迟,android,android-camera,opengl-es-2.0,render,Android,Android Camera,Opengl Es 2.0,Render,是否可以在OpenLES2.0中强制延迟渲染摄影机?例如,延迟是5帧?目前,我正在使用surfacetexture和opengles-2.0渲染输出。如果每秒接收30帧,并且希望引入5帧的恒定延迟,则需要对这5帧进行处理 SurfaceTexture不做(很多)缓冲。由于生产者和消费者端点处于同一进程中,因此很容易通过溢出消费者而导致死锁。因此,SurfaceTexture在“异步”模式下使用缓冲队列,这意味着如果使用者还没有准备好下一个帧,它将丢弃帧 因此,您需要一种自己进行缓冲的方法,这意味

是否可以在OpenLES2.0中强制延迟渲染摄影机?例如,延迟是5帧?目前,我正在使用surfacetexture和opengles-2.0渲染输出。

如果每秒接收30帧,并且希望引入5帧的恒定延迟,则需要对这5帧进行处理

SurfaceTexture不做(很多)缓冲。由于生产者和消费者端点处于同一进程中,因此很容易通过溢出消费者而导致死锁。因此,SurfaceTexture在“异步”模式下使用缓冲队列,这意味着如果使用者还没有准备好下一个帧,它将丢弃帧

因此,您需要一种自己进行缓冲的方法,这意味着将数据从“外部”纹理中复制出来。一种方法是将纹理渲染到一系列FBO,稍后可以从这些FBO进行渲染。请务必注意此处的内存使用情况——1920x1080 32位ARGB映像占用约8MB的内存,因此保持5位左右会增加40MB的内存占用

可能会导致颜色保真度的损失,因为将涉及YUV到RGB的转换,但如果最终目标是RGB,则这不重要


所以这是可能的,但并不容易。您想实现什么?

我正在尝试将渲染延迟调整为AR库的延迟(它在固定延迟下工作)