aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/videodev2.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-01-15 15:49:56 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2012-01-15 15:49:56 -0500
commit122804ecb59493fbb4d31b3ba9ac59faaf45276f (patch)
treecff4d8a158c412e4a8d3abc8d91bb0eb52b01c9a /include/linux/videodev2.h
parent16008d641670571ff4cd750b416c7caf2d89f467 (diff)
parent126400033940afb658123517a2e80eb68259fbd7 (diff)
Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (655 commits) [media] revert patch: HDIC HD29L2 DMB-TH USB2.0 reference design driver mb86a20s: Add a few more register settings at the init seq mb86a20s: Group registers into the same line [media] [PATCH] don't reset the delivery system on DTV_CLEAR [media] [BUG] it913x-fe fix typo error making SNR levels unstable [media] cx23885: Query the CX25840 during enum_input for status [media] cx25840: Add support for g_input_status [media] rc-videomate-m1f.c Rename to match remote controler name [media] drivers: media: au0828: Fix dependency for VIDEO_AU0828 [media] convert drivers/media/* to use module_platform_driver() [media] drivers: video: cx231xx: Fix dependency for VIDEO_CX231XX_DVB [media] Exynos4 JPEG codec v4l2 driver [media] doc: v4l: selection: choose pixels as units for selection rectangles [media] v4l: s5p-tv: mixer: fix setup of VP scaling [media] v4l: s5p-tv: mixer: add support for selection API [media] v4l: emulate old crop API using extended crop/compose API [media] doc: v4l: add documentation for selection API [media] doc: v4l: add binary images for selection API [media] v4l: add support for selection api [media] hd29l2: fix review findings ...
Diffstat (limited to 'include/linux/videodev2.h')
-rw-r--r--include/linux/videodev2.h56
1 files changed, 53 insertions, 3 deletions
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index d2f74f8e3fe3..5e11f8a1f867 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -403,6 +403,7 @@ struct v4l2_pix_format {
403#define V4L2_PIX_FMT_SPCA561 v4l2_fourcc('S', '5', '6', '1') /* compressed GBRG bayer */ 403#define V4L2_PIX_FMT_SPCA561 v4l2_fourcc('S', '5', '6', '1') /* compressed GBRG bayer */
404#define V4L2_PIX_FMT_PAC207 v4l2_fourcc('P', '2', '0', '7') /* compressed BGGR bayer */ 404#define V4L2_PIX_FMT_PAC207 v4l2_fourcc('P', '2', '0', '7') /* compressed BGGR bayer */
405#define V4L2_PIX_FMT_MR97310A v4l2_fourcc('M', '3', '1', '0') /* compressed BGGR bayer */ 405#define V4L2_PIX_FMT_MR97310A v4l2_fourcc('M', '3', '1', '0') /* compressed BGGR bayer */
406#define V4L2_PIX_FMT_JL2005BCD v4l2_fourcc('J', 'L', '2', '0') /* compressed RGGB bayer */
406#define V4L2_PIX_FMT_SN9C2028 v4l2_fourcc('S', 'O', 'N', 'X') /* compressed GBRG bayer */ 407#define V4L2_PIX_FMT_SN9C2028 v4l2_fourcc('S', 'O', 'N', 'X') /* compressed GBRG bayer */
407#define V4L2_PIX_FMT_SQ905C v4l2_fourcc('9', '0', '5', 'C') /* compressed RGGB bayer */ 408#define V4L2_PIX_FMT_SQ905C v4l2_fourcc('9', '0', '5', 'C') /* compressed RGGB bayer */
408#define V4L2_PIX_FMT_PJPG v4l2_fourcc('P', 'J', 'P', 'G') /* Pixart 73xx JPEG */ 409#define V4L2_PIX_FMT_PJPG v4l2_fourcc('P', 'J', 'P', 'G') /* Pixart 73xx JPEG */
@@ -744,6 +745,48 @@ struct v4l2_crop {
744 struct v4l2_rect c; 745 struct v4l2_rect c;
745}; 746};
746 747
748/* Hints for adjustments of selection rectangle */
749#define V4L2_SEL_FLAG_GE 0x00000001
750#define V4L2_SEL_FLAG_LE 0x00000002
751
752/* Selection targets */
753
754/* current cropping area */
755#define V4L2_SEL_TGT_CROP_ACTIVE 0
756/* default cropping area */
757#define V4L2_SEL_TGT_CROP_DEFAULT 1
758/* cropping bounds */
759#define V4L2_SEL_TGT_CROP_BOUNDS 2
760/* current composing area */
761#define V4L2_SEL_TGT_COMPOSE_ACTIVE 256
762/* default composing area */
763#define V4L2_SEL_TGT_COMPOSE_DEFAULT 257
764/* composing bounds */
765#define V4L2_SEL_TGT_COMPOSE_BOUNDS 258
766/* current composing area plus all padding pixels */
767#define V4L2_SEL_TGT_COMPOSE_PADDED 259
768
769/**
770 * struct v4l2_selection - selection info
771 * @type: buffer type (do not use *_MPLANE types)
772 * @target: selection target, used to choose one of possible rectangles
773 * @flags: constraints flags
774 * @r: coordinates of selection window
775 * @reserved: for future use, rounds structure size to 64 bytes, set to zero
776 *
777 * Hardware may use multiple helper window to process a video stream.
778 * The structure is used to exchange this selection areas between
779 * an application and a driver.
780 */
781struct v4l2_selection {
782 __u32 type;
783 __u32 target;
784 __u32 flags;
785 struct v4l2_rect r;
786 __u32 reserved[9];
787};
788
789
747/* 790/*
748 * A N A L O G V I D E O S T A N D A R D 791 * A N A L O G V I D E O S T A N D A R D
749 */ 792 */
@@ -1133,6 +1176,7 @@ struct v4l2_querymenu {
1133#define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000 1176#define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000
1134 1177
1135/* User-class control IDs defined by V4L2 */ 1178/* User-class control IDs defined by V4L2 */
1179#define V4L2_CID_MAX_CTRLS 1024
1136#define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900) 1180#define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900)
1137#define V4L2_CID_USER_BASE V4L2_CID_BASE 1181#define V4L2_CID_USER_BASE V4L2_CID_BASE
1138/* IDs reserved for driver specific controls */ 1182/* IDs reserved for driver specific controls */
@@ -1206,10 +1250,10 @@ enum v4l2_colorfx {
1206#define V4L2_CID_MIN_BUFFERS_FOR_CAPTURE (V4L2_CID_BASE+39) 1250#define V4L2_CID_MIN_BUFFERS_FOR_CAPTURE (V4L2_CID_BASE+39)
1207#define V4L2_CID_MIN_BUFFERS_FOR_OUTPUT (V4L2_CID_BASE+40) 1251#define V4L2_CID_MIN_BUFFERS_FOR_OUTPUT (V4L2_CID_BASE+40)
1208 1252
1209/* last CID + 1 */ 1253#define V4L2_CID_ALPHA_COMPONENT (V4L2_CID_BASE+41)
1210#define V4L2_CID_LASTP1 (V4L2_CID_BASE+41)
1211 1254
1212/* Minimum number of buffer neede by the device */ 1255/* last CID + 1 */
1256#define V4L2_CID_LASTP1 (V4L2_CID_BASE+42)
1213 1257
1214/* MPEG-class control IDs defined by V4L2 */ 1258/* MPEG-class control IDs defined by V4L2 */
1215#define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900) 1259#define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900)
@@ -1684,6 +1728,8 @@ enum v4l2_flash_strobe_source {
1684#define V4L2_FLASH_FAULT_TIMEOUT (1 << 1) 1728#define V4L2_FLASH_FAULT_TIMEOUT (1 << 1)
1685#define V4L2_FLASH_FAULT_OVER_TEMPERATURE (1 << 2) 1729#define V4L2_FLASH_FAULT_OVER_TEMPERATURE (1 << 2)
1686#define V4L2_FLASH_FAULT_SHORT_CIRCUIT (1 << 3) 1730#define V4L2_FLASH_FAULT_SHORT_CIRCUIT (1 << 3)
1731#define V4L2_FLASH_FAULT_OVER_CURRENT (1 << 4)
1732#define V4L2_FLASH_FAULT_INDICATOR (1 << 5)
1687 1733
1688#define V4L2_CID_FLASH_CHARGE (V4L2_CID_FLASH_CLASS_BASE + 11) 1734#define V4L2_CID_FLASH_CHARGE (V4L2_CID_FLASH_CLASS_BASE + 11)
1689#define V4L2_CID_FLASH_READY (V4L2_CID_FLASH_CLASS_BASE + 12) 1735#define V4L2_CID_FLASH_READY (V4L2_CID_FLASH_CLASS_BASE + 12)
@@ -2257,6 +2303,10 @@ struct v4l2_create_buffers {
2257#define VIDIOC_CREATE_BUFS _IOWR('V', 92, struct v4l2_create_buffers) 2303#define VIDIOC_CREATE_BUFS _IOWR('V', 92, struct v4l2_create_buffers)
2258#define VIDIOC_PREPARE_BUF _IOWR('V', 93, struct v4l2_buffer) 2304#define VIDIOC_PREPARE_BUF _IOWR('V', 93, struct v4l2_buffer)
2259 2305
2306/* Experimental selection API */
2307#define VIDIOC_G_SELECTION _IOWR('V', 94, struct v4l2_selection)
2308#define VIDIOC_S_SELECTION _IOWR('V', 95, struct v4l2_selection)
2309
2260/* Reminder: when adding new ioctls please add support for them to 2310/* Reminder: when adding new ioctls please add support for them to
2261 drivers/media/video/v4l2-compat-ioctl32.c as well! */ 2311 drivers/media/video/v4l2-compat-ioctl32.c as well! */
2262 2312