UVC Camera不能正常出图的几种情况

       最近支持客户适配Android工控机上支持多款摄像头,发现其中一款比较特殊,如果同时有3个及以下数量的摄像头同时工作时,可以正常预览、并且获得正常的图像。而当接入4个摄像头的时候,出现异常现象如下:

        1.  全部4个摄像头预览、拍摄画面模糊不清;

        2.  部分画面清晰,其中一两个画模糊不清晰;

       表面看起来和似乎和带宽不足有关,而且kernel中有低概率出现bandwidth异常的信息,联系这种特定的摄像头厂家在更新固件后,这个错误信息不再发生,但是拍摄画面仍然是和上面描述一样的现象。

        接下来分析dmesg分析kernel中的log打印,发现了关键的一条信息

        alloc_contig_range test_pages_isolated(35000, 357e9) failed

        这条信息和CMA(连续物理内存的分配)内存分配有关,而现代的arm架构下,Camera等设备需要依赖CMA,联想到机器本身只有1G内存,而kernel中分配ion_cma为配置之前呗减小过,所以想到应该是CMA不够用导致的画面异常。重新再dts中修改ion_cma的大小,重新测试,4个摄像头全部画面正常。

        总结:

        1. uvc camera拍照异常可能是机器本身带宽不足,需要camera固件配合调整,或者Android平台支持;

        2. 系统CMA或者其他配置为瓶颈,需要调整;



作者:Hemsl
链接:https://www.jianshu.com/p/590afe1253e6
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(音视频)