想总结下camera整个数据流及中间的数据转换到显示,先大概梳理下整体思路,以后具体分析下。
1、UVC的对于android来说,必须把底层的v4l2打开,然后添加jni层,上层才能调用;
2、高通、MTK等平台camera,amera是mipi或者其他接口协议的数据,这是我要分析的重点!!!
3、关于camera ISP(image single processor)的概念,平台不带isp的,camera模组本身一定要带;
4、单个摄像头如何做到capture video 不漏秒?两种流程应该需要分开来处理。
要解决这个问题,必须非常熟悉这两个流程。usb camera就是要把v4l2玩好。
网上总结的基本流程,非常清晰:
1.打开设备文件。 int fd=open(”/dev/video0″,O_RDWR);
2.取得设备的capability,看看设备具有什么功能,比如是否具有视频输入,或者音频输入输出等。VIDIOC_QUERYCAP,struct v4l2_capability;
3.设置视频的制式和帧格式,制式包括PAL,NTSC,帧的格式包括宽度和高度等。VIDIOC_S_STD,VIDIOC_S_FMT,struct v4l2_std_id,struct v4l2_format;
4.向驱动申请帧缓冲,一般不超过5个。struct v4l2_requestbuffers&#