diff options
| author | Tomasz Stanislawski <t.stanislaws@samsung.com> | 2012-06-14 10:32:23 -0400 |
|---|---|---|
| committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-11-25 14:20:47 -0500 |
| commit | b799d09a157da71566e8013a62073435550cab6d (patch) | |
| tree | 54222407a12429a93ca5c2bff69c7b96bea493f0 /include/uapi | |
| parent | c60520fa50cd86d64bc8ebb34300ddc4ca91393d (diff) | |
[media] v4l: add buffer exporting via dmabuf
This patch adds extension to V4L2 api. A new ioctl VIDIOC_EXPBUF is added. The
ioctl is used to export an mmap buffer as a DMABUF file descriptor.
Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Tested-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'include/uapi')
| -rw-r--r-- | include/uapi/linux/videodev2.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index 91ac83b21c20..3cf3e946e331 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h | |||
| @@ -694,6 +694,33 @@ struct v4l2_buffer { | |||
| 694 | #define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE 0x0800 | 694 | #define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE 0x0800 |
| 695 | #define V4L2_BUF_FLAG_NO_CACHE_CLEAN 0x1000 | 695 | #define V4L2_BUF_FLAG_NO_CACHE_CLEAN 0x1000 |
| 696 | 696 | ||
| 697 | /** | ||
| 698 | * struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor | ||
| 699 | * | ||
| 700 | * @index: id number of the buffer | ||
| 701 | * @type: enum v4l2_buf_type; buffer type (type == *_MPLANE for | ||
| 702 | * multiplanar buffers); | ||
| 703 | * @plane: index of the plane to be exported, 0 for single plane queues | ||
| 704 | * @flags: flags for newly created file, currently only O_CLOEXEC is | ||
| 705 | * supported, refer to manual of open syscall for more details | ||
| 706 | * @fd: file descriptor associated with DMABUF (set by driver) | ||
| 707 | * | ||
| 708 | * Contains data used for exporting a video buffer as DMABUF file descriptor. | ||
| 709 | * The buffer is identified by a 'cookie' returned by VIDIOC_QUERYBUF | ||
| 710 | * (identical to the cookie used to mmap() the buffer to userspace). All | ||
| 711 | * reserved fields must be set to zero. The field reserved0 is expected to | ||
| 712 | * become a structure 'type' allowing an alternative layout of the structure | ||
| 713 | * content. Therefore this field should not be used for any other extensions. | ||
| 714 | */ | ||
| 715 | struct v4l2_exportbuffer { | ||
| 716 | __u32 type; /* enum v4l2_buf_type */ | ||
| 717 | __u32 index; | ||
| 718 | __u32 plane; | ||
| 719 | __u32 flags; | ||
| 720 | __s32 fd; | ||
| 721 | __u32 reserved[11]; | ||
| 722 | }; | ||
| 723 | |||
| 697 | /* | 724 | /* |
| 698 | * O V E R L A Y P R E V I E W | 725 | * O V E R L A Y P R E V I E W |
| 699 | */ | 726 | */ |
| @@ -1895,6 +1922,7 @@ struct v4l2_create_buffers { | |||
| 1895 | #define VIDIOC_S_FBUF _IOW('V', 11, struct v4l2_framebuffer) | 1922 | #define VIDIOC_S_FBUF _IOW('V', 11, struct v4l2_framebuffer) |
| 1896 | #define VIDIOC_OVERLAY _IOW('V', 14, int) | 1923 | #define VIDIOC_OVERLAY _IOW('V', 14, int) |
| 1897 | #define VIDIOC_QBUF _IOWR('V', 15, struct v4l2_buffer) | 1924 | #define VIDIOC_QBUF _IOWR('V', 15, struct v4l2_buffer) |
| 1925 | #define VIDIOC_EXPBUF _IOWR('V', 16, struct v4l2_exportbuffer) | ||
| 1898 | #define VIDIOC_DQBUF _IOWR('V', 17, struct v4l2_buffer) | 1926 | #define VIDIOC_DQBUF _IOWR('V', 17, struct v4l2_buffer) |
| 1899 | #define VIDIOC_STREAMON _IOW('V', 18, int) | 1927 | #define VIDIOC_STREAMON _IOW('V', 18, int) |
| 1900 | #define VIDIOC_STREAMOFF _IOW('V', 19, int) | 1928 | #define VIDIOC_STREAMOFF _IOW('V', 19, int) |
