diff options
Diffstat (limited to 'include/linux/videodev2.h')
-rw-r--r-- | include/linux/videodev2.h | 65 |
1 files changed, 51 insertions, 14 deletions
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index 4669d7e72e75..5571dbe1c0ad 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h | |||
@@ -293,6 +293,7 @@ struct v4l2_pix_format { | |||
293 | #define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y', 'V', '1', '2') /* 12 YVU 4:2:0 */ | 293 | #define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y', 'V', '1', '2') /* 12 YVU 4:2:0 */ |
294 | #define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y', 'U', 'Y', 'V') /* 16 YUV 4:2:2 */ | 294 | #define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y', 'U', 'Y', 'V') /* 16 YUV 4:2:2 */ |
295 | #define V4L2_PIX_FMT_UYVY v4l2_fourcc('U', 'Y', 'V', 'Y') /* 16 YUV 4:2:2 */ | 295 | #define V4L2_PIX_FMT_UYVY v4l2_fourcc('U', 'Y', 'V', 'Y') /* 16 YUV 4:2:2 */ |
296 | #define V4L2_PIX_FMT_VYUY v4l2_fourcc('V', 'Y', 'U', 'Y') /* 16 YUV 4:2:2 */ | ||
296 | #define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4', '2', '2', 'P') /* 16 YVU422 planar */ | 297 | #define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4', '2', '2', 'P') /* 16 YVU422 planar */ |
297 | #define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P') /* 16 YVU411 planar */ | 298 | #define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P') /* 16 YVU411 planar */ |
298 | #define V4L2_PIX_FMT_Y41P v4l2_fourcc('Y', '4', '1', 'P') /* 12 YUV 4:1:1 */ | 299 | #define V4L2_PIX_FMT_Y41P v4l2_fourcc('Y', '4', '1', 'P') /* 12 YUV 4:1:1 */ |
@@ -304,6 +305,8 @@ struct v4l2_pix_format { | |||
304 | /* two planes -- one Y, one Cr + Cb interleaved */ | 305 | /* two planes -- one Y, one Cr + Cb interleaved */ |
305 | #define V4L2_PIX_FMT_NV12 v4l2_fourcc('N', 'V', '1', '2') /* 12 Y/CbCr 4:2:0 */ | 306 | #define V4L2_PIX_FMT_NV12 v4l2_fourcc('N', 'V', '1', '2') /* 12 Y/CbCr 4:2:0 */ |
306 | #define V4L2_PIX_FMT_NV21 v4l2_fourcc('N', 'V', '2', '1') /* 12 Y/CrCb 4:2:0 */ | 307 | #define V4L2_PIX_FMT_NV21 v4l2_fourcc('N', 'V', '2', '1') /* 12 Y/CrCb 4:2:0 */ |
308 | #define V4L2_PIX_FMT_NV16 v4l2_fourcc('N', 'V', '1', '6') /* 16 Y/CbCr 4:2:2 */ | ||
309 | #define V4L2_PIX_FMT_NV61 v4l2_fourcc('N', 'V', '6', '1') /* 16 Y/CrCb 4:2:2 */ | ||
307 | 310 | ||
308 | /* The following formats are not defined in the V4L2 specification */ | 311 | /* The following formats are not defined in the V4L2 specification */ |
309 | #define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y', 'U', 'V', '9') /* 9 YUV 4:1:0 */ | 312 | #define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y', 'U', 'V', '9') /* 9 YUV 4:1:0 */ |
@@ -1050,7 +1053,7 @@ enum v4l2_mpeg_video_bitrate_mode { | |||
1050 | #define V4L2_CID_MPEG_VIDEO_MUTE (V4L2_CID_MPEG_BASE+210) | 1053 | #define V4L2_CID_MPEG_VIDEO_MUTE (V4L2_CID_MPEG_BASE+210) |
1051 | #define V4L2_CID_MPEG_VIDEO_MUTE_YUV (V4L2_CID_MPEG_BASE+211) | 1054 | #define V4L2_CID_MPEG_VIDEO_MUTE_YUV (V4L2_CID_MPEG_BASE+211) |
1052 | 1055 | ||
1053 | /* MPEG-class control IDs specific to the CX2584x driver as defined by V4L2 */ | 1056 | /* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */ |
1054 | #define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000) | 1057 | #define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000) |
1055 | #define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0) | 1058 | #define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0) |
1056 | enum v4l2_mpeg_cx2341x_video_spatial_filter_mode { | 1059 | enum v4l2_mpeg_cx2341x_video_spatial_filter_mode { |
@@ -1117,6 +1120,12 @@ enum v4l2_exposure_auto_type { | |||
1117 | #define V4L2_CID_FOCUS_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+11) | 1120 | #define V4L2_CID_FOCUS_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+11) |
1118 | #define V4L2_CID_FOCUS_AUTO (V4L2_CID_CAMERA_CLASS_BASE+12) | 1121 | #define V4L2_CID_FOCUS_AUTO (V4L2_CID_CAMERA_CLASS_BASE+12) |
1119 | 1122 | ||
1123 | #define V4L2_CID_ZOOM_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+13) | ||
1124 | #define V4L2_CID_ZOOM_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+14) | ||
1125 | #define V4L2_CID_ZOOM_CONTINUOUS (V4L2_CID_CAMERA_CLASS_BASE+15) | ||
1126 | |||
1127 | #define V4L2_CID_PRIVACY (V4L2_CID_CAMERA_CLASS_BASE+16) | ||
1128 | |||
1120 | /* | 1129 | /* |
1121 | * T U N I N G | 1130 | * T U N I N G |
1122 | */ | 1131 | */ |
@@ -1361,24 +1370,41 @@ struct v4l2_streamparm { | |||
1361 | /* | 1370 | /* |
1362 | * A D V A N C E D D E B U G G I N G | 1371 | * A D V A N C E D D E B U G G I N G |
1363 | * | 1372 | * |
1364 | * NOTE: EXPERIMENTAL API | 1373 | * NOTE: EXPERIMENTAL API, NEVER RELY ON THIS IN APPLICATIONS! |
1374 | * FOR DEBUGGING, TESTING AND INTERNAL USE ONLY! | ||
1365 | */ | 1375 | */ |
1366 | 1376 | ||
1367 | /* VIDIOC_DBG_G_REGISTER and VIDIOC_DBG_S_REGISTER */ | 1377 | /* VIDIOC_DBG_G_REGISTER and VIDIOC_DBG_S_REGISTER */ |
1368 | 1378 | ||
1369 | #define V4L2_CHIP_MATCH_HOST 0 /* Match against chip ID on host (0 for the host) */ | 1379 | #define V4L2_CHIP_MATCH_HOST 0 /* Match against chip ID on host (0 for the host) */ |
1370 | #define V4L2_CHIP_MATCH_I2C_DRIVER 1 /* Match against I2C driver ID */ | 1380 | #define V4L2_CHIP_MATCH_I2C_DRIVER 1 /* Match against I2C driver name */ |
1371 | #define V4L2_CHIP_MATCH_I2C_ADDR 2 /* Match against I2C 7-bit address */ | 1381 | #define V4L2_CHIP_MATCH_I2C_ADDR 2 /* Match against I2C 7-bit address */ |
1382 | #define V4L2_CHIP_MATCH_AC97 3 /* Match against anciliary AC97 chip */ | ||
1383 | |||
1384 | struct v4l2_dbg_match { | ||
1385 | __u32 type; /* Match type */ | ||
1386 | union { /* Match this chip, meaning determined by type */ | ||
1387 | __u32 addr; | ||
1388 | char name[32]; | ||
1389 | }; | ||
1390 | } __attribute__ ((packed)); | ||
1372 | 1391 | ||
1373 | struct v4l2_register { | 1392 | struct v4l2_dbg_register { |
1374 | __u32 match_type; /* Match type */ | 1393 | struct v4l2_dbg_match match; |
1375 | __u32 match_chip; /* Match this chip, meaning determined by match_type */ | 1394 | __u32 size; /* register size in bytes */ |
1376 | __u64 reg; | 1395 | __u64 reg; |
1377 | __u64 val; | 1396 | __u64 val; |
1378 | }; | 1397 | } __attribute__ ((packed)); |
1379 | 1398 | ||
1380 | /* VIDIOC_G_CHIP_IDENT */ | 1399 | /* VIDIOC_DBG_G_CHIP_IDENT */ |
1381 | struct v4l2_chip_ident { | 1400 | struct v4l2_dbg_chip_ident { |
1401 | struct v4l2_dbg_match match; | ||
1402 | __u32 ident; /* chip identifier as specified in <media/v4l2-chip-ident.h> */ | ||
1403 | __u32 revision; /* chip revision, chip specific */ | ||
1404 | } __attribute__ ((packed)); | ||
1405 | |||
1406 | /* VIDIOC_G_CHIP_IDENT_OLD: Deprecated, do not use */ | ||
1407 | struct v4l2_chip_ident_old { | ||
1382 | __u32 match_type; /* Match type */ | 1408 | __u32 match_type; /* Match type */ |
1383 | __u32 match_chip; /* Match this chip, meaning determined by match_type */ | 1409 | __u32 match_chip; /* Match this chip, meaning determined by match_type */ |
1384 | __u32 ident; /* chip identifier as specified in <media/v4l2-chip-ident.h> */ | 1410 | __u32 ident; /* chip identifier as specified in <media/v4l2-chip-ident.h> */ |
@@ -1450,14 +1476,25 @@ struct v4l2_chip_ident { | |||
1450 | #define VIDIOC_G_ENC_INDEX _IOR('V', 76, struct v4l2_enc_idx) | 1476 | #define VIDIOC_G_ENC_INDEX _IOR('V', 76, struct v4l2_enc_idx) |
1451 | #define VIDIOC_ENCODER_CMD _IOWR('V', 77, struct v4l2_encoder_cmd) | 1477 | #define VIDIOC_ENCODER_CMD _IOWR('V', 77, struct v4l2_encoder_cmd) |
1452 | #define VIDIOC_TRY_ENCODER_CMD _IOWR('V', 78, struct v4l2_encoder_cmd) | 1478 | #define VIDIOC_TRY_ENCODER_CMD _IOWR('V', 78, struct v4l2_encoder_cmd) |
1479 | #endif | ||
1453 | 1480 | ||
1454 | /* Experimental, only implemented if CONFIG_VIDEO_ADV_DEBUG is defined */ | 1481 | #if 1 |
1455 | #define VIDIOC_DBG_S_REGISTER _IOW('V', 79, struct v4l2_register) | 1482 | /* Experimental, meant for debugging, testing and internal use. |
1456 | #define VIDIOC_DBG_G_REGISTER _IOWR('V', 80, struct v4l2_register) | 1483 | Only implemented if CONFIG_VIDEO_ADV_DEBUG is defined. |
1457 | 1484 | You must be root to use these ioctls. Never use these in applications! */ | |
1458 | #define VIDIOC_G_CHIP_IDENT _IOWR('V', 81, struct v4l2_chip_ident) | 1485 | #define VIDIOC_DBG_S_REGISTER _IOW('V', 79, struct v4l2_dbg_register) |
1486 | #define VIDIOC_DBG_G_REGISTER _IOWR('V', 80, struct v4l2_dbg_register) | ||
1487 | |||
1488 | /* Experimental, meant for debugging, testing and internal use. | ||
1489 | Never use this ioctl in applications! */ | ||
1490 | #define VIDIOC_DBG_G_CHIP_IDENT _IOWR('V', 81, struct v4l2_dbg_chip_ident) | ||
1491 | /* This is deprecated and will go away in 2.6.30 */ | ||
1492 | #define VIDIOC_G_CHIP_IDENT_OLD _IOWR('V', 81, struct v4l2_chip_ident_old) | ||
1459 | #endif | 1493 | #endif |
1494 | |||
1460 | #define VIDIOC_S_HW_FREQ_SEEK _IOW('V', 82, struct v4l2_hw_freq_seek) | 1495 | #define VIDIOC_S_HW_FREQ_SEEK _IOW('V', 82, struct v4l2_hw_freq_seek) |
1496 | /* Reminder: when adding new ioctls please add support for them to | ||
1497 | drivers/media/video/v4l2-compat-ioctl32.c as well! */ | ||
1461 | 1498 | ||
1462 | #ifdef __OLD_VIDIOC_ | 1499 | #ifdef __OLD_VIDIOC_ |
1463 | /* for compatibility, will go away some day */ | 1500 | /* for compatibility, will go away some day */ |