#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/videodev2.h>
#include <media/v4l2-common.h>
#include "vivid-core.h"
#include "vivid-kthread-cap.h"
#include "vivid-vbi-cap.h"
#include "vivid-vbi-gen.h"
#include "vivid-vid-common.h"
static void vivid_sliced_vbi_cap_fill(struct vivid_dev *dev, unsigned seqnr)
{ … }
static void vivid_g_fmt_vbi_cap(struct vivid_dev *dev, struct v4l2_vbi_format *vbi)
{ … }
void vivid_raw_vbi_cap_process(struct vivid_dev *dev, struct vivid_buffer *buf)
{ … }
void vivid_sliced_vbi_cap_process(struct vivid_dev *dev,
struct vivid_buffer *buf)
{ … }
static int vbi_cap_queue_setup(struct vb2_queue *vq,
unsigned *nbuffers, unsigned *nplanes,
unsigned sizes[], struct device *alloc_devs[])
{ … }
static int vbi_cap_buf_prepare(struct vb2_buffer *vb)
{ … }
static void vbi_cap_buf_queue(struct vb2_buffer *vb)
{ … }
static int vbi_cap_start_streaming(struct vb2_queue *vq, unsigned count)
{ … }
static void vbi_cap_stop_streaming(struct vb2_queue *vq)
{ … }
static void vbi_cap_buf_request_complete(struct vb2_buffer *vb)
{ … }
const struct vb2_ops vivid_vbi_cap_qops = …;
int vidioc_g_fmt_vbi_cap(struct file *file, void *priv,
struct v4l2_format *f)
{ … }
int vidioc_s_fmt_vbi_cap(struct file *file, void *priv,
struct v4l2_format *f)
{ … }
void vivid_fill_service_lines(struct v4l2_sliced_vbi_format *vbi, u32 service_set)
{ … }
int vidioc_g_fmt_sliced_vbi_cap(struct file *file, void *fh, struct v4l2_format *fmt)
{ … }
int vidioc_try_fmt_sliced_vbi_cap(struct file *file, void *fh, struct v4l2_format *fmt)
{ … }
int vidioc_s_fmt_sliced_vbi_cap(struct file *file, void *fh, struct v4l2_format *fmt)
{ … }
int vidioc_g_sliced_vbi_cap(struct file *file, void *fh, struct v4l2_sliced_vbi_cap *cap)
{ … }