Code Search for Developers
 
 
  

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

aMSN

A very nice MSN compatible messenger application, aMSN Messenger is a multiplatform MSN messenger clone. Works pretty much like its Windows based counterpart. Perfect for keeping in touch with those friends who have not yet seen the light. Works on linux

Project homepage: http://sourceforge.net/projects/amsn
Programming language(s): C,C++,PHP,Tcl,XML
License: other

  ioctl2desc
  struct-dump.c
  struct-dump.h
  struct-v4l.c
  struct-v4l.h
  struct-v4l2.c
  struct-v4l2.h
  struct2desc