diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2009-11-23 14:14:26 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-12-05 18:42:00 -0200 |
commit | 47a50307982b4a3de2d7270c28527c3a360269bf (patch) | |
tree | 783900bcb9cee9f0af331c0bd72d9f57d240f733 /Documentation/DocBook | |
parent | 0b398f4f124e2b4b03f9acf726370c8459610c5c (diff) |
V4L/DVB (13460): v4l2-spec: add missing V4L2-PIX-FMT-STV0680 description.
[mchehab@redhat.com: fix the wrong videodev2.h.xml file]
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'Documentation/DocBook')
-rw-r--r-- | Documentation/DocBook/v4l/pixfmt.xml | 5 | ||||
-rw-r--r-- | Documentation/DocBook/v4l/videodev2.h.xml | 1105 |
2 files changed, 558 insertions, 552 deletions
diff --git a/Documentation/DocBook/v4l/pixfmt.xml b/Documentation/DocBook/v4l/pixfmt.xml index 7d396a3785f..885968d6a2f 100644 --- a/Documentation/DocBook/v4l/pixfmt.xml +++ b/Documentation/DocBook/v4l/pixfmt.xml @@ -770,6 +770,11 @@ kernel sources in the file <filename>Documentation/video4linux/cx2341x/README.hm <entry>'S920'</entry> <entry>YUV 4:2:0 format of the gspca sn9c20x driver.</entry> </row> + <row id="V4L2-PIX-FMT-STV0680"> + <entry><constant>V4L2_PIX_FMT_STV0680</constant></entry> + <entry>'S680'</entry> + <entry>Bayer format of the gspca stv0680 driver.</entry> + </row> <row id="V4L2-PIX-FMT-WNVA"> <entry><constant>V4L2_PIX_FMT_WNVA</constant></entry> <entry>'WNVA'</entry> diff --git a/Documentation/DocBook/v4l/videodev2.h.xml b/Documentation/DocBook/v4l/videodev2.h.xml index 97002060ac4..bb6b07f9ea1 100644 --- a/Documentation/DocBook/v4l/videodev2.h.xml +++ b/Documentation/DocBook/v4l/videodev2.h.xml @@ -99,148 +99,148 @@ /* Four-character-code (FOURCC) */ #define v4l2_fourcc(a, b, c, d)\ - ((__u32)(a) | ((__u32)(b) << 8) | ((__u32)(c) << 16) | ((__u32)(d) << 24)) + ((__u32)(a) | ((__u32)(b) << 8) | ((__u32)(c) << 16) | ((__u32)(d) << 24)) /* * E N U M S */ enum <link linkend="v4l2-field">v4l2_field</link> { - V4L2_FIELD_ANY = 0, /* driver can choose from none, - top, bottom, interlaced - depending on whatever it thinks - is approximate ... */ - V4L2_FIELD_NONE = 1, /* this device has no fields ... */ - V4L2_FIELD_TOP = 2, /* top field only */ - V4L2_FIELD_BOTTOM = 3, /* bottom field only */ - V4L2_FIELD_INTERLACED = 4, /* both fields interlaced */ - V4L2_FIELD_SEQ_TB = 5, /* both fields sequential into one - buffer, top-bottom order */ - V4L2_FIELD_SEQ_BT = 6, /* same as above + bottom-top order */ - V4L2_FIELD_ALTERNATE = 7, /* both fields alternating into - separate buffers */ - V4L2_FIELD_INTERLACED_TB = 8, /* both fields interlaced, top field - first and the top field is - transmitted first */ - V4L2_FIELD_INTERLACED_BT = 9, /* both fields interlaced, top field - first and the bottom field is - transmitted first */ + V4L2_FIELD_ANY = 0, /* driver can choose from none, + top, bottom, interlaced + depending on whatever it thinks + is approximate ... */ + V4L2_FIELD_NONE = 1, /* this device has no fields ... */ + V4L2_FIELD_TOP = 2, /* top field only */ + V4L2_FIELD_BOTTOM = 3, /* bottom field only */ + V4L2_FIELD_INTERLACED = 4, /* both fields interlaced */ + V4L2_FIELD_SEQ_TB = 5, /* both fields sequential into one + buffer, top-bottom order */ + V4L2_FIELD_SEQ_BT = 6, /* same as above + bottom-top order */ + V4L2_FIELD_ALTERNATE = 7, /* both fields alternating into + separate buffers */ + V4L2_FIELD_INTERLACED_TB = 8, /* both fields interlaced, top field + first and the top field is + transmitted first */ + V4L2_FIELD_INTERLACED_BT = 9, /* both fields interlaced, top field + first and the bottom field is + transmitted first */ }; #define V4L2_FIELD_HAS_TOP(field) \ - ((field) == V4L2_FIELD_TOP ||\ - (field) == V4L2_FIELD_INTERLACED ||\ - (field) == V4L2_FIELD_INTERLACED_TB ||\ - (field) == V4L2_FIELD_INTERLACED_BT ||\ - (field) == V4L2_FIELD_SEQ_TB ||\ - (field) == V4L2_FIELD_SEQ_BT) + ((field) == V4L2_FIELD_TOP ||\ + (field) == V4L2_FIELD_INTERLACED ||\ + (field) == V4L2_FIELD_INTERLACED_TB ||\ + (field) == V4L2_FIELD_INTERLACED_BT ||\ + (field) == V4L2_FIELD_SEQ_TB ||\ + (field) == V4L2_FIELD_SEQ_BT) #define V4L2_FIELD_HAS_BOTTOM(field) \ - ((field) == V4L2_FIELD_BOTTOM ||\ - (field) == V4L2_FIELD_INTERLACED ||\ - (field) == V4L2_FIELD_INTERLACED_TB ||\ - (field) == V4L2_FIELD_INTERLACED_BT ||\ - (field) == V4L2_FIELD_SEQ_TB ||\ - (field) == V4L2_FIELD_SEQ_BT) + ((field) == V4L2_FIELD_BOTTOM ||\ + (field) == V4L2_FIELD_INTERLACED ||\ + (field) == V4L2_FIELD_INTERLACED_TB ||\ + (field) == V4L2_FIELD_INTERLACED_BT ||\ + (field) == V4L2_FIELD_SEQ_TB ||\ + (field) == V4L2_FIELD_SEQ_BT) #define V4L2_FIELD_HAS_BOTH(field) \ - ((field) == V4L2_FIELD_INTERLACED ||\ - (field) == V4L2_FIELD_INTERLACED_TB ||\ - (field) == V4L2_FIELD_INTERLACED_BT ||\ - (field) == V4L2_FIELD_SEQ_TB ||\ - (field) == V4L2_FIELD_SEQ_BT) + ((field) == V4L2_FIELD_INTERLACED ||\ + (field) == V4L2_FIELD_INTERLACED_TB ||\ + (field) == V4L2_FIELD_INTERLACED_BT ||\ + (field) == V4L2_FIELD_SEQ_TB ||\ + (field) == V4L2_FIELD_SEQ_BT) enum <link linkend="v4l2-buf-type">v4l2_buf_type</link> { - V4L2_BUF_TYPE_VIDEO_CAPTURE = 1, - V4L2_BUF_TYPE_VIDEO_OUTPUT = 2, - V4L2_BUF_TYPE_VIDEO_OVERLAY = 3, - V4L2_BUF_TYPE_VBI_CAPTURE = 4, - V4L2_BUF_TYPE_VBI_OUTPUT = 5, - V4L2_BUF_TYPE_SLICED_VBI_CAPTURE = 6, - V4L2_BUF_TYPE_SLICED_VBI_OUTPUT = 7, + V4L2_BUF_TYPE_VIDEO_CAPTURE = 1, + V4L2_BUF_TYPE_VIDEO_OUTPUT = 2, + V4L2_BUF_TYPE_VIDEO_OVERLAY = 3, + V4L2_BUF_TYPE_VBI_CAPTURE = 4, + V4L2_BUF_TYPE_VBI_OUTPUT = 5, + V4L2_BUF_TYPE_SLICED_VBI_CAPTURE = 6, + V4L2_BUF_TYPE_SLICED_VBI_OUTPUT = 7, #if 1 /*KEEP*/ - /* Experimental */ - V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY = 8, + /* Experimental */ + V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY = 8, #endif - V4L2_BUF_TYPE_PRIVATE = 0x80, + V4L2_BUF_TYPE_PRIVATE = 0x80, }; enum <link linkend="v4l2-ctrl-type">v4l2_ctrl_type</link> { - V4L2_CTRL_TYPE_INTEGER = 1, - V4L2_CTRL_TYPE_BOOLEAN = 2, - V4L2_CTRL_TYPE_MENU = 3, - V4L2_CTRL_TYPE_BUTTON = 4, - V4L2_CTRL_TYPE_INTEGER64 = 5, - V4L2_CTRL_TYPE_CTRL_CLASS = 6, - V4L2_CTRL_TYPE_STRING = 7, + V4L2_CTRL_TYPE_INTEGER = 1, + V4L2_CTRL_TYPE_BOOLEAN = 2, + V4L2_CTRL_TYPE_MENU = 3, + V4L2_CTRL_TYPE_BUTTON = 4, + V4L2_CTRL_TYPE_INTEGER64 = 5, + V4L2_CTRL_TYPE_CTRL_CLASS = 6, + V4L2_CTRL_TYPE_STRING = 7, }; enum <link linkend="v4l2-tuner-type">v4l2_tuner_type</link> { - V4L2_TUNER_RADIO = 1, - V4L2_TUNER_ANALOG_TV = 2, - V4L2_TUNER_DIGITAL_TV = 3, + V4L2_TUNER_RADIO = 1, + V4L2_TUNER_ANALOG_TV = 2, + V4L2_TUNER_DIGITAL_TV = 3, }; enum <link linkend="v4l2-memory">v4l2_memory</link> { - V4L2_MEMORY_MMAP = 1, - V4L2_MEMORY_USERPTR = 2, - V4L2_MEMORY_OVERLAY = 3, + V4L2_MEMORY_MMAP = 1, + V4L2_MEMORY_USERPTR = 2, + V4L2_MEMORY_OVERLAY = 3, }; /* see also http://vektor.theorem.ca/graphics/ycbcr/ */ enum <link linkend="v4l2-colorspace">v4l2_colorspace</link> { - /* ITU-R 601 -- broadcast NTSC/PAL */ - V4L2_COLORSPACE_SMPTE170M = 1, + /* ITU-R 601 -- broadcast NTSC/PAL */ + V4L2_COLORSPACE_SMPTE170M = 1, - /* 1125-Line (US) HDTV */ - V4L2_COLORSPACE_SMPTE240M = 2, + /* 1125-Line (US) HDTV */ + V4L2_COLORSPACE_SMPTE240M = 2, - /* HD and modern captures. */ - V4L2_COLORSPACE_REC709 = 3, + /* HD and modern captures. */ + V4L2_COLORSPACE_REC709 = 3, - /* broken BT878 extents (601, luma range 16-253 instead of 16-235) */ - V4L2_COLORSPACE_BT878 = 4, + /* broken BT878 extents (601, luma range 16-253 instead of 16-235) */ + V4L2_COLORSPACE_BT878 = 4, - /* These should be useful. Assume 601 extents. */ - V4L2_COLORSPACE_470_SYSTEM_M = 5, - V4L2_COLORSPACE_470_SYSTEM_BG = 6, + /* These should be useful. Assume 601 extents. */ + V4L2_COLORSPACE_470_SYSTEM_M = 5, + V4L2_COLORSPACE_470_SYSTEM_BG = 6, - /* I know there will be cameras that send this. So, this is - * unspecified chromaticities and full 0-255 on each of the - * Y'CbCr components - */ - V4L2_COLORSPACE_JPEG = 7, + /* I know there will be cameras that send this. So, this is + * unspecified chromaticities and full 0-255 on each of the + * Y'CbCr components + */ + V4L2_COLORSPACE_JPEG = 7, - /* For RGB colourspaces, this is probably a good start. */ - V4L2_COLORSPACE_SRGB = 8, + /* For RGB colourspaces, this is probably a good start. */ + V4L2_COLORSPACE_SRGB = 8, }; enum <link linkend="v4l2-priority">v4l2_priority</link> { - V4L2_PRIORITY_UNSET = 0, /* not initialized */ - V4L2_PRIORITY_BACKGROUND = 1, - V4L2_PRIORITY_INTERACTIVE = 2, - V4L2_PRIORITY_RECORD = 3, - V4L2_PRIORITY_DEFAULT = V4L2_PRIORITY_INTERACTIVE, + V4L2_PRIORITY_UNSET = 0, /* not initialized */ + V4L2_PRIORITY_BACKGROUND = 1, + V4L2_PRIORITY_INTERACTIVE = 2, + V4L2_PRIORITY_RECORD = 3, + V4L2_PRIORITY_DEFAULT = V4L2_PRIORITY_INTERACTIVE, }; struct <link linkend="v4l2-rect">v4l2_rect</link> { - __s32 left; - __s32 top; - __s32 width; - __s32 height; + __s32 left; + __s32 top; + __s32 width; + __s32 height; }; struct <link linkend="v4l2-fract">v4l2_fract</link> { - __u32 numerator; - __u32 denominator; + __u32 numerator; + __u32 denominator; }; /* * D R I V E R C A P A B I L I T I E S */ struct <link linkend="v4l2-capability">v4l2_capability</link> { - __u8 driver[16]; /* i.e.ie; "bttv" */ - __u8 card[32]; /* i.e.ie; "Hauppauge WinTV" */ - __u8 bus_info[32]; /* "PCI:" + pci_name(pci_dev) */ - __u32 version; /* should use KERNEL_VERSION() */ - __u32 capabilities; /* Device capabilities */ - __u32 reserved[4]; + __u8 driver[16]; /* i.e.ie; "bttv" */ + __u8 card[32]; /* i.e.ie; "Hauppauge WinTV" */ + __u8 bus_info[32]; /* "PCI:" + pci_name(pci_dev) */ + __u32 version; /* should use KERNEL_VERSION() */ + __u32 capabilities; /* Device capabilities */ + __u32 reserved[4]; }; /* Values for 'capabilities' field */ @@ -269,14 +269,14 @@ struct <link linkend="v4l2-capability">v4l2_capability</link> { * V I D E O I M A G E F O R M A T */ struct <link linkend="v4l2-pix-format">v4l2_pix_format</link> { - __u32 width; - __u32 height; - __u32 pixelformat; - enum <link linkend="v4l2-field">v4l2_field</link> field; - __u32 bytesperline; /* for padding, zero if unused */ - __u32 sizeimage; - enum <link linkend="v4l2-colorspace">v4l2_colorspace</link> colorspace; - __u32 priv; /* private data, depends on pixelformat */ + __u32 width; + __u32 height; + __u32 pixelformat; + enum <link linkend="v4l2-field">v4l2_field</link> field; + __u32 bytesperline; /* for padding, zero if unused */ + __u32 sizeimage; + enum <link linkend="v4l2-colorspace">v4l2_colorspace</link> colorspace; + __u32 priv; /* private data, depends on pixelformat */ }; /* Pixel format FOURCC depth Description */ @@ -331,12 +331,12 @@ struct <link linkend="v4l2-pix-format">v4l2_pix_format</link> { #define <link linkend="V4L2-PIX-FMT-SGBRG8">V4L2_PIX_FMT_SGBRG8</link> v4l2_fourcc('G', 'B', 'R', 'G') /* 8 GBGB.. RGRG.. */ #define <link linkend="V4L2-PIX-FMT-SGRBG8">V4L2_PIX_FMT_SGRBG8</link> v4l2_fourcc('G', 'R', 'B', 'G') /* 8 GRGR.. BGBG.. */ #define <link linkend="V4L2-PIX-FMT-SGRBG10">V4L2_PIX_FMT_SGRBG10</link> v4l2_fourcc('B', 'A', '1', '0') /* 10bit raw bayer */ - /* 10bit raw bayer DPCM compressed to 8 bits */ + /* 10bit raw bayer DPCM compressed to 8 bits */ #define <link linkend="V4L2-PIX-FMT-SGRBG10DPCM8">V4L2_PIX_FMT_SGRBG10DPCM8</link> v4l2_fourcc('B', 'D', '1', '0') - /* - * 10bit raw bayer, expanded to 16 bits - * xxxxrrrrrrrrrrxxxxgggggggggg xxxxggggggggggxxxxbbbbbbbbbb... - */ + /* + * 10bit raw bayer, expanded to 16 bits + * xxxxrrrrrrrrrrxxxxgggggggggg xxxxggggggggggxxxxbbbbbbbbbb... + */ #define <link linkend="V4L2-PIX-FMT-SBGGR16">V4L2_PIX_FMT_SBGGR16</link> v4l2_fourcc('B', 'Y', 'R', '2') /* 16 BGBG.. GRGR.. */ /* compressed formats */ @@ -363,88 +363,89 @@ struct <link linkend="v4l2-pix-format">v4l2_pix_format</link> { #define <link linkend="V4L2-PIX-FMT-OV511">V4L2_PIX_FMT_OV511</link> v4l2_fourcc('O', '5', '1', '1') /* ov511 JPEG */ #define <link linkend="V4L2-PIX-FMT-OV518">V4L2_PIX_FMT_OV518</link> v4l2_fourcc('O', '5', '1', '8') /* ov518 JPEG */ #define <link linkend="V4L2-PIX-FMT-TM6000">V4L2_PIX_FMT_TM6000</link> v4l2_fourcc('T', 'M', '6', '0') /* tm5600/tm60x0 */ +#define <link linkend="V4L2-PIX-FMT-STV0680">V4L2_PIX_FMT_STV0680</link> v4l2_fourcc('S', '6', '8', '0') /* stv0680 bayer */ /* * F O R M A T E N U M E R A T I O N */ struct <link linkend="v4l2-fmtdesc">v4l2_fmtdesc</link> { - __u32 index; /* Format number */ - enum <link linkend="v4l2-buf-type">v4l2_buf_type</link> type; /* buffer type */ - __u32 flags; - __u8 description[32]; /* Description string */ - __u32 pixelformat; /* Format fourcc */ - __u32 reserved[4]; + __u32 index; /* Format number */ + enum <link linkend="v4l2-buf-type">v4l2_buf_type</link> type; /* buffer type */ + __u32 flags; + __u8 description[32]; /* Description string */ + __u32 pixelformat; /* Format fourcc */ + __u32 reserved[4]; }; #define V4L2_FMT_FLAG_COMPRESSED 0x0001 #define V4L2_FMT_FLAG_EMULATED 0x0002 #if 1 /*KEEP*/ - /* Experimental Frame Size and frame rate enumeration */ + /* Experimental Frame Size and frame rate enumeration */ /* * F R A M E S I Z E E N U M E R A T I O N */ enum <link linkend="v4l2-frmsizetypes">v4l2_frmsizetypes</link> { - V4L2_FRMSIZE_TYPE_DISCRETE = 1, - V4L2_FRMSIZE_TYPE_CONTINUOUS = 2, - V4L2_FRMSIZE_TYPE_STEPWISE = 3, + V4L2_FRMSIZE_TYPE_DISCRETE = 1, + V4L2_FRMSIZE_TYPE_CONTINUOUS = 2, + V4L2_FRMSIZE_TYPE_STEPWISE = 3, }; struct <link linkend="v4l2-frmsize-discrete">v4l2_frmsize_discrete</link> { - __u32 width; /* Frame width [pixel] */ - __u32 height; /* Frame height [pixel] */ + __u32 width; /* Frame width [pixel] */ + __u32 height; /* Frame height [pixel] */ }; struct <link linkend="v4l2-frmsize-stepwise">v4l2_frmsize_stepwise</link> { - __u32 min_width; /* Minimum frame width [pixel] */ - __u32 max_width; /* Maximum frame width [pixel] */ - __u32 step_width; /* Frame width step size [pixel] */ - __u32 min_height; /* Minimum frame height [pixel] */ - __u32 max_height; /* Maximum frame height [pixel] */ - __u32 step_height; /* Frame height step size [pixel] */ + __u32 min_width; /* Minimum frame width [pixel] */ + __u32 max_width; /* Maximum frame width [pixel] */ + __u32 step_width; /* Frame width step size [pixel] */ + __u32 min_height; /* Minimum frame height [pixel] */ + __u32 max_height; /* Maximum frame height [pixel] */ + __u32 step_height; /* Frame height step size [pixel] */ }; struct <link linkend="v4l2-frmsizeenum">v4l2_frmsizeenum</link> { - __u32 index; /* Frame size number */ - __u32 pixel_format; /* Pixel format */ - __u32 type; /* Frame size type the device supports. */ + __u32 index; /* Frame size number */ + __u32 pixel_format; /* Pixel format */ + __u32 type; /* Frame size type the device supports. */ - union { /* Frame size */ - struct <link linkend="v4l2-frmsize-discrete">v4l2_frmsize_discrete</link> discrete; - struct <link linkend="v4l2-frmsize-stepwise">v4l2_frmsize_stepwise</link> stepwise; - }; + union { /* Frame size */ + struct <link linkend="v4l2-frmsize-discrete">v4l2_frmsize_discrete</link> discrete; + struct <link linkend="v4l2-frmsize-stepwise">v4l2_frmsize_stepwise</link> stepwise; + }; - __u32 reserved[2]; /* Reserved space for future use */ + __u32 reserved[2]; /* Reserved space for future use */ }; /* * F R A M E R A T E E N U M E R A T I O N */ enum <link linkend="v4l2-frmivaltypes">v4l2_frmivaltypes</link> { - V4L2_FRMIVAL_TYPE_DISCRETE = 1, - V4L2_FRMIVAL_TYPE_CONTINUOUS = 2, - V4L2_FRMIVAL_TYPE_STEPWISE = 3, + V4L2_FRMIVAL_TYPE_DISCRETE = 1, + V4L2_FRMIVAL_TYPE_CONTINUOUS = 2, + V4L2_FRMIVAL_TYPE_STEPWISE = 3, }; struct <link linkend="v4l2-frmival-stepwise">v4l2_frmival_stepwise</link> { - struct <link linkend="v4l2-fract">v4l2_fract</link> min; /* Minimum frame interval [s] */ - struct <link linkend="v4l2-fract">v4l2_fract</link> max; /* Maximum frame interval [s] */ - struct <link linkend="v4l2-fract">v4l2_fract</link> step; /* Frame interval step size [s] */ + struct <link linkend="v4l2-fract">v4l2_fract</link> min; /* Minimum frame interval [s] */ + struct <link linkend="v4l2-fract">v4l2_fract</link> max; /* Maximum frame interval [s] */ + struct <link linkend="v4l2-fract">v4l2_fract</link> step; /* Frame interval step size [s] */ }; struct <link linkend="v4l2-frmivalenum">v4l2_frmivalenum</link> { - __u32 index; /* Frame format index */ - __u32 pixel_format; /* Pixel format */ - __u32 width; /* Frame width */ - __u32 height; /* Frame height */ - __u32 type; /* Frame interval type the device supports. */ + __u32 index; /* Frame format index */ + __u32 pixel_format; /* Pixel format */ + __u32 width; /* Frame width */ + __u32 height; /* Frame height */ + __u32 type; /* Frame interval type the device supports. */ - union { /* Frame interval */ - struct <link linkend="v4l2-fract">v4l2_fract</link> discrete; - struct <link linkend="v4l2-frmival-stepwise">v4l2_frmival_stepwise</link> stepwise; - }; + union { /* Frame interval */ + struct <link linkend="v4l2-fract">v4l2_fract</link> discrete; + struct <link linkend="v4l2-frmival-stepwise">v4l2_frmival_stepwise</link> stepwise; + }; - __u32 reserved[2]; /* Reserved space for future use */ + __u32 reserved[2]; /* Reserved space for future use */ }; #endif @@ -452,13 +453,13 @@ struct <link linkend="v4l2-frmivalenum">v4l2_frmivalenum</link> { * T I M E C O D E */ struct <link linkend="v4l2-timecode">v4l2_timecode</link> { - __u32 type; - __u32 flags; - __u8 frames; - __u8 seconds; - __u8 minutes; - __u8 hours; - __u8 userbits[4]; + __u32 type; + __u32 flags; + __u8 frames; + __u8 seconds; + __u8 minutes; + __u8 hours; + __u8 userbits[4]; }; /* Type */ @@ -477,63 +478,63 @@ struct <link linkend="v4l2-timecode">v4l2_timecode</link> { /* The above is based on SMPTE timecodes */ struct <link linkend="v4l2-jpegcompression">v4l2_jpegcompression</link> { - int quality; - - int APPn; /* Number of APP segment to be written, - * must be 0..15 */ - int APP_len; /* Length of data in JPEG APPn segment */ - char APP_data[60]; /* Data in the JPEG APPn segment. */ - - int COM_len; /* Length of data in JPEG COM segment */ - char COM_data[60]; /* Data in JPEG COM segment */ - - __u32 jpeg_markers; /* Which markers should go into the JPEG - * output. Unless you exactly know what - * you do, leave them untouched. - * Inluding less markers will make the - * resulting code smaller, but there will - * be fewer aplications which can read it. - * The presence of the APP and COM marker - * is influenced by APP_len and COM_len - * ONLY, not by this property! */ + int quality; + + int APPn; /* Number of APP segment to be written, + * must be 0..15 */ + int APP_len; /* Length of data in JPEG APPn segment */ + char APP_data[60]; /* Data in the JPEG APPn segment. */ + + int COM_len; /* Length of data in JPEG COM segment */ + char COM_data[60]; /* Data in JPEG COM segment */ + + __u32 jpeg_markers; /* Which markers should go into the JPEG + * output. Unless you exactly know what + * you do, leave them untouched. + * Inluding less markers will make the + * resulting code smaller, but there will + * be fewer aplications which can read it. + * The presence of the APP and COM marker + * is influenced by APP_len and COM_len + * ONLY, not by this property! */ #define V4L2_JPEG_MARKER_DHT (1<<3) /* Define Huffman Tables */ #define V4L2_JPEG_MARKER_DQT (1<<4) /* Define Quantization Tables */ #define V4L2_JPEG_MARKER_DRI (1<<5) /* Define Restart Interval */ #define V4L2_JPEG_MARKER_COM (1<<6) /* Comment segment */ #define V4L2_JPEG_MARKER_APP (1<<7) /* App segment, driver will - * allways use APP0 */ + * allways use APP0 */ }; /* * M E M O R Y - M A P P I N G B U F F E R S */ struct <link linkend="v4l2-requestbuffers">v4l2_requestbuffers</link> { - __u32 count; - enum <link linkend="v4l2-buf-type">v4l2_buf_type</link> type; - enum <link linkend="v4l2-memory">v4l2_memory</link> memory; - __u32 reserved[2]; + __u32 count; + enum <link linkend="v4l2-buf-type">v4l2_buf_type</link> type; + enum <link linkend="v4l2-memory">v4l2_memory</link> memory; + __u32 reserved[2]; }; struct <link linkend="v4l2-buffer">v4l2_buffer</link> { - __u32 index; - enum <link linkend="v4l2-buf-type">v4l2_buf_type</link> type; - __u32 bytesused; - __u32 flags; - enum <link linkend="v4l2-field">v4l2_field</link> field; - struct timeval timestamp; - struct <link linkend="v4l2-timecode">v4l2_timecode</link> timecode; - __u32 sequence; - - /* memory location */ - enum <link linkend="v4l2-memory">v4l2_memory</link> memory; - union { - __u32 offset; - unsigned long userptr; - } m; - __u32 length; - __u32 input; - __u32 reserved; + __u32 index; + enum <link linkend="v4l2-buf-type">v4l2_buf_type</link> type; + __u32 bytesused; + __u32 flags; + enum <link linkend="v4l2-field">v4l2_field</link> field; + struct timeval timestamp; + struct <link linkend="v4l2-timecode">v4l2_timecode</link> timecode; + __u32 sequence; + + /* memory location */ + enum <link linkend="v4l2-memory">v4l2_memory</link> memory; + union { + __u32 offset; + unsigned long userptr; + } m; + __u32 length; + __u32 input; + __u32 reserved; }; /* Flags for 'flags' field */ @@ -550,12 +551,12 @@ struct <link linkend="v4l2-buffer">v4l2_buffer</link> { * O V E R L A Y P R E V I E W */ struct <link linkend="v4l2-framebuffer">v4l2_framebuffer</link> { - __u32 capability; - __u32 flags; + __u32 capability; + __u32 flags; /* FIXME: in theory we should pass something like PCI device + memory * region + offset instead of some physical address */ - void *base; - struct <link linkend="v4l2-pix-format">v4l2_pix_format</link> fmt; + void *base; + struct <link linkend="v4l2-pix-format">v4l2_pix_format</link> fmt; }; /* Flags for the 'capability' field. Read only */ #define V4L2_FBUF_CAP_EXTERNOVERLAY 0x0001 @@ -574,30 +575,30 @@ struct <link linkend="v4l2-framebuffer">v4l2_framebuffer</link> { #define V4L2_FBUF_FLAG_LOCAL_INV_ALPHA 0x0020 struct <link linkend="v4l2-clip">v4l2_clip</link> { - struct <link linkend="v4l2-rect">v4l2_rect</link> c; - struct <link linkend="v4l2-clip">v4l2_clip</link> __user *next; + struct <link linkend="v4l2-rect">v4l2_rect</link> c; + struct <link linkend="v4l2-clip">v4l2_clip</link> __user *next; }; struct <link linkend="v4l2-window">v4l2_window</link> { - struct <link linkend="v4l2-rect">v4l2_rect</link> w; - enum <link linkend="v4l2-field">v4l2_field</link> field; - __u32 chromakey; - struct <link linkend="v4l2-clip">v4l2_clip</link> __user *clips; - __u32 clipcount; - void __user *bitmap; - __u8 global_alpha; + struct <link linkend="v4l2-rect">v4l2_rect</link> w; + enum <link linkend="v4l2-field">v4l2_field</link> field; + __u32 chromakey; + struct <link linkend="v4l2-clip">v4l2_clip</link> __user *clips; + __u32 clipcount; + void __user *bitmap; + __u8 global_alpha; }; /* * C A P T U R E P A R A M E T E R S */ struct <link linkend="v4l2-captureparm">v4l2_captureparm</link> { - __u32 capability; /* Supported modes */ - __u32 capturemode; /* Current mode */ - struct <link linkend="v4l2-fract">v4l2_fract</link> timeperframe; /* Time per frame in .1us units */ - __u32 extendedmode; /* Driver-specific extensions */ - __u32 readbuffers; /* # of buffers for read */ - __u32 reserved[4]; + __u32 capability; /* Supported modes */ + __u32 capturemode; /* Current mode */ + struct <link linkend="v4l2-fract">v4l2_fract</link> timeperframe; /* Time per frame in .1us units */ + __u32 extendedmode; /* Driver-specific extensions */ + __u32 readbuffers; /* # of buffers for read */ + __u32 reserved[4]; }; /* Flags for 'capability' and 'capturemode' fields */ @@ -605,27 +606,27 @@ struct <link linkend="v4l2-captureparm">v4l2_captureparm</link> { #define V4L2_CAP_TIMEPERFRAME 0x1000 /* timeperframe field is supported */ struct <link linkend="v4l2-outputparm">v4l2_outputparm</link> { - __u32 capability; /* Supported modes */ - __u32 outputmode; /* Current mode */ - struct <link linkend="v4l2-fract">v4l2_fract</link> timeperframe; /* Time per frame in seconds */ - __u32 extendedmode; /* Driver-specific extensions */ - __u32 writebuffers; /* # of buffers for write */ - __u32 reserved[4]; + __u32 capability; /* Supported modes */ + __u32 outputmode; /* Current mode */ + struct <link linkend="v4l2-fract">v4l2_fract</link> timeperframe; /* Time per frame in seconds */ + __u32 extendedmode; /* Driver-specific extensions */ + __u32 writebuffers; /* # of buffers for write */ + __u32 reserved[4]; }; /* * I N P U T I M A G E C R O P P I N G */ struct <link linkend="v4l2-cropcap">v4l2_cropcap</link> { - enum <link linkend="v4l2-buf-type">v4l2_buf_type</link> type; - struct <link linkend="v4l2-rect">v4l2_rect</link> bounds; - struct <link linkend="v4l2-rect">v4l2_rect</link> defrect; - struct <link linkend="v4l2-fract">v4l2_fract</link> pixelaspect; + enum <link linkend="v4l2-buf-type">v4l2_buf_type</link> type; + struct <link linkend="v4l2-rect">v4l2_rect</link> bounds; + struct <link linkend="v4l2-rect">v4l2_rect</link> defrect; + struct <link linkend="v4l2-fract">v4l2_fract</link> pixelaspect; }; struct <link linkend="v4l2-crop">v4l2_crop</link> { - enum <link linkend="v4l2-buf-type">v4l2_buf_type</link> type; - struct <link linkend="v4l2-rect">v4l2_rect</link> c; + enum <link linkend="v4l2-buf-type">v4l2_buf_type</link> type; + struct <link linkend="v4l2-rect">v4l2_rect</link> c; }; /* @@ -684,64 +685,64 @@ typedef __u64 v4l2_std_id; /* some common needed stuff */ #define V4L2_STD_PAL_BG (V4L2_STD_PAL_B |\ - V4L2_STD_PAL_B1 |\ - V4L2_STD_PAL_G) + V4L2_STD_PAL_B1 |\ + V4L2_STD_PAL_G) #define V4L2_STD_PAL_DK (V4L2_STD_PAL_D |\ - V4L2_STD_PAL_D1 |\ - V4L2_STD_PAL_K) + V4L2_STD_PAL_D1 |\ + V4L2_STD_PAL_K) #define V4L2_STD_PAL (V4L2_STD_PAL_BG |\ - V4L2_STD_PAL_DK |\ - V4L2_STD_PAL_H |\ - V4L2_STD_PAL_I) + V4L2_STD_PAL_DK |\ + V4L2_STD_PAL_H |\ + V4L2_STD_PAL_I) #define V4L2_STD_NTSC (V4L2_STD_NTSC_M |\ - V4L2_STD_NTSC_M_JP |\ - V4L2_STD_NTSC_M_KR) + V4L2_STD_NTSC_M_JP |\ + V4L2_STD_NTSC_M_KR) #define V4L2_STD_SECAM_DK (V4L2_STD_SECAM_D |\ - V4L2_STD_SECAM_K |\ - V4L2_STD_SECAM_K1) + V4L2_STD_SECAM_K |\ + V4L2_STD_SECAM_K1) #define V4L2_STD_SECAM (V4L2_STD_SECAM_B |\ - V4L2_STD_SECAM_G |\ - V4L2_STD_SECAM_H |\ - V4L2_STD_SECAM_DK |\ - V4L2_STD_SECAM_L |\ - V4L2_STD_SECAM_LC) + V4L2_STD_SECAM_G |\ + V4L2_STD_SECAM_H |\ + V4L2_STD_SECAM_DK |\ + V4L2_STD_SECAM_L |\ + V4L2_STD_SECAM_LC) #define V4L2_STD_525_60 (V4L2_STD_PAL_M |\ - V4L2_STD_PAL_60 |\ - V4L2_STD_NTSC |\ - V4L2_STD_NTSC_443) + V4L2_STD_PAL_60 |\ + V4L2_STD_NTSC |\ + V4L2_STD_NTSC_443) #define V4L2_STD_625_50 (V4L2_STD_PAL |\ - V4L2_STD_PAL_N |\ - V4L2_STD_PAL_Nc |\ - V4L2_STD_SECAM) + V4L2_STD_PAL_N |\ + V4L2_STD_PAL_Nc |\ + V4L2_STD_SECAM) #define V4L2_STD_ATSC (V4L2_STD_ATSC_8_VSB |\ - V4L2_STD_ATSC_16_VSB) + V4L2_STD_ATSC_16_VSB) #define V4L2_STD_UNKNOWN 0 #define V4L2_STD_ALL (V4L2_STD_525_60 |\ - V4L2_STD_625_50) + V4L2_STD_625_50) struct <link linkend="v4l2-standard">v4l2_standard</link> { - __u32 index; - v4l2_std_id id; - __u8 name[24]; - struct <link linkend="v4l2-fract">v4l2_fract</link> frameperiod; /* Frames, not fields */ - __u32 framelines; - __u32 reserved[4]; + __u32 index; + v4l2_std_id id; + __u8 name[24]; + struct <link linkend="v4l2-fract">v4l2_fract</link> frameperiod; /* Frames, not fields */ + __u32 framelines; + __u32 reserved[4]; }; /* * V I D E O I N P U T S */ struct <link linkend="v4l2-input">v4l2_input</link> { - __u32 index; /* Which input */ - __u8 name[32]; /* Label */ - __u32 type; /* Type of input */ - __u32 audioset; /* Associated audios (bitfield) */ - __u32 tuner; /* Associated tuner */ - v4l2_std_id std; - __u32 status; - __u32 reserved[4]; + __u32 index; /* Which input */ + __u8 name[32]; /* Label */ + __u32 type; /* Type of input */ + __u32 audioset; /* Associated audios (bitfield) */ + __u32 tuner; /* Associated tuner */ + v4l2_std_id std; + __u32 status; + __u32 reserved[4]; }; /* Values for the 'type' field */ @@ -776,13 +777,13 @@ struct <link linkend="v4l2-input">v4l2_input</link> { * V I D E O O U T P U T S */ struct <link linkend="v4l2-output">v4l2_output</link> { - __u32 index; /* Which output */ - __u8 name[32]; /* Label */ - __u32 type; /* Type of output */ - __u32 audioset; /* Associated audios (bitfield) */ - __u32 modulator; /* Associated modulator */ - v4l2_std_id std; - __u32 reserved[4]; + __u32 index; /* Which output */ + __u8 name[32]; /* Label */ + __u32 type; /* Type of output */ + __u32 audioset; /* Associated audios (bitfield) */ + __u32 modulator; /* Associated modulator */ + v4l2_std_id std; + __u32 reserved[4]; }; /* Values for the 'type' field */ #define V4L2_OUTPUT_TYPE_MODULATOR 1 @@ -793,27 +794,27 @@ struct <link linkend="v4l2-output">v4l2_output</link> { * C O N T R O L S */ struct <link linkend="v4l2-control">v4l2_control</link> { - __u32 id; - __s32 value; + __u32 id; + __s32 value; }; struct <link linkend="v4l2-ext-control">v4l2_ext_control</link> { - __u32 id; - __u32 size; - __u32 reserved2[1]; - union { - __s32 value; - __s64 value64; - char *string; - }; + __u32 id; + __u32 size; + __u32 reserved2[1]; + union { + __s32 value; + __s64 value64; + char *string; + }; } __attribute__ ((packed)); struct <link linkend="v4l2-ext-controls">v4l2_ext_controls</link> { - __u32 ctrl_class; - __u32 count; - __u32 error_idx; - __u32 reserved[2]; - struct <link linkend="v4l2-ext-control">v4l2_ext_control</link> *controls; + __u32 ctrl_class; + __u32 count; + __u32 error_idx; + __u32 reserved[2]; + struct <link linkend="v4l2-ext-control">v4l2_ext_control</link> *controls; }; /* Values for ctrl_class field */ @@ -828,23 +829,23 @@ struct <link linkend="v4l2-ext-controls">v4l2_ext_controls</link> { /* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */ struct <link linkend="v4l2-queryctrl">v4l2_queryctrl</link> { - __u32 id; - enum <link linkend="v4l2-ctrl-type">v4l2_ctrl_type</link> type; - __u8 name[32]; /* Whatever */ - __s3 |