History

[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.

Tomasz Stanislawski committed 14 years ago

Commit b799d091 parent c60520f5 files · +42 −0Browse files

Showing the changes to include/uapi/linux (1 of 5 files). Show all

Unified · Split

include/uapi/linux/videodev2.h+28−0
@@ -694,6 +694,33 @@ struct v4l2_buffer { · 693 unmodified lines
694694 #define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE 0x0800
695695 #define V4L2_BUF_FLAG_NO_CACHE_CLEAN 0x1000
696696
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+
697724 /*
698725 * O V E R L A Y P R E V I E W
699726 */
@@ -1895,6 +1922,7 @@ struct v4l2_create_buffers { · 1195 unmodified lines
18951922 #define VIDIOC_S_FBUF _IOW('V', 11, struct v4l2_framebuffer)
18961923 #define VIDIOC_OVERLAY _IOW('V', 14, int)
18971924 #define VIDIOC_QBUF _IOWR('V', 15, struct v4l2_buffer)
1925+#define VIDIOC_EXPBUF _IOWR('V', 16, struct v4l2_exportbuffer)
18981926 #define VIDIOC_DQBUF _IOWR('V', 17, struct v4l2_buffer)
18991927 #define VIDIOC_STREAMON _IOW('V', 18, int)
19001928 #define VIDIOC_STREAMOFF _IOW('V', 19, int)

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t