18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * vivid-meta-cap.h - meta capture support functions.
48c2ecf20Sopenharmony_ci */
58c2ecf20Sopenharmony_ci#ifndef _VIVID_META_CAP_H_
68c2ecf20Sopenharmony_ci#define _VIVID_META_CAP_H_
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci#define VIVID_META_CLOCK_UNIT	10 /* 100 MHz */
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_cistruct vivid_uvc_meta_buf {
118c2ecf20Sopenharmony_ci	__u64 ns;
128c2ecf20Sopenharmony_ci	__u16 sof;
138c2ecf20Sopenharmony_ci	__u8 length;
148c2ecf20Sopenharmony_ci	__u8 flags;
158c2ecf20Sopenharmony_ci	__u8 buf[10]; /* PTS(4)+STC(4)+SOF(2) */
168c2ecf20Sopenharmony_ci} __packed;
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_civoid vivid_meta_cap_fillbuff(struct vivid_dev *dev,
198c2ecf20Sopenharmony_ci			     struct vivid_buffer *buf, u64 soe);
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ciint vidioc_enum_fmt_meta_cap(struct file *file, void  *priv,
228c2ecf20Sopenharmony_ci			     struct v4l2_fmtdesc *f);
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ciint vidioc_g_fmt_meta_cap(struct file *file, void *priv,
258c2ecf20Sopenharmony_ci			  struct v4l2_format *f);
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ciextern const struct vb2_ops vivid_meta_cap_qops;
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ci#endif
30