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