Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 181729
b: refs/heads/master
c: 7cae112
h: refs/heads/master
i:
  181727: 56935ab
v: v3
  • Loading branch information
Mauro Carvalho Chehab committed Feb 26, 2010
1 parent 64f620b commit 45f0d78
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 24 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4b586a38b048b0d78874721e5b26cb6476fafb60
refs/heads/master: 7cae112ebe10e186c3bdae1f20865941717e37a2
1 change: 0 additions & 1 deletion trunk/Documentation/video4linux/v4l2-framework.txt
Original file line number Diff line number Diff line change
Expand Up @@ -609,4 +609,3 @@ scatter/gather method (videobuf-dma-sg), DMA with linear access

Please see Documentation/video4linux/videobuf for more information on how
to use the videobuf layer.

44 changes: 22 additions & 22 deletions trunk/Documentation/video4linux/videobuf
Original file line number Diff line number Diff line change
Expand Up @@ -112,15 +112,15 @@ then pass it to the appropriate free routine(s):

/* Scatter/gather drivers */
int videobuf_dma_unmap(struct videobuf_queue *q,
struct videobuf_dmabuf *dma);
struct videobuf_dmabuf *dma);
int videobuf_dma_free(struct videobuf_dmabuf *dma);

/* vmalloc drivers */
void videobuf_vmalloc_free (struct videobuf_buffer *buf);

/* Contiguous drivers */
void videobuf_dma_contig_free(struct videobuf_queue *q,
struct videobuf_buffer *buf);
struct videobuf_buffer *buf);

One way to ensure that a buffer is no longer under I/O is to pass it to:

Expand All @@ -138,21 +138,21 @@ first step is in the open() function, which must initialize the
videobuf queue. The function to use depends on the type of buffer used:

void videobuf_queue_sg_init(struct videobuf_queue *q,
struct videobuf_queue_ops *ops,
struct device *dev,
spinlock_t *irqlock,
enum v4l2_buf_type type,
enum v4l2_field field,
unsigned int msize,
void *priv);
struct videobuf_queue_ops *ops,
struct device *dev,
spinlock_t *irqlock,
enum v4l2_buf_type type,
enum v4l2_field field,
unsigned int msize,
void *priv);

void videobuf_queue_vmalloc_init(struct videobuf_queue *q,
struct videobuf_queue_ops *ops,
struct device *dev,
spinlock_t *irqlock,
enum v4l2_buf_type type,
enum v4l2_field field,
unsigned int msize,
struct videobuf_queue_ops *ops,
struct device *dev,
spinlock_t *irqlock,
enum v4l2_buf_type type,
enum v4l2_field field,
unsigned int msize,
void *priv);

void videobuf_queue_dma_contig_init(struct videobuf_queue *q,
Expand Down Expand Up @@ -183,11 +183,11 @@ easy to do that with the same code. To implement read(), the driver need
only make a call to one of:

ssize_t videobuf_read_one(struct videobuf_queue *q,
char __user *data, size_t count,
char __user *data, size_t count,
loff_t *ppos, int nonblocking);

ssize_t videobuf_read_stream(struct videobuf_queue *q,
char __user *data, size_t count,
char __user *data, size_t count,
loff_t *ppos, int vbihack, int nonblocking);

Either one of these functions will read frame data into data, returning the
Expand Down Expand Up @@ -240,15 +240,15 @@ the many ioctl() commands made available to user space. A number of these
calls. The relevant helper functions are:

int videobuf_reqbufs(struct videobuf_queue *q,
struct v4l2_requestbuffers *req);
struct v4l2_requestbuffers *req);
int videobuf_querybuf(struct videobuf_queue *q, struct v4l2_buffer *b);
int videobuf_qbuf(struct videobuf_queue *q, struct v4l2_buffer *b);
int videobuf_dqbuf(struct videobuf_queue *q, struct v4l2_buffer *b,
int nonblocking);
int videobuf_dqbuf(struct videobuf_queue *q, struct v4l2_buffer *b,
int nonblocking);
int videobuf_streamon(struct videobuf_queue *q);
int videobuf_streamoff(struct videobuf_queue *q);
int videobuf_cgmbuf(struct videobuf_queue *q, struct video_mbuf *mbuf,
int count);
int videobuf_cgmbuf(struct videobuf_queue *q, struct video_mbuf *mbuf,
int count);

So, for example, a VIDIOC_REQBUFS call turns into a call to the driver's
vidioc_reqbufs() callback which, in turn, usually only needs to locate the
Expand Down

0 comments on commit 45f0d78

Please sign in to comment.