#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/videodev2.h>
#include <linux/v4l2-dv-timings.h>
#include <media/v4l2-common.h>
#include <media/v4l2-event.h>
#include <media/v4l2-dv-timings.h>
#include <media/v4l2-rect.h>
#include "vivid-core.h"
#include "vivid-vid-common.h"
#include "vivid-kthread-out.h"
#include "vivid-vid-out.h"
static int vid_out_queue_setup(struct vb2_queue *vq,
unsigned *nbuffers, unsigned *nplanes,
unsigned sizes[], struct device *alloc_devs[])
{ … }
static int vid_out_buf_out_validate(struct vb2_buffer *vb)
{ … }
static int vid_out_buf_prepare(struct vb2_buffer *vb)
{ … }
static void vid_out_buf_queue(struct vb2_buffer *vb)
{ … }
static int vid_out_start_streaming(struct vb2_queue *vq, unsigned count)
{ … }
static void vid_out_stop_streaming(struct vb2_queue *vq)
{ … }
static void vid_out_buf_request_complete(struct vb2_buffer *vb)
{ … }
const struct vb2_ops vivid_vid_out_qops = …;
void vivid_update_format_out(struct vivid_dev *dev)
{ … }
static enum v4l2_field vivid_field_out(struct vivid_dev *dev, enum v4l2_field field)
{ … }
static enum tpg_pixel_aspect vivid_get_pixel_aspect(const struct vivid_dev *dev)
{ … }
int vivid_g_fmt_vid_out(struct file *file, void *priv,
struct v4l2_format *f)
{ … }
int vivid_try_fmt_vid_out(struct file *file, void *priv,
struct v4l2_format *f)
{ … }
int vivid_s_fmt_vid_out(struct file *file, void *priv,
struct v4l2_format *f)
{ … }
int vidioc_g_fmt_vid_out_mplane(struct file *file, void *priv,
struct v4l2_format *f)
{ … }
int vidioc_try_fmt_vid_out_mplane(struct file *file, void *priv,
struct v4l2_format *f)
{ … }
int vidioc_s_fmt_vid_out_mplane(struct file *file, void *priv,
struct v4l2_format *f)
{ … }
int vidioc_g_fmt_vid_out(struct file *file, void *priv,
struct v4l2_format *f)
{ … }
int vidioc_try_fmt_vid_out(struct file *file, void *priv,
struct v4l2_format *f)
{ … }
int vidioc_s_fmt_vid_out(struct file *file, void *priv,
struct v4l2_format *f)
{ … }
int vivid_vid_out_g_selection(struct file *file, void *priv,
struct v4l2_selection *sel)
{ … }
int vivid_vid_out_s_selection(struct file *file, void *fh, struct v4l2_selection *s)
{ … }
int vivid_vid_out_g_pixelaspect(struct file *file, void *priv,
int type, struct v4l2_fract *f)
{ … }
int vidioc_g_fmt_vid_out_overlay(struct file *file, void *priv,
struct v4l2_format *f)
{ … }
int vidioc_try_fmt_vid_out_overlay(struct file *file, void *priv,
struct v4l2_format *f)
{ … }
int vidioc_s_fmt_vid_out_overlay(struct file *file, void *priv,
struct v4l2_format *f)
{ … }
int vivid_vid_out_overlay(struct file *file, void *fh, unsigned i)
{ … }
int vivid_vid_out_g_fbuf(struct file *file, void *fh,
struct v4l2_framebuffer *a)
{ … }
int vivid_vid_out_s_fbuf(struct file *file, void *fh,
const struct v4l2_framebuffer *a)
{ … }
static const struct v4l2_audioout vivid_audio_outputs[] = …;
int vidioc_enum_output(struct file *file, void *priv,
struct v4l2_output *out)
{ … }
int vidioc_g_output(struct file *file, void *priv, unsigned *o)
{ … }
int vidioc_s_output(struct file *file, void *priv, unsigned o)
{ … }
int vidioc_enumaudout(struct file *file, void *fh, struct v4l2_audioout *vout)
{ … }
int vidioc_g_audout(struct file *file, void *fh, struct v4l2_audioout *vout)
{ … }
int vidioc_s_audout(struct file *file, void *fh, const struct v4l2_audioout *vout)
{ … }
int vivid_vid_out_s_std(struct file *file, void *priv, v4l2_std_id id)
{ … }
static bool valid_cvt_gtf_timings(struct v4l2_dv_timings *timings)
{ … }
int vivid_vid_out_s_dv_timings(struct file *file, void *_fh,
struct v4l2_dv_timings *timings)
{ … }
int vivid_vid_out_g_parm(struct file *file, void *priv,
struct v4l2_streamparm *parm)
{ … }
int vidioc_subscribe_event(struct v4l2_fh *fh,
const struct v4l2_event_subscription *sub)
{ … }