8. p.setPreviewFormat(\); 9. break; 10. } 11.
12. 其中mSecCamera->getPreviewDefaultPixelFormat()在
13. vendor\\sec\\sec_proprietary\\smdkc110\\libcamera\\SecCamera.cpp中实现, 14. int SecCamera::getPreviewDefaultPixelFormat(void) 15. {
16. return DEFAULT_PREVIEW_PIXEL_FORMAT; 17. }
18. 在android/device/samsung/proprietary/libcamera/SecCamera.h中设定初始值。我们这
里设的是
19. #ifdef DUAL_PORT_RECORDING
20. #define DEFAULT_PREVIEW_PIXEL_FORMAT (V4L2_PIX_FMT_NV21) 21. #else
22. #define DEFAULT_PREVIEW_PIXEL_FORMAT (V4L2_PIX_FMT_NV12T) 23. #endif
以上得出视频格式为V4L2_PIX_FMT_NV21。 2、图像干扰问题,如下图所示
原因可能是:
(1)、摄像头模组有问题,换一个摄像头试一下;
(2)、数据线驱动能力不足,这个可以在摄像头寄存器里面改,问下摄像头模组FAE,看改那些地方;
(3)、两个摄像头共用数据线时,不工作的摄像头会把工作的数据信号减弱;
(4)、PCB 走线太长,也会有干扰,不过我觉得这个可能性小,调试好就一款这样的的,模组厂FAE说的,不过他们模组本身也有问题,两方面因素都有吧:PCB(线过长)、模组打样也有问题。 3、YUV顺序不对:
yuv顺序不对时,出现如下现象。
看下摄像头规格书,把相应寄存器的值改一下就可以了。如下以红框里是不同yuv顺序,找到改为相应的。
4、预览方向不对(摄像头寄存器只能改以 180度为基数的,90度的就要在FIMC中改) 想知道和比较明确说明翻转角度,最常用的就是写一个“F”,然后看预览里的是怎么转的。
上面有90度的翻转,因为这是FIMC中的寄存器,一般不会改这一部分的值。要不就在模组寄存器中改,要不就在上层。上面只是说明如何去确认图像翻转。 看下GT2005关于翻转的寄存器吧:
5、杂光,鬼影:
其行业的专业术语统称为Flare,是指在拍摄光源或者强光物体时,边缘出现光影或出现一个完整物体的影子,而且这种现象只能减轻不能完全消失,原因是由于镜片的材质导致光线不但存在折射还存在反射,整机由于镜头面到保护镜片距离很大会更明显!
6、常见问题相关
摄像头效果评测都有哪些?
以上以gt2005为例,说了一下摄像头驱动,和驱动中常见到的问题,如果上面的问题解决,摄像头点亮,说明在平台是运行是没问题的,小的问题和细节,要找模组厂的FAE过来协助解决,不过你想多研究一下的话,也可以,如果项目允许,就多看看,做到调试一个驱动,所有问题都了解,这样对工作经验、积累很重要的,希望对大家有用。