java-了解并加快addCallbackBuffer

java-了解并加快addCallbackBuffer,第1张

概述我想了解传递给addCallbackBuffer的预览缓冲区与通过onPreviewFrame传递的byte[]数组之间的关系,该数组提示以下相关问题.Q1.我猜想在addCallbackBuffer中传递的缓冲区用于存储新的相机帧,并且在调用onPreviewFrame之前,该缓冲区被复制到通过onPreviewFrame传递的数据缓冲区中.如

我想了解传递给addCallbackBuffer的预览缓冲区与通过onPrevIEwFrame传递的byte []数组之间的关系,该数组提示以下相关问题.

Q1.我猜想在addCallbackBuffer中传递的缓冲区用于存储新的相机帧,并且在调用onPrevIEwFrame之前,该缓冲区被复制到通过onPrevIEwFrame传递的数据缓冲区中.如果是这样,那意味着我可以在输入onPrevIEwFrame后立即调用addCallbackBuffer来重用预览帧缓冲区,并在处理完onPrevIEwFrame返回的缓冲区后在函数末尾进行注释.那是对的吗?

Q2.我也不清楚使用两个预览帧缓冲区的机制.假设我在初始化期间添加了两个私有byte []预览缓冲区,如下所示:

addCallbackBuffer(mPrevIEwBuffer1);addCallbackBuffer(mPrevIEwBuffer2);

我在onPrevIEwFrame中时如何知道使用了哪个预览缓冲区,以便可以再次使用addCallbackBuffer重新添加正确的预览帧缓冲区?

private byte[] mPrevIEwBuffer1;private byte[] mPrevIEwBuffer1;...public voID onPrevIEwFrame(byte[] camera, Camera c) {  ...  // how do I decIDe which buffer to re-add?  //c.addCallbackBuffer(mPrevIEwBuffer1);  //c.addCallbackBuffer(mPrevIEwBuffer2);  ...}

Q3.我是否正确理解另一个线程负责获取帧缓冲区,即只要预览缓冲区在队列中,我们就会在执行onPrevIEwFrame时捕获帧?如果不是这种情况,拥有两个回调缓冲区将无助于提高速度,对吗?

解决方法:

Q1是的,如果您不关心缓冲区的内容,可以尽早将其返回相机.调用addCallbackBuffer()后,可能无法从该缓冲区读取数据,或者也许可以读取,但是像素数据将是错误的.

第二季度,您可以简单地将回叫中收到的缓冲区(即

@OverrIDe public voID onPrevIEwFrame(byte[] data, Camera camera) {  …  camera.addCallbackBuffer(data);}

在这种情况下,您不必关心data == mPrevIEwBuffer1还是data == mPrevIEwBuffer2.但是以下代码也可以:

private byte[][] mPrevIEBuffers = new byte[4][];@OverrIDe public voID onPrevIEwFrame(byte[] data, Camera camera) {  for (int i=0; i<mPrevIEwBuffers.length; i++) {    if (data == mPrevIEwBuffers[i]) {       processData(i);    }  }}

第三季度正确,onPrevIEwFrame()与填充其他缓冲区并行执行,但是所有onPrevIEwFrame()回调均在同一线程上调用.如果要处理尽可能多的预览帧,则应a)将处理委派给工作线程(尤其是在多核设备上).请注意,您可以从其他线程安全地调用addCallbackBuffer(). b)start the camera on a separate Looper使onPrevIEwFrame()与UI线程解耦.

总结

以上是内存溢出为你收集整理的java-了解并加快addCallbackBuffer全部内容,希望文章能够帮你解决java-了解并加快addCallbackBuffer所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1089927.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存