include/linux/videodev2.h
changeset 2 d1f6d8b6f81c
parent 0 aa628870c1d3
equal deleted inserted replaced
1:0056487c491e 2:d1f6d8b6f81c
   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)