java-onPreviewFrame返回偏斜的YUV数据

java-onPreviewFrame返回偏斜的YUV数据,第1张

概述好吧,我快要死了.我正在编写一个droid应用,该应用接收预览数据,对其进行处理,然后将更改后的数据显示在屏幕上.到目前为止一切顺利-除了经过一段时间的不确定性(通常是一两分钟)之后,onPreviewFrame回调期间输入的YUV数据…水平地滚动了.我将原始的yuv捕获到了SD卡中:[看起来我还不

好吧,我快要死了.我正在编写一个droID应用,该应用接收预览数据,对其进行处理,然后将更改后的数据显示在屏幕上.到目前为止一切顺利-除了经过一段时间的不确定性(通常是一两分钟)之后,onPrevIEwFrame回调期间输入的YUV数据…水平地滚动了.我将原始的yuv捕获到了SD卡中:

[看起来我还不能在这里发布图片,所以这里的网址是:raw yuv capture]

这是我的第一个droID应用,但是我花了很多时间来开发各种桌面视频软件.当我看到这时,我立即想到的是我遇到了线程同步问题,并且由于这个原因,缓冲区以某种奇怪的方式被覆盖.

我的代码最初确实使用了工作线程.因此,为了消除该问题与线程有关的可能性,我取出了工作线程并将所有内容放入onPrevIEwFrame中.同样,同样的问题:YUV数据偏斜.

然后,我进行了一次谷歌搜索,发现onPrevIEwFrame内部的大量处理可能导致随机怪异.为了避免这种情况,我将回调更改为Oneshot变量,这导致了我现在使用的代码:

public voID surfaceCreated(SurfaceHolder holder) {    Log.i(TAG, "surfaceCreated");    mCamera = Camera.open();    mCamera.setoneshotPrevIEwCallback(new PrevIEwCallback() {        public voID onPrevIEwFrame(byte[] data, Camera camera) {            Canvas canvas = mHolder.lockCanvas();            try            {                             Bitmap bmp = processFrame(data);                if (bmp != null) {                    if (canvas != null) {                        canvas.drawBitmap(bmp, (canvas.getWIDth() - getFrameWIDth()) / 2, (canvas.getHeight() - getFrameHeight()) / 2, null);                                               }                    bmp.recycle();                }            }            catch(Exception e)            {                e.printstacktrace();            }            finally            {                mHolder.unlockCanvasAndPost(canvas);                mCamera.setoneshotPrevIEwCallback(this);            }        }    });}

不幸的是,我仍然得到歪曲的yuv数据.

我的测试设备是HTC EVO 4G.我知道这部手机有问题,但我仍谨慎地将其归咎于硬件错误,主要是因为我几乎可以肯定这是由于程序员错误引起的.问题是,我已经将代码精简了,问题仍然很明显.

有人遇到过吗?

解决方法:

好吧,看来这是HTC手机的问题. This是我遇到的确切问题.他们说是Over here,这是由于后摄像头镜头松动引起的,解决方案是用拇指用力将其推入几秒钟以使其复位.

毕竟不是软件问题.

总结

以上是内存溢出为你收集整理的java-onPreviewFrame返回偏斜的YUV数据全部内容,希望文章能够帮你解决java-onPreviewFrame返回偏斜的YUV数据所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/web/1070645.html

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

发表评论

登录后才能评论

评论列表(0条)

保存