^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0-only */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * vivid-meta-cap.h - meta capture support functions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #ifndef _VIVID_META_CAP_H_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #define _VIVID_META_CAP_H_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #define VIVID_META_CLOCK_UNIT 10 /* 100 MHz */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) struct vivid_uvc_meta_buf {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) __u64 ns;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) __u16 sof;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) __u8 length;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) __u8 flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) __u8 buf[10]; /* PTS(4)+STC(4)+SOF(2) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) } __packed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) void vivid_meta_cap_fillbuff(struct vivid_dev *dev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) struct vivid_buffer *buf, u64 soe);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) int vidioc_enum_fmt_meta_cap(struct file *file, void *priv,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) struct v4l2_fmtdesc *f);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) int vidioc_g_fmt_meta_cap(struct file *file, void *priv,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) struct v4l2_format *f);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) extern const struct vb2_ops vivid_meta_cap_qops;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) #endif