![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
camera linux v4l2相关接口
camera 驱动实现,以及结构
老让说camera
这个作者很懒,什么都没留下…
展开
-
camera_kernel之---videobuffer的入队与出队(5)
1.继续上节,申请完并mmap完内存后,就需要把当前buf入队,qbuf函数调用流程如下v4l_qbuf-- >vb2_ioctl_qbuf-- >vb2_qbuf-- >vb2_internal_qbuf-- >vb2_core_qbufint vb2_core_qbuf(struct vb2_queue *q, unsigned int index, void *pb){…… vb = q->bufs[index];//获取当前buf switch (vb-&g原创 2020-08-09 22:52:01 · 1362 阅读 · 0 评论 -
camera_kernel之---videobuffer的申请与map(4)
对于camera 模块除了逻辑之外,我关注的点就内存的使用,后续还会写些内存相关的部分。这里只探讨如何申请buffer。当前buffer申请分为enum v4l2_memory {V4L2_MEMORY_MMAP = 1,V4L2_MEMORY_USERPTR = 2,V4L2_MEMORY_OVERLAY = 3,V4L2_MEMORY_DMABUF = 4,};mmap是下面详细要讲的。OVERLAY这种方式原创 2020-08-08 23:47:09 · 1601 阅读 · 0 评论 -
camera_kernel之---media子系统(3)
在rk 9.0之前还没有实现这个子系统,为了解决多媒体设备的复杂性和流动性,我的理解是把多媒体各个模块树状链接,可以很方便的操作各个链接点的格式分辨率等。但是这样需要代码来支持,所以就有media子系统,虽然增加了大段代码,但是这样操作更加灵活。由于media子系统在网上很多,这里只做简单讲述,后面自己看看代码。Media子系统是一种pipeline形式Rk从sensor到ddr设定了4个设备如下sensor —> DPHY —> isp —> stream其中每个设备都认为是原创 2020-08-08 18:10:54 · 2437 阅读 · 2 评论 -
camera_kernel之---videobuf2简单介绍(2)
videobuf2是嵌入到v4l2子系统,以供驱动与用户空间提供数据申请与交互的接口集合,它实现了包括buffer分配,根据状态可以入队出队的控制流。文件目录kernel/drivers/media/v4l2-core 相关videobuf2相关文件如下,videobuf相关的文件可以不关心,只讨论videobuf2├── videobuf2-core.c├── videobuf2-dma-contig.c├── videobuf2-dma-sg.c├── videobuf2-dvb.c├──原创 2020-08-08 16:16:25 · 2111 阅读 · 0 评论 -
camera_kernel之---v4l2简单介绍(1)
V4l2接触的最早,网上也有很多资料,本来不想拿出来介绍。但是作为一个整体资料,还是简单写下。V4l2作为视频设备的内核驱动,为linux视频设备提供接口,内部包含了videobuf的相关操作接口,后续会单独写文档。先看目录文件kernel/drivers/media/v4l2-core├── v4l2-async.c├── v4l2-clk.c├── v4l2-common.c├── v4l2-compat-ioctl32.c├── v4l2-ctrls.c├── v4l2-dev.c├─原创 2020-08-07 22:21:40 · 2333 阅读 · 0 评论