struct-v4l2.c from aMSN at Krugle
Show struct-v4l2.c syntax highlighted
#include <stdio.h>
#include <sys/ioctl.h>
#include <sys/time.h>
#include <asm/types.h>
#include "videodev2.h"
#include "struct-dump.h"
#include "struct-v4l2.h"
/* ---------------------------------------------------------------------- */
char *desc_v4l2_field[] = {
[V4L2_FIELD_ANY] = "ANY",
[V4L2_FIELD_NONE] = "NONE",
[V4L2_FIELD_TOP] = "TOP",
[V4L2_FIELD_BOTTOM] = "BOTTOM",
[V4L2_FIELD_INTERLACED] = "INTERLACED",
[V4L2_FIELD_SEQ_TB] = "SEQ_TB",
[V4L2_FIELD_SEQ_BT] = "SEQ_BT",
[V4L2_FIELD_ALTERNATE] = "ALTERNATE",
};
char *desc_v4l2_buf_type[] = {
[V4L2_BUF_TYPE_VIDEO_CAPTURE] = "VIDEO_CAPTURE",
[V4L2_BUF_TYPE_VIDEO_OUTPUT] = "VIDEO_OUTPUT",
[V4L2_BUF_TYPE_VIDEO_OVERLAY] = "VIDEO_OVERLAY",
[V4L2_BUF_TYPE_VBI_CAPTURE] = "VBI_CAPTURE",
[V4L2_BUF_TYPE_VBI_OUTPUT] = "VBI_OUTPUT",
[V4L2_BUF_TYPE_PRIVATE] = "PRIVATE",
};
char *desc_v4l2_ctrl_type[] = {
[V4L2_CTRL_TYPE_INTEGER] = "INTEGER",
[V4L2_CTRL_TYPE_BOOLEAN] = "BOOLEAN",
[V4L2_CTRL_TYPE_MENU] = "MENU",
[V4L2_CTRL_TYPE_BUTTON] = "BUTTON",
};
char *desc_v4l2_tuner_type[] = {
[V4L2_TUNER_RADIO] = "RADIO",
[V4L2_TUNER_ANALOG_TV] = "ANALOG_TV",
};
char *desc_v4l2_memory[] = {
[V4L2_MEMORY_MMAP] = "MMAP",
[V4L2_MEMORY_USERPTR] = "USERPTR",
[V4L2_MEMORY_OVERLAY] = "OVERLAY",
};
char *desc_v4l2_colorspace[] = {
[V4L2_COLORSPACE_SMPTE170M] = "SMPTE170M",
[V4L2_COLORSPACE_SMPTE240M] = "SMPTE240M",
[V4L2_COLORSPACE_REC709] = "REC709",
[V4L2_COLORSPACE_BT878] = "BT878",
[V4L2_COLORSPACE_470_SYSTEM_M] = "470_SYSTEM_M",
[V4L2_COLORSPACE_470_SYSTEM_BG] = "470_SYSTEM_BG",
[V4L2_COLORSPACE_JPEG] = "JPEG",
[V4L2_COLORSPACE_SRGB] = "SRGB",
};
char *bits_capabilities[32] = {
"VIDEO_CAPTURE", "VIDEO_OUTPUT", "VIDEO_OVERLAY", "",
"VBI_CAPTURE", "VBI_OUTPUT", "?","?",
"RDS_CAPTURE", "?", "?", "?",
"?", "?", "?", "?",
"TUNER", "AUDIO", "?", "?",
"?", "?", "?", "?",
"READWRITE", "ASYNCIO", "STREAMING", "?",
};
char *bits_standard[64] = {
"PAL_B", "PAL_B1", "PAL_G", "PAL_H",
"PAL_I", "PAL_D", "PAL_D1", "PAL_K",
"PAL_M", "PAL_N", "PAL_Nc", "PAL_60",
"NTSC_M", "NTSC_M_JP", "?", "?",
"SECAM_B", "SECAM_D", "SECAM_G", "SECAM_H",
"SECAM_K", "SECAM_K1", "SECAM_L", "?"
"ATSC_8_VSB", "ATSC_16_VSB",
};
char *bits_buf_flags[32] = {
"MAPPED",
"QUEUED",
"DONE",
"KEYFRAME",
"PFRAME",
"BFRAME",
"?", "?",
"TIMECODE",
};
char *bits_fbuf_cap[32] = {
"EXTERNOVERLAY",
"CHROMAKEY",
"LIST_CLIPPING",
"BITMAP_CLIPPING",
};
char *bits_fbuf_flags[32] = {
"PRIMARY",
"OVERLAY",
"CHROMAKEY",
};
char *desc_input_type[32] = {
[ V4L2_INPUT_TYPE_TUNER ] = "TUNER",
[ V4L2_INPUT_TYPE_CAMERA ] = "CAMERA",
};
char *bits_input_status[32] = {
"NO_POWER", "NO_SIGNAL", "NO_COLOR", "?",
"?","?","?","?",
"NO_H_LOCK", "COLOR_KILL", "?", "?",
"?","?","?","?",
"NO_SYNC", "NO_EQU", "NO_CARRIER", "?",
"?","?","?","?",
"MACROVISION", "NO_ACCESS", "VTR", "?",
"?","?","?","?",
};
char *bits_tuner_cap[32] = {
"LOW", "NORM", "?", "?",
"STEREO", "LANG2", "LANG1", "?",
};
char *bits_tuner_rx[32] = {
"MONO",
"STEREO",
"LANG2",
"LANG1",
};
char *desc_tuner2_mode[] = {
[ V4L2_TUNER_MODE_MONO ] = "MONO",
[ V4L2_TUNER_MODE_STEREO ] = "STEREO",
[ V4L2_TUNER_MODE_LANG2 ] = "LANG2",
[ V4L2_TUNER_MODE_LANG1 ] = "LANG1",
};
/* ---------------------------------------------------------------------- */
struct struct_desc desc_v4l2_rect[] = {{
.type = SINT32,
.name = "left",
},{
.type = SINT32,
.name = "top",
},{
.type = SINT32,
.name = "width",
},{
.type = SINT32,
.name = "height",
},{
/* end of list */
}};
struct struct_desc desc_v4l2_fract[] = {{
.type = UINT32,
.name = "numerator",
},{
.type = UINT32,
.name = "denominator",
},{
/* end of list */
}};
struct struct_desc desc_v4l2_capability[] = {{
.type = STRING,
.name = "driver",
.length = 16,
},{
.type = STRING,
.name = "card",
.length = 32,
},{
.type = STRING,
.name = "bus_info",
.length = 32,
},{
.type = VER,
.name = "version",
},{
.type = BITS32,
.name = "capabilities",
.bits = bits_capabilities,
},{
/* end of list */
}};
struct struct_desc desc_v4l2_pix_format[] = {{
.type = UINT32,
.name = "width",
},{
.type = UINT32,
.name = "height",
},{
.type = FOURCC,
.name = "pixelformat",
},{
.type = ENUM32,
.name = "field",
.enums = desc_v4l2_field,
.length = sizeof(desc_v4l2_field) / sizeof(char*),
},{
.type = UINT32,
.name = "bytesperline",
},{
.type = UINT32,
.name = "sizeimage",
},{
.type = ENUM32,
.name = "colorspace",
.enums = desc_v4l2_colorspace,
.length = sizeof(desc_v4l2_colorspace) / sizeof(char*),
},{
.type = UINT32,
.name = "priv",
},{
/* end of list */
}};
struct struct_desc desc_v4l2_fmtdesc[] = {{
.type = UINT32,
.name = "index",
},{
.type = ENUM32,
.name = "type",
.enums = desc_v4l2_buf_type,
.length = sizeof(desc_v4l2_buf_type) / sizeof(char*),
},{
.type = UINT32,
.name = "flags",
},{
.type = STRING,
.name = "description",
.length = 32,
},{
.type = FOURCC,
.name = "pixelformat",
},{
/* end of list */
}};
struct struct_desc desc_v4l2_timecode[] = {{
.type = UINT32,
.name = "type",
},{
.type = UINT32,
.name = "flags",
},{
.type = UINT8,
.name = "frames",
},{
.type = UINT8,
.name = "seconds",
},{
.type = UINT8,
.name = "minutes",
},{
.type = UINT8,
.name = "hours",
},{
.type = STRING,
.name = "userbits",
.length = 4,
},{
/* end of list */
}};
struct struct_desc desc_v4l2_compression[] = {{
.type = UINT32,
.name = "quality",
},{
.type = UINT32,
.name = "keyframerate",
},{
.type = UINT32,
.name = "pframerate",
},{
/* end of list */
}};
struct struct_desc desc_v4l2_jpegcompression[] = {{
.type = SINT32,
.name = "quality",
},{
.type = SINT32,
.name = "APPn",
},{
.type = SINT32,
.name = "APP_len",
},{
.type = STRING,
.name = "APP_data",
.length = 60,
},{
.type = SINT32,
.name = "COM_len",
},{
.type = STRING,
.name = "COM_data",
.length = 60,
},{
.type = UINT32,
.name = "jpeg_markers",
},{
/* end of list */
}};
struct struct_desc desc_v4l2_requestbuffers[] = {{
.type = UINT32,
.name = "count",
},{
.type = ENUM32,
.name = "type",
.enums = desc_v4l2_buf_type,
.length = sizeof(desc_v4l2_buf_type) / sizeof(char*),
},{
.type = ENUM32,
.name = "memory",
.enums = desc_v4l2_memory,
.length = sizeof(desc_v4l2_memory) / sizeof(char*),
},{
/* end of list */
}};
struct struct_desc desc_v4l2_buffer[] = {{
.type = UINT32,
.name = "index",
},{
.type = ENUM32,
.name = "type",
.enums = desc_v4l2_buf_type,
.length = sizeof(desc_v4l2_buf_type) / sizeof(char*),
},{
.type = UINT32,
.name = "bytesused",
},{
.type = BITS32,
.name = "flags",
.bits = bits_buf_flags,
},{
.type = ENUM32,
.name = "field",
.enums = desc_v4l2_field,
.length = sizeof(desc_v4l2_field) / sizeof(char*),
},{
.type = STRUCT,
.name = "timestamp",
.desc = desc_timeval,
.length = sizeof(struct timeval),
},{
.type = STRUCT,
.name = "timecode",
.desc = desc_v4l2_timecode,
.length = sizeof(struct v4l2_timecode),
},{
.type = UINT32,
.name = "sequence",
},{
.type = ENUM32,
.name = "memory",
.enums = desc_v4l2_memory,
.length = sizeof(desc_v4l2_memory) / sizeof(char*),
},{
/* FIXME ... */
/* end of list */
}};
struct struct_desc desc_v4l2_framebuffer[] = {{
.type = BITS32,
.name = "capability",
.bits = bits_fbuf_cap,
},{
.type = BITS32,
.name = "flags",
.bits = bits_fbuf_flags,
},{
.type = PTR,
.name = "base",
},{
.type = STRUCT,
.name = "fmt",
.desc = desc_v4l2_pix_format,
.length = sizeof(struct v4l2_pix_format),
},{
/* end of list */
}};
struct struct_desc desc_v4l2_clip[] = {{
.type = STRUCT,
.name = "c",
.desc = desc_v4l2_rect,
.length = sizeof(struct v4l2_rect),
},{
/* end of list */
}};
struct struct_desc desc_v4l2_window[] = {{
.type = STRUCT,
.name = "w",
.desc = desc_v4l2_rect,
.length = sizeof(struct v4l2_rect),
},{
.type = ENUM32,
.name = "field",
.enums = desc_v4l2_field,
.length = sizeof(desc_v4l2_field) / sizeof(char*),
},{
.type = UINT32,
.name = "chromakey",
},{
.type = PTR,
.name = "clips",
},{
.type = UINT32,
.name = "clipcount",
},{
.type = PTR,
.name = "bitmap",
},{
/* end of list */
}};
struct struct_desc desc_v4l2_captureparm[] = {{
.type = UINT32,
.name = "capability",
},{
.type = UINT32,
.name = "capturemode",
},{
.type = STRUCT,
.name = "timeperframe",
.desc = desc_v4l2_fract,
.length = sizeof(struct v4l2_fract),
},{
.type = UINT32,
.name = "extendedmode",
},{
.type = UINT32,
.name = "readbuffers",
},{
/* end of list */
}};
struct struct_desc desc_v4l2_outputparm[] = {{
.type = UINT32,
.name = "capability",
},{
.type = UINT32,
.name = "outputmode",
},{
.type = STRUCT,
.name = "timeperframe",
.desc = desc_v4l2_fract,
.length = sizeof(struct v4l2_fract),
},{
.type = UINT32,
.name = "extendedmode",
},{
.type = UINT32,
.name = "writebuffers",
},{
/* end of list */
}};
struct struct_desc desc_v4l2_cropcap[] = {{
.type = ENUM32,
.name = "type",
.enums = desc_v4l2_buf_type,
.length = sizeof(desc_v4l2_buf_type) / sizeof(char*),
},{
.type = STRUCT,
.name = "bounds",
.desc = desc_v4l2_rect,
.length = sizeof(struct v4l2_rect),
},{
.type = STRUCT,
.name = "defrect",
.desc = desc_v4l2_rect,
.length = sizeof(struct v4l2_rect),
},{
.type = STRUCT,
.name = "pixelaspect",
.desc = desc_v4l2_fract,
.length = sizeof(struct v4l2_fract),
},{
/* end of list */
}};
struct struct_desc desc_v4l2_crop[] = {{
.type = ENUM32,
.name = "type",
.enums = desc_v4l2_buf_type,
.length = sizeof(desc_v4l2_buf_type) / sizeof(char*),
},{
.type = STRUCT,
.name = "c",
.desc = desc_v4l2_rect,
.length = sizeof(struct v4l2_rect),
},{
/* end of list */
}};
struct struct_desc desc_v4l2_standard[] = {{
.type = UINT32,
.name = "index",
},{
.type = BITS64,
.name = "id",
.bits = bits_standard,
},{
.type = STRING,
.name = "name",
.length = 24,
},{
.type = STRUCT,
.name = "frameperiod",
.desc = desc_v4l2_fract,
.length = sizeof(struct v4l2_fract),
},{
.type = UINT32,
.name = "framelines",
},{
/* end of list */
}};
struct struct_desc desc_v4l2_input[] = {{
.type = UINT32,
.name = "index",
},{
.type = STRING,
.name = "name",
.length = 32,
},{
.type = ENUM32,
.name = "type",
.enums = desc_input_type,
.length = sizeof(desc_input_type) / sizeof(char*),
},{
.type = UINT32,
.name = "audioset",
},{
.type = UINT32,
.name = "tuner",
},{
.type = BITS64,
.name = "std",
.bits = bits_standard
},{
.type = BITS32,
.name = "status",
.bits = bits_input_status,
},{
/* end of list */
}};
struct struct_desc desc_v4l2_output[] = {{
.type = UINT32,
.name = "index",
},{
.type = STRING,
.name = "name",
.length = 32,
},{
.type = UINT32,
.name = "type",
},{
.type = UINT32,
.name = "audioset",
},{
.type = UINT32,
.name = "modulator",
},{
.type = BITS64,
.name = "std",
.bits = bits_standard
},{
/* end of list */
}};
struct struct_desc desc_v4l2_control[] = {{
.type = UINT32,
.name = "id",
},{
.type = SINT32,
.name = "value",
},{
/* end of list */
}};
struct struct_desc desc_v4l2_queryctrl[] = {{
.type = UINT32,
.name = "id",
},{
.type = ENUM32,
.name = "type",
.enums = desc_v4l2_ctrl_type,
.length = sizeof(desc_v4l2_buf_type) / sizeof(char*),
},{
.type = STRING,
.name = "name",
.length = 32,
},{
.type = SINT32,
.name = "minimum",
},{
.type = SINT32,
.name = "maximum",
},{
.type = SINT32,
.name = "step",
},{
.type = SINT32,
.name = "default_value",
},{
.type = UINT32,
.name = "flags",
},{
/* end of list */
}};
struct struct_desc desc_v4l2_querymenu[] = {{
.type = UINT32,
.name = "id",
},{
.type = UINT32,
.name = "index",
},{
.type = STRING,
.name = "name",
.length = 32,
},{
.type = UINT32,
.name = "reserved",
},{
/* end of list */
}};
struct struct_desc desc_v4l2_tuner[] = {{
.type = UINT32,
.name = "index",
},{
.type = STRING,
.name = "name",
.length = 32,
},{
.type = ENUM32,
.name = "type",
.enums = desc_v4l2_tuner_type,
.length = sizeof(desc_v4l2_tuner_type) / sizeof(char*),
},{
.type = BITS32,
.name = "capability",
.bits = bits_tuner_cap,
},{
.type = UINT32,
.name = "rangelow",
},{
.type = UINT32,
.name = "rangehigh",
},{
.type = BITS32,
.name = "rxsubchans",
.bits = bits_tuner_rx,
},{
.type = ENUM32,
.name = "audmode",
.enums = desc_tuner2_mode,
.length = sizeof(desc_tuner2_mode) / sizeof(char*),
},{
.type = SINT32,
.name = "signal",
},{
.type = SINT32,
.name = "afc",
},{
/* end of list */
}};
struct struct_desc desc_v4l2_modulator[] = {{
.type = UINT32,
.name = "index",
},{
.type = STRING,
.name = "name",
.length = 32,
},{
.type = UINT32,
.name = "capability",
},{
.type = UINT32,
.name = "rangelow",
},{
.type = UINT32,
.name = "rangehigh",
},{
.type = UINT32,
.name = "txsubchans",
},{
/* end of list */
}};
struct struct_desc desc_v4l2_frequency[] = {{
.type = UINT32,
.name = "tuner",
},{
.type = ENUM32,
.name = "type",
.enums = desc_v4l2_tuner_type,
.length = sizeof(desc_v4l2_tuner_type) / sizeof(char*),
},{
.type = UINT32,
.name = "frequency",
},{
/* end of list */
}};
struct struct_desc desc_v4l2_audio[] = {{
.type = UINT32,
.name = "index",
},{
.type = STRING,
.name = "name",
.length = 32,
},{
.type = UINT32,
.name = "capability",
},{
.type = UINT32,
.name = "mode",
},{
/* end of list */
}};
struct struct_desc desc_v4l2_audioout[] = {{
.type = UINT32,
.name = "index",
},{
.type = STRING,
.name = "name",
.length = 32,
},{
.type = UINT32,
.name = "capability",
},{
.type = UINT32,
.name = "mode",
},{
/* end of list */
}};
struct struct_desc desc_v4l2_vbi_format[] = {{
.type = UINT32,
.name = "sampling_rate",
},{
.type = UINT32,
.name = "offset",
},{
.type = UINT32,
.name = "samples_per_line",
},{
.type = FOURCC,
.name = "sample_format",
},{
.type = UINT32,
.name = "start[0]",
},{
.type = UINT32,
.name = "start[1]",
},{
.type = UINT32,
.name = "count[0]",
},{
.type = UINT32,
.name = "count[1]",
},{
.type = UINT32,
.name = "flags",
},{
/* end of list */
}};
struct struct_desc desc_v4l2_format[] = {{
.type = ENUM32,
.name = "type",
.enums = desc_v4l2_buf_type,
.length = sizeof(desc_v4l2_buf_type) / sizeof(char*),
},{
.type = UNION,
.name = "fmt",
.u = {{
.value = V4L2_BUF_TYPE_VIDEO_CAPTURE,
.name = "pix",
.desc = desc_v4l2_pix_format,
},{
.value = V4L2_BUF_TYPE_VIDEO_OVERLAY,
.name = "win",
.desc = desc_v4l2_window,
},{
.value = V4L2_BUF_TYPE_VBI_CAPTURE,
.name = "vbi",
.desc = desc_v4l2_vbi_format,
},{
/* end of list */
}},
},{
/* end of list */
}};
struct struct_desc desc_v4l2_streamparm[] = {{
.type = ENUM32,
.name = "type",
.enums = desc_v4l2_buf_type,
.length = sizeof(desc_v4l2_buf_type) / sizeof(char*),
},{
/* FIXME ... */
/* end of list */
}};
struct struct_desc desc_v4l2_std_id[] = {{
.type = BITS64,
.name = "std",
.bits = bits_standard,
},{
/* end of list */
}};
/* ---------------------------------------------------------------------- */
struct ioctl_desc ioctls_v4l2[256] = {
[_IOC_NR(VIDIOC_QUERYCAP)] = {
.name = "VIDIOC_QUERYCAP",
.desc = desc_v4l2_capability,
},
[_IOC_NR(VIDIOC_ENUM_FMT)] = {
.name = "VIDIOC_ENUM_FMT",
.desc = desc_v4l2_fmtdesc,
},
[_IOC_NR(VIDIOC_G_FMT)] = {
.name = "VIDIOC_G_FMT",
.desc = desc_v4l2_format,
},
[_IOC_NR(VIDIOC_S_FMT)] = {
.name = "VIDIOC_S_FMT",
.desc = desc_v4l2_format,
},
#if 0
[_IOC_NR(VIDIOC_G_COMP)] = {
.name = "VIDIOC_G_COMP",
.desc = desc_v4l2_compression,
},
[_IOC_NR(VIDIOC_S_COMP)] = {
.name = "VIDIOC_S_COMP",
.desc = desc_v4l2_compression,
},
#endif
[_IOC_NR(VIDIOC_REQBUFS)] = {
.name = "VIDIOC_REQBUFS",
.desc = desc_v4l2_requestbuffers,
},
[_IOC_NR(VIDIOC_QUERYBUF)] = {
.name = "VIDIOC_QUERYBUF",
.desc = desc_v4l2_buffer,
},
[_IOC_NR(VIDIOC_G_FBUF)] = {
.name = "VIDIOC_G_FBUF",
.desc = desc_v4l2_framebuffer,
},
[_IOC_NR(VIDIOC_S_FBUF)] = {
.name = "VIDIOC_S_FBUF",
.desc = desc_v4l2_framebuffer,
},
[_IOC_NR(VIDIOC_OVERLAY)] = {
.name = "VIDIOC_OVERLAY",
.desc = desc_int,
},
[_IOC_NR(VIDIOC_QBUF)] = {
.name = "VIDIOC_QBUF",
.desc = desc_v4l2_buffer,
},
[_IOC_NR(VIDIOC_DQBUF)] = {
.name = "VIDIOC_DQBUF",
.desc = desc_v4l2_buffer,
},
[_IOC_NR(VIDIOC_STREAMON)] = {
.name = "VIDIOC_STREAMON",
.desc = desc_int,
},
[_IOC_NR(VIDIOC_STREAMOFF)] = {
.name = "VIDIOC_STREAMOFF",
.desc = desc_int,
},
[_IOC_NR(VIDIOC_G_PARM)] = {
.name = "VIDIOC_G_PARM",
.desc = desc_v4l2_streamparm,
},
[_IOC_NR(VIDIOC_S_PARM)] = {
.name = "VIDIOC_S_PARM",
.desc = desc_v4l2_streamparm,
},
[_IOC_NR(VIDIOC_G_STD)] = {
.name = "VIDIOC_G_STD",
.desc = desc_v4l2_std_id,
},
[_IOC_NR(VIDIOC_S_STD)] = {
.name = "VIDIOC_S_STD",
.desc = desc_v4l2_std_id,
},
[_IOC_NR(VIDIOC_ENUMSTD)] = {
.name = "VIDIOC_ENUMSTD",
.desc = desc_v4l2_standard,
},
[_IOC_NR(VIDIOC_ENUMINPUT)] = {
.name = "VIDIOC_ENUMINPUT",
.desc = desc_v4l2_input,
},
[_IOC_NR(VIDIOC_G_CTRL)] = {
.name = "VIDIOC_G_CTRL",
.desc = desc_v4l2_control,
},
[_IOC_NR(VIDIOC_S_CTRL)] = {
.name = "VIDIOC_S_CTRL",
.desc = desc_v4l2_control,
},
[_IOC_NR(VIDIOC_G_TUNER)] = {
.name = "VIDIOC_G_TUNER",
.desc = desc_v4l2_tuner,
},
[_IOC_NR(VIDIOC_S_TUNER)] = {
.name = "VIDIOC_S_TUNER",
.desc = desc_v4l2_tuner,
},
[_IOC_NR(VIDIOC_G_AUDIO)] = {
.name = "VIDIOC_G_AUDIO",
.desc = desc_v4l2_audio,
},
[_IOC_NR(VIDIOC_S_AUDIO)] = {
.name = "VIDIOC_S_AUDIO",
.desc = desc_v4l2_audio,
},
[_IOC_NR(VIDIOC_QUERYCTRL)] = {
.name = "VIDIOC_QUERYCTRL",
.desc = desc_v4l2_queryctrl,
},
[_IOC_NR(VIDIOC_QUERYMENU)] = {
.name = "VIDIOC_QUERYMENU",
.desc = desc_v4l2_querymenu,
},
[_IOC_NR(VIDIOC_G_INPUT)] = {
.name = "VIDIOC_G_INPUT",
.desc = desc_int,
},
[_IOC_NR(VIDIOC_S_INPUT)] = {
.name = "VIDIOC_S_INPUT",
.desc = desc_int,
},
[_IOC_NR(VIDIOC_G_OUTPUT)] = {
.name = "VIDIOC_G_OUTPUT",
.desc = desc_int,
},
[_IOC_NR(VIDIOC_S_OUTPUT)] = {
.name = "VIDIOC_S_OUTPUT",
.desc = desc_int,
},
[_IOC_NR(VIDIOC_ENUMOUTPUT)] = {
.name = "VIDIOC_ENUMOUTPUT",
.desc = desc_v4l2_output,
},
[_IOC_NR(VIDIOC_G_AUDOUT)] = {
.name = "VIDIOC_G_AUDOUT",
.desc = desc_v4l2_audioout,
},
[_IOC_NR(VIDIOC_S_AUDOUT)] = {
.name = "VIDIOC_S_AUDOUT",
.desc = desc_v4l2_audioout,
},
[_IOC_NR(VIDIOC_G_MODULATOR)] = {
.name = "VIDIOC_G_MODULATOR",
.desc = desc_v4l2_modulator,
},
[_IOC_NR(VIDIOC_S_MODULATOR)] = {
.name = "VIDIOC_S_MODULATOR",
.desc = desc_v4l2_modulator,
},
[_IOC_NR(VIDIOC_G_FREQUENCY)] = {
.name = "VIDIOC_G_FREQUENCY",
.desc = desc_v4l2_frequency,
},
[_IOC_NR(VIDIOC_S_FREQUENCY)] = {
.name = "VIDIOC_S_FREQUENCY",
.desc = desc_v4l2_frequency,
},
[_IOC_NR(VIDIOC_CROPCAP)] = {
.name = "VIDIOC_CROPCAP",
.desc = desc_v4l2_cropcap,
},
[_IOC_NR(VIDIOC_G_CROP)] = {
.name = "VIDIOC_G_CROP",
.desc = desc_v4l2_crop,
},
[_IOC_NR(VIDIOC_S_CROP)] = {
.name = "VIDIOC_S_CROP",
.desc = desc_v4l2_crop,
},
[_IOC_NR(VIDIOC_G_JPEGCOMP)] = {
.name = "VIDIOC_G_JPEGCOMP",
.desc = desc_v4l2_jpegcompression,
},
[_IOC_NR(VIDIOC_S_JPEGCOMP)] = {
.name = "VIDIOC_S_JPEGCOMP",
.desc = desc_v4l2_jpegcompression,
},
[_IOC_NR(VIDIOC_QUERYSTD)] = {
.name = "VIDIOC_QUERYSTD",
.desc = desc_v4l2_std_id,
},
[_IOC_NR(VIDIOC_TRY_FMT)] = {
.name = "VIDIOC_TRY_FMT",
.desc = desc_v4l2_format,
},
};
/* ---------------------------------------------------------------------- */
/*
* Local variables:
* c-basic-offset: 8
* End:
*/
See more files for this project here