v4l2 buffer
来源:互联网 发布:大数据精准营销服务商 编辑:程序博客网 时间:2024/06/01 07:33
vivi.c
static int vidioc_reqbufs(struct file *file, void *priv,
struct v4l2_requestbuffers *p)
--> videobuf_reqbufs(&dev->vb_vidq, p);
------->q->ops->buf_setup(q, &count, &size);
static int vidioc_qbuf(struct file *file, void *priv, struct v4l2_buffer *p)
-->int videobuf_qbuf(struct videobuf_queue *q, struct v4l2_buffer *b)
------> retval = q->ops->buf_prepare(q, buf, field);
------> q->ops->buf_queue(q, buf);
struct vb2_queue vb_vidq; //interaction with user space
struct vivi_dmaqueue vidq; //interaction with hardware
int vb2_qbuf(struct vb2_queue *q, struct v4l2_buffer *b)
---> __enqueue_in_driver(vb);
------->q->ops->buf_queue(vb);
static void buffer_queue(struct vb2_buffer *vb)
---->list_add_tail(&buf->list, &vidq->active); //add buffer to dma free buffer queue
buf = list_entry(dma_q->active.next, struct vivi_buffer, list);//get a free buffer
list_del(&buf->list);
vivi_fillbuff(dev, buf);/* Fill buffer */
vb2_buffer_done(&buf->vb, VB2_BUF_STATE_DONE);//send notification to user the buffer is filled
static int vidioc_reqbufs(struct file *file, void *priv,
struct v4l2_requestbuffers *p)
--> videobuf_reqbufs(&dev->vb_vidq, p);
------->q->ops->buf_setup(q, &count, &size);
static int vidioc_qbuf(struct file *file, void *priv, struct v4l2_buffer *p)
-->int videobuf_qbuf(struct videobuf_queue *q, struct v4l2_buffer *b)
------> retval = q->ops->buf_prepare(q, buf, field);
------> q->ops->buf_queue(q, buf);
struct vb2_queue vb_vidq; //interaction with user space
struct vivi_dmaqueue vidq; //interaction with hardware
int vb2_qbuf(struct vb2_queue *q, struct v4l2_buffer *b)
---> __enqueue_in_driver(vb);
------->q->ops->buf_queue(vb);
static void buffer_queue(struct vb2_buffer *vb)
---->list_add_tail(&buf->list, &vidq->active); //add buffer to dma free buffer queue
buf = list_entry(dma_q->active.next, struct vivi_buffer, list);//get a free buffer
list_del(&buf->list);
vivi_fillbuff(dev, buf);/* Fill buffer */
vb2_buffer_done(&buf->vb, VB2_BUF_STATE_DONE);//send notification to user the buffer is filled
- v4l2 buffer
- 更新libva及V4l2 Buffer Sharing
- V4L2 API详解 <三> Buffer的准备和数据读取
- V4L2 API详解 <三> Buffer的准备和数据读取
- V4L2 API详解 <三> Buffer的准备和数据读取
- V4L2 API详解 <三> Buffer的准备和数据读取
- V4L2 API详解 <三> Buffer的准备和数据读取
- v4l2
- V4L2
- V4L2
- v4l2
- v4l2
- V4L2
- V4L2
- v4l2
- V4L2
- V4L2
- V4L2
- 使用Hibernate自动生成表不能正确创建表的问题
- C/C++ 宏带来的奇技淫巧
- 几道智力趣题
- http://acm.nyist.net/JudgeOnline/problem.php?pid=510
- java 代码为性能做的事
- v4l2 buffer
- Linux 170个常见问题的详细解答
- 数据对齐说明(Data Alignment)
- ssh--linux--后台运行程序
- Socket基础知识分享
- 数学资源【3】
- Android Power Management
- 结构体可以用等号直接赋值
- 数据库索引的实现原理