mplane格式的v4l2应用分析
基于rv1126 分析mplane格式的v4l2应用
dianlong_lee
普通造bug码农一枚。。。
展开
-
mplane方式v4l2应用分析 -- 完整代码
Linux v4l2架构学习总链接gitee源码完整代码/* csdn: 专题讲解 * https://blog.csdn.net/ldl617/category_11380464.html */#include <stdio.h>#include <stdlib.h>#include <string.h>#include <fcntl.h>#include <unistd.h>#include <sys/stat.h原创 2021-09-26 19:44:52 · 5013 阅读 · 17 评论 -
mplane方式v4l2应用分析 -- VIDIOC_DQBUF(缓存放入队列)
Linux v4l2架构学习总链接VIDIOC_DQBUF同样的先去看从应用调用vivi驱动分析v4l2 – 缓存放入队列(VIDIOC_QBUF)那到缓冲区信息的代码可以看__fill_v4l2_bufferstatic void __fill_v4l2_buffer(struct vb2_buffer *vb, void *pb){ struct v4l2_buffer *b = pb; struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(v原创 2021-09-26 17:40:40 · 2470 阅读 · 0 评论 -
mplane方式v4l2应用分析 -- mmap(映射)
Linux v4l2架构学习总链接mmap同样的先去看从应用调用vivi驱动分析v4l2 – 映射 mmap这里看看怎么找到plane的static int __find_plane_by_offset(struct vb2_queue *q, unsigned long off, unsigned int *_buffer, unsigned int *_plane){ struct vb2_buffer *vb; unsigned int buffer, plane; /*原创 2021-09-26 16:00:56 · 1437 阅读 · 0 评论 -
mplane方式v4l2应用分析 -- VIDIOC_QUERYBUF(查询缓存信息)
Linux v4l2架构学习总链接VIDIOC_QUERYBUF(查询缓存信息)同样的还是先看从应用调用vivi驱动分析v4l2 – 查询(VIDIOC_QUERYBUF)缓存信息在vb2_querybuf中,之前没有分析__verify_planes_arraystatic int __verify_planes_array(struct vb2_buffer *vb, const struct v4l2_buffer *b){ /* 非NPLANE这里直接返回 */ if (!V4L2_T原创 2021-09-26 15:26:13 · 2631 阅读 · 0 评论 -
mplane方式v4l2应用分析 -- VIDIOC_REQBUFS(申请缓冲区)
Linux v4l2架构学习总链接VIDIOC_REQBUFS(申请缓冲区)大部分代码和从应用调用vivi驱动分析v4l2 – 申请缓存(VIDIOC_REQBUFS)是通用的,这里只分析不同的地方queue_setuprv1126这里queue_setup对应代码rkcif_queue_setup 和vivi是不一样的static int rkcif_queue_setup(struct vb2_queue *queue, unsigned int *num_buffers,原创 2021-09-26 14:21:21 · 953 阅读 · 0 评论 -
mplane方式v4l2应用分析 -- VIDIOC_S_FMT(设置图像格式)
Linux v4l2架构学习总链接设置图像格式 VIDIOC_S_FMTv4l2应用代码如下: struct v4l2_format fmt; memset(&fmt, 0, sizeof(struct v4l2_format)); fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; fmt.fmt.pix_mp.width = 2400; fmt.fmt.pix_mp.height = 1920; fmt.fm原创 2021-09-26 13:38:38 · 3445 阅读 · 3 评论 -
为什么要分析mplane格式的v4l2应用?
为什么要分析mplane格式的v4l2应用?在之前通过vivi学习v4l2的时候其实已经知道了v4l2怎么编写,这里为什么还要研究mplane格式的?vivi中是非mplane格式的,该部分章节的内容编写的v4l2应用在实际项目中,其实只适用usb摄像头,但是现在好多平台支持的都是mplane格式的,所以实用性有限。最近在rv1126平台上一直使用rkmedia去获取图像,大部分都是nv12格式的。直到最近要获取raw8到图像,突然发现rkmedia不支持,需要自己通过v4l2去获取。然而v4l2使原创 2021-09-26 09:57:17 · 1729 阅读 · 2 评论