162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * vivid-meta-cap.h - meta capture support functions.
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci#ifndef _VIVID_META_CAP_H_
662306a36Sopenharmony_ci#define _VIVID_META_CAP_H_
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#define VIVID_META_CLOCK_UNIT	10 /* 100 MHz */
962306a36Sopenharmony_ci
1062306a36Sopenharmony_cistruct vivid_uvc_meta_buf {
1162306a36Sopenharmony_ci	__u64 ns;
1262306a36Sopenharmony_ci	__u16 sof;
1362306a36Sopenharmony_ci	__u8 length;
1462306a36Sopenharmony_ci	__u8 flags;
1562306a36Sopenharmony_ci	__u8 buf[10]; /* PTS(4)+STC(4)+SOF(2) */
1662306a36Sopenharmony_ci} __packed;
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_civoid vivid_meta_cap_fillbuff(struct vivid_dev *dev,
1962306a36Sopenharmony_ci			     struct vivid_buffer *buf, u64 soe);
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ciint vidioc_enum_fmt_meta_cap(struct file *file, void  *priv,
2262306a36Sopenharmony_ci			     struct v4l2_fmtdesc *f);
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ciint vidioc_g_fmt_meta_cap(struct file *file, void *priv,
2562306a36Sopenharmony_ci			  struct v4l2_format *f);
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ciextern const struct vb2_ops vivid_meta_cap_qops;
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci#endif
30