v4l2 buffer
发布时间:2020-12-16 22:31:03 所属栏目:大数据 来源:网络整理
导读: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,struct v4l2_buffer *p) --int vid
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,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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |