This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Android下AM3715如何对ov3640摄像头采集的YUV422的数据进行预览

Other Parts Discussed in Thread: AM3715

TI技术支持:

您好。我们用AM3715在Android下驱动摄像头ov3640.我们选用的摄像头模组支持YUV422这种预览格式,但是Android源码中默认支持的却是YUV422sp这种我们的摄像头不支持的格式。请问类似的矛盾咱TI有处理方吗?

  • 最好能配置下sensor,如果修改Android的配置,有点麻烦

  • 我们现在可以用AM3715在Android下打开自带的照相机程序进行预览了。可是新的问题出现了。照相机拍照的功能可用,但是视频拍摄功能却无法使用,点击拍摄液晶屏上就有几道黑白条纹狂闪,根本无法正常录制视频,不知为何。还得继续努力撒。不过还是谢谢你的建议了。

  • 你录的是什么分辨率的,AM37是软的编码器,效率很低的

  • 我不知道在那个文件里可以设置分辨率,我现在在camerahardware.cpp这个文件里发现预览时像素是1280*960.请问是这个的缘故吗?问过开发板的厂家,回答是“camera驱动目前不支持352x288这种分辨率”。我不明白,Android系统非得要求352x288才能预览吗?为什么非得是352x288?我们的摄像头现在可以在640*480到2056*1024之间正常预览和拍照,但是点击录像后液晶显示黑白亮纹。

  • 你好,我现在也是在am3715下实现ov3640摄像头功能,

    摄像头输出的格式为yuv422,预览屏幕全绿,但能看到影像,能帮忙分析下是那个地方的格式不匹配么?

  • 1.你用的驱动是TI源码中的ov3640.c吗?是的话那么TI认为这个颗摄像头不具有SOC,所以你能需要am3715的ISP。如果你想要摄像头自己处理一些问题,那么这个ov3640.c中有个宏定义貌似需要修改,在文件的头部。

    2.你的ov3640的寄存器参数是ov提供的么?用ov提供的参数。

    我给你一个建议。简化v4l2的流程,例如查询摄像头能力什么的都可以先不用。就直接出预览,然后把ov提供的参数给配置进去。

    现在我觉得是摄像头工作模式不对的缘故,或者你的摄像头寄存器没配置对。应该与所谓的yuv什么的格式没啥关系的。

  • Jason,

    你好,我现在预览已经正常了,主要是isp需要调整,默认的是isp连接tvp514x的,数据是10位,而现在我们的架构没有tvp,camera直接连到isp的,用的是8位数据线,把这个地方调整后就可以正常预览了.

    我这边是在linux下调试的,测试程序也是用的ti提供的做了修改,用通用的linux下的camera测试程序不能使用.

    我想问下,你用的android版本 kernel用的是哪个版本? 我的是2.6.37,似乎2.6.32还是标准接口,之后接口就变了

  • 很高兴你的问题解决了,呵呵。

    我的内核是linux2.6.32,我没用过2.6.37.

    我现在android版本是2.3

  • 你好,我提个问题  :   

    我用的是DM3730(佐臻)  android系统,OV5640无法录像。具体表现在我开始设置OV5640的分辨率为640*480输出,格式为UYVY输出,我把

    v4l2CAMERA。cpp  和CAMERAHARDWARE。CPP中宏定义分辨率 都设置为 640*480输出,照相软件能够照相 预览,录像功能也能预览,但点击录像按钮后就报告软件错误(录制的为3GP文件,但没录制成功,打不开),软件就不能用,必须重启

    。 后来我 参考  兄弟的帖子,把 OV5640的分辨率和v4l2CAMERA。cpp  和CAMERAHARDWARE。CPP中宏定义分辨率 都设置为 352*288,出现问题同上。      

         我又做了改动,把OV5640的驱动输出格式设置为YUYV输出(v4l2CAMERA。cpp  和CAMERAHARDWARE。CPP中宏定义也设置为YUYV格式),分辨率 都设置为 352*288,这样照相   录像 有问题,他们都是有点图像,但是像YUYV这格式反了是的,都是模糊图像,但此时录像的3gp文件是正确的,虽然录像的预览也是模糊的。

    现在就是这个流程录像 要求YUYV   ,预览和照相要uyvy格式,我改一个另一个有问题,我改   (v4l2CAMERA。cpp  和CAMERAHARDWARE。CPP中宏定义也设置为YUYV格式 也不好用,请问大家有遇到吗。 还有什么地方能叫系统知道我的5640是YUYV 或者UYVY输出啊。

  • 我以前用的是Ti的android2.2系统,那个时候我看到camerahardware.cpp中录像的话只能是352*288,现在是TI的android2.3,看着代码里貌似支持640*480录像了。但这些都是题外话,我也没验证呢。还是说说你的问题。

    你在sensor输出为UYVY时,照相和录像的预览都是没问题的,但是录像时就会报软件错误,但是不知道具体错误信息是什么。你可以在串口终端输入logcat看到具体的调试信息。

    现在将sensor输出改为YUYV后,照相和录像预览出现了问题,但是录像却不会报软件错误了,所以我猜测,对系统来说,应该还是识别YUYV的,你需要将你的sensor输出格式改成YUYV模式。

    我给你的建议是:除了分辨率,尽量不要调整android层的东西,要让自己的驱动尽量去适应android系统,因为我们无法预知自己单纯修改hardware层是否会对上层产生何种影响,例如,是否会报软件错误.

    祝你好运.