Commit | Line | Data |
---|---|---|
5377d91f MH |
1 | .. -*- coding: utf-8; mode: rst -*- |
2 | ||
af4a4d0d | 3 | .. _VIDIOC_PREPARE_BUF: |
5377d91f MH |
4 | |
5 | ************************ | |
6 | ioctl VIDIOC_PREPARE_BUF | |
7 | ************************ | |
8 | ||
15e7d615 | 9 | Name |
586027ce | 10 | ==== |
5377d91f | 11 | |
586027ce | 12 | VIDIOC_PREPARE_BUF - Prepare a buffer for I/O |
5377d91f | 13 | |
15e7d615 MCC |
14 | |
15 | Synopsis | |
5377d91f MH |
16 | ======== |
17 | ||
41d80465 MCC |
18 | .. c:function:: int ioctl( int fd, VIDIOC_PREPARE_BUF, struct v4l2_buffer *argp ) |
19 | :name: VIDIOC_PREPARE_BUF | |
5377d91f | 20 | |
586027ce | 21 | |
15e7d615 | 22 | Arguments |
5377d91f MH |
23 | ========= |
24 | ||
25 | ``fd`` | |
26 | File descriptor returned by :ref:`open() <func-open>`. | |
27 | ||
5377d91f MH |
28 | ``argp`` |
29 | ||
30 | ||
15e7d615 | 31 | Description |
5377d91f MH |
32 | =========== |
33 | ||
2212ff25 | 34 | Applications can optionally call the :ref:`VIDIOC_PREPARE_BUF` ioctl to |
5377d91f | 35 | pass ownership of the buffer to the driver before actually enqueuing it, |
2212ff25 | 36 | using the :ref:`VIDIOC_QBUF` ioctl, and to prepare it for future I/O. Such |
5377d91f MH |
37 | preparations may include cache invalidation or cleaning. Performing them |
38 | in advance saves time during the actual I/O. In case such cache | |
39 | operations are not required, the application can use one of | |
40 | ``V4L2_BUF_FLAG_NO_CACHE_INVALIDATE`` and | |
41 | ``V4L2_BUF_FLAG_NO_CACHE_CLEAN`` flags to skip the respective step. | |
42 | ||
fc78c7c7 | 43 | The struct :c:type:`v4l2_buffer` structure is specified in |
5377d91f MH |
44 | :ref:`buffer`. |
45 | ||
46 | ||
15e7d615 | 47 | Return Value |
5377d91f MH |
48 | ============ |
49 | ||
50 | On success 0 is returned, on error -1 and the ``errno`` variable is set | |
51 | appropriately. The generic error codes are described at the | |
52 | :ref:`Generic Error Codes <gen-errors>` chapter. | |
53 | ||
54 | EBUSY | |
55 | File I/O is in progress. | |
56 | ||
57 | EINVAL | |
58 | The buffer ``type`` is not supported, or the ``index`` is out of | |
59 | bounds, or no buffers have been allocated yet, or the ``userptr`` or | |
60 | ``length`` are invalid. |