291 #define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */ |
291 #define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */ |
292 #define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9') /* 9 YVU 4:1:0 */ |
292 #define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9') /* 9 YVU 4:1:0 */ |
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 */ |
299 #define V4L2_PIX_FMT_YUV444 v4l2_fourcc('Y', '4', '4', '4') /* 16 xxxxyyyy uuuuvvvv */ |
300 #define V4L2_PIX_FMT_YUV444 v4l2_fourcc('Y', '4', '4', '4') /* 16 xxxxyyyy uuuuvvvv */ |
300 #define V4L2_PIX_FMT_YUV555 v4l2_fourcc('Y', 'U', 'V', 'O') /* 16 YUV-5-5-5 */ |
301 #define V4L2_PIX_FMT_YUV555 v4l2_fourcc('Y', 'U', 'V', 'O') /* 16 YUV-5-5-5 */ |
302 #define V4L2_PIX_FMT_YUV32 v4l2_fourcc('Y', 'U', 'V', '4') /* 32 YUV-8-8-8-8 */ |
303 #define V4L2_PIX_FMT_YUV32 v4l2_fourcc('Y', 'U', 'V', '4') /* 32 YUV-8-8-8-8 */ |
303 |
304 |
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 */ |
310 #define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y', 'U', '1', '2') /* 12 YUV 4:2:0 */ |
313 #define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y', 'U', '1', '2') /* 12 YUV 4:2:0 */ |
311 #define V4L2_PIX_FMT_YYUV v4l2_fourcc('Y', 'Y', 'U', 'V') /* 16 YUV 4:2:2 */ |
314 #define V4L2_PIX_FMT_YYUV v4l2_fourcc('Y', 'Y', 'U', 'V') /* 16 YUV 4:2:2 */ |
1048 #define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_MPEG_BASE+208) |
1051 #define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_MPEG_BASE+208) |
1049 #define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_MPEG_BASE+209) |
1052 #define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_MPEG_BASE+209) |
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 { |
1057 V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL = 0, |
1060 V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL = 0, |
1058 V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO = 1, |
1061 V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO = 1, |
1114 #define V4L2_CID_TILT_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+9) |
1117 #define V4L2_CID_TILT_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+9) |
1115 |
1118 |
1116 #define V4L2_CID_FOCUS_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+10) |
1119 #define V4L2_CID_FOCUS_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+10) |
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) |
|
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) |
1119 |
1128 |
1120 /* |
1129 /* |
1121 * T U N I N G |
1130 * T U N I N G |
1122 */ |
1131 */ |
1123 struct v4l2_tuner { |
1132 struct v4l2_tuner { |
1359 }; |
1368 }; |
1360 |
1369 |
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 */ |
1372 |
1382 #define V4L2_CHIP_MATCH_AC97 3 /* Match against anciliary AC97 chip */ |
1373 struct v4l2_register { |
1383 |
1374 __u32 match_type; /* Match type */ |
1384 struct v4l2_dbg_match { |
1375 __u32 match_chip; /* Match this chip, meaning determined by match_type */ |
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)); |
|
1391 |
|
1392 struct v4l2_dbg_register { |
|
1393 struct v4l2_dbg_match match; |
|
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> */ |
1385 __u32 revision; /* chip revision, chip specific */ |
1411 __u32 revision; /* chip revision, chip specific */ |
1386 }; |
1412 }; |
1448 #define VIDIOC_ENUM_FRAMESIZES _IOWR('V', 74, struct v4l2_frmsizeenum) |
1474 #define VIDIOC_ENUM_FRAMESIZES _IOWR('V', 74, struct v4l2_frmsizeenum) |
1449 #define VIDIOC_ENUM_FRAMEINTERVALS _IOWR('V', 75, struct v4l2_frmivalenum) |
1475 #define VIDIOC_ENUM_FRAMEINTERVALS _IOWR('V', 75, struct v4l2_frmivalenum) |
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) |
1453 |
|
1454 /* Experimental, only implemented if CONFIG_VIDEO_ADV_DEBUG is defined */ |
|
1455 #define VIDIOC_DBG_S_REGISTER _IOW('V', 79, struct v4l2_register) |
|
1456 #define VIDIOC_DBG_G_REGISTER _IOWR('V', 80, struct v4l2_register) |
|
1457 |
|
1458 #define VIDIOC_G_CHIP_IDENT _IOWR('V', 81, struct v4l2_chip_ident) |
|
1459 #endif |
1479 #endif |
|
1480 |
|
1481 #if 1 |
|
1482 /* Experimental, meant for debugging, testing and internal use. |
|
1483 Only implemented if CONFIG_VIDEO_ADV_DEBUG is defined. |
|
1484 You must be root to use these ioctls. Never use these in applications! */ |
|
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) |
|
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 */ |
1464 #define VIDIOC_OVERLAY_OLD _IOWR('V', 14, int) |
1501 #define VIDIOC_OVERLAY_OLD _IOWR('V', 14, int) |
1465 #define VIDIOC_S_PARM_OLD _IOW('V', 22, struct v4l2_streamparm) |
1502 #define VIDIOC_S_PARM_OLD _IOW('V', 22, struct v4l2_streamparm) |