Video for Linux Two API Specification: Revision 0.24
Prev |  | Next

# ioctl VIDIOC_QUERYBUF

## Name

VIDIOC_QUERYBUF -- Query the status of a buffer

## Synopsis

``int ioctl`(int fd, int request, struct v4l2_buffer *argp);`

## Arguments

`fd`

  File descriptor returned by `open()`.

`request`

  VIDIOC_QUERYBUF

`argp`

## Description

This ioctl is part of the memory mapping I/O method. It can be used to query the status of a buffer at any time after buffers have been allocated with the `VIDIOC_REQBUFS` ioctl.

Applications set the `type` field of a struct v4l2_buffer to the same buffer type as previously struct v4l2_format `type` and struct v4l2_requestbuffers `type`, and the `index` field. Valid index numbers range from zero to the number of buffers allocated with `VIDIOC_REQBUFS` (struct v4l2_requestbuffers `count`) minus one. After calling `VIDIOC_QUERYBUF` with a pointer to this structure drivers return an error code or fill the rest of the structure.

In the `flags` field the `V4L2_BUF_FLAG_MAPPED`, `V4L2_BUF_FLAG_QUEUED` and `V4L2_BUF_FLAG_DONE` flags will be valid. The `memory` field will be set to `V4L2_MEMORY_MMAP`, the `m.offset` contains the offset of the buffer from the start of the device memory, the `length` field its size. The driver may or may not set the remaining fields and flags, they are meaningless in this context.

The `v4l2_buffer` structure is specified in Section 3.5.

## Return Value

On success 0 is returned, on error -1 and the `errno` variable is set appropriately:

EINVAL

  The buffer `type` is not supported, or the `index` is out of bounds.

Prev | Home | Next
ioctl VIDIOC_QBUF, VIDIOC_DQBUF | Up | ioctl VIDIOC_QUERYCAP