第一部分 - Linux 视频 API¶
本部分描述了 Linux 视频 API 版本 2 (V4L2 API) 规范。
修订版 4.5
- 1. 通用 API 元素
- 1.1. 打开和关闭设备
- 1.2. 查询功能
- 1.3. 应用程序优先级
- 1.4. 视频输入和输出
- 1.5. 音频输入和输出
- 1.6. 调谐器和调制器
- 1.7. 视频标准
- 1.8. 数字视频 (DV) 时序
- 1.9. 用户控件
- 1.10. 扩展控件 API
- 1.11. 相机控制参考
- 1.12. 闪光灯控制参考
- 1.13. 图像源控制参考
- 1.14. 图像处理控制参考
- 1.15. 编解码器控制参考
- 1.16. 无状态编解码器控制参考
- 1.17. JPEG 控制参考
- 1.18. 数字视频控制参考
- 1.19. 射频调谐器控制参考
- 1.20. FM 发射器控制参考
- 1.21. FM 接收器控制参考
- 1.22. 检测控制参考
- 1.23. 色彩度控制参考
- 1.24. Video4Linux 像素格式 4CC 的指南
- 1.25. 数据格式
- 1.26. 单平面和多平面 API
- 1.27. 裁剪、合成和缩放 -- SELECTION API
- 1.28. 图像裁剪、插入和缩放 -- CROP API
- 1.29. 流参数
- 2. 图像格式
- 2.1. 单平面格式结构
- 2.2. 多平面格式结构
- 2.3. 标准图像格式
- 2.4. 索引格式
- 2.5. RGB 格式
- 2.6. 原始拜耳格式
- 2.6.1. 描述
- 2.6.1.1. V4L2_PIX_FMT_SRGGB8 (‘RGGB’)、V4L2_PIX_FMT_SGRBG8 (‘GRBG’)、V4L2_PIX_FMT_SGBRG8 (‘GBRG’)、V4L2_PIX_FMT_SBGGR8 (‘BA81’)
- 2.6.1.2. V4L2_PIX_FMT_PISP_COMP1_RGGB (‘PC1R’)、V4L2_PIX_FMT_PISP_COMP1_GRBG (‘PC1G’)、V4L2_PIX_FMT_PISP_COMP1_GBRG (‘PC1g’)、V4L2_PIX_FMT_PISP_COMP1_BGGR (‘PC1B’)、V4L2_PIX_FMT_PISP_COMP1_MONO (‘PC1M’)、V4L2_PIX_FMT_PISP_COMP2_RGGB (‘PC2R’)、V4L2_PIX_FMT_PISP_COMP2_GRBG (‘PC2G’)、V4L2_PIX_FMT_PISP_COMP2_GBRG (‘PC2g’)、V4L2_PIX_FMT_PISP_COMP2_BGGR (‘PC2B’)、V4L2_PIX_FMT_PISP_COMP2_MONO (‘PC2M’)
- 2.6.1.3. V4L2_PIX_FMT_SRGGB10 (‘RG10’)、V4L2_PIX_FMT_SGRBG10 (‘BA10’)、V4L2_PIX_FMT_SGBRG10 (‘GB10’)、V4L2_PIX_FMT_SBGGR10 (‘BG10’)
- 2.6.1.4. V4L2_PIX_FMT_SRGGB10P (‘pRAA’)、V4L2_PIX_FMT_SGRBG10P (‘pgAA’)、V4L2_PIX_FMT_SGBRG10P (‘pGAA’)、V4L2_PIX_FMT_SBGGR10P (‘pBAA’)
- 2.6.1.5. V4L2_PIX_FMT_SBGGR10ALAW8 (‘aBA8’)、V4L2_PIX_FMT_SGBRG10ALAW8 (‘aGA8’)、V4L2_PIX_FMT_SGRBG10ALAW8 (‘agA8’)、V4L2_PIX_FMT_SRGGB10ALAW8 (‘aRA8’)
- 2.6.1.6. V4L2_PIX_FMT_SBGGR10DPCM8 (‘bBA8’)、V4L2_PIX_FMT_SGBRG10DPCM8 (‘bGA8’)、V4L2_PIX_FMT_SGRBG10DPCM8 (‘BD10’)、V4L2_PIX_FMT_SRGGB10DPCM8 (‘bRA8’)
- 2.6.1.7. V4L2_PIX_FMT_IPU3_SBGGR10 (‘ip3b’)、V4L2_PIX_FMT_IPU3_SGBRG10 (‘ip3g’)、V4L2_PIX_FMT_IPU3_SGRBG10 (‘ip3G’)、V4L2_PIX_FMT_IPU3_SRGGB10 (‘ip3r’)
- 2.6.1.8. V4L2_PIX_FMT_SRGGB12 (‘RG12’)、V4L2_PIX_FMT_SGRBG12 (‘BA12’)、V4L2_PIX_FMT_SGBRG12 (‘GB12’)、V4L2_PIX_FMT_SBGGR12 (‘BG12’)
- 2.6.1.9. V4L2_PIX_FMT_SRGGB12P (‘pRCC’)、V4L2_PIX_FMT_SGRBG12P (‘pgCC’)、V4L2_PIX_FMT_SGBRG12P (‘pGCC’)、V4L2_PIX_FMT_SBGGR12P (‘pBCC’)
- 2.6.1.10. V4L2_PIX_FMT_SRGGB14 (‘RG14’)、V4L2_PIX_FMT_SGRBG14 (‘GR14’)、V4L2_PIX_FMT_SGBRG14 (‘GB14’)、V4L2_PIX_FMT_SBGGR14 (‘BG14’)
- 2.6.1.11. V4L2_PIX_FMT_SRGGB14P (‘pREE’)、V4L2_PIX_FMT_SGRBG14P (‘pgEE’)、V4L2_PIX_FMT_SGBRG14P (‘pGEE’)、V4L2_PIX_FMT_SBGGR14P (‘pBEE’)
- 2.6.1.12. V4L2_PIX_FMT_SRGGB16 (‘RG16’)、V4L2_PIX_FMT_SGRBG16 (‘GR16’)、V4L2_PIX_FMT_SGBRG16 (‘GB16’)、V4L2_PIX_FMT_SBGGR16 (‘BYR2’)
- 2.6.1. 描述
- 2.7. YUV 格式
- 2.8. HSV 格式
- 2.9. 深度格式
- 2.10. 压缩格式
- 2.11. SDR 格式
- 2.12. 触摸格式
- 2.13. 元数据格式
- 2.13.1. V4L2_META_FMT_D4XX (‘D4XX’)
- 2.13.2. V4L2_META_FMT_GENERIC_8 (‘MET8’)、V4L2_META_FMT_GENERIC_CSI2_10 (‘MC1A’)、V4L2_META_FMT_GENERIC_CSI2_12 (‘MC1C’)、V4L2_META_FMT_GENERIC_CSI2_14 (‘MC1E’)、V4L2_META_FMT_GENERIC_CSI2_16 (‘MC1G’)、V4L2_META_FMT_GENERIC_CSI2_20 (‘MC1K’)、V4L2_META_FMT_GENERIC_CSI2_24 (‘MC1O’)
- 2.13.3. V4L2_META_FMT_IPU3_PARAMS (‘ip3p’)、V4L2_META_FMT_IPU3_3A (‘ip3s’)
- 2.13.4. V4L2_META_FMT_RPI_BE_CFG
- 2.13.5. V4L2_META_FMT_RPI_FE_CFG
- 2.13.6. V4L2_META_FMT_RPI_FE_STATS
- 2.13.7. V4L2_META_FMT_RK_ISP1_PARAMS (‘rk1p’),V4L2_META_FMT_RK_ISP1_STAT_3A (‘rk1s’),V4L2_META_FMT_RK_ISP1_EXT_PARAMS (‘rk1e’)
- 2.13.8. V4L2_META_FMT_UVC (‘UVCH’)
- 2.13.9. V4L2_META_FMT_VIVID (‘VIVD’)
- 2.13.10. V4L2_META_FMT_VSP1_HGO (‘VSPH’)
- 2.13.11. V4L2_META_FMT_VSP1_HGT (‘VSPT’)
- 2.14. 保留的格式标识符
- 2.15. 色彩空间
- 2.16. 在 V4L2 中定义色彩空间
- 2.17. 详细色彩空间描述
- 2.17.1. 色彩空间 SMPTE 170M (V4L2_COLORSPACE_SMPTE170M)
- 2.17.2. 色彩空间 Rec. 709 (V4L2_COLORSPACE_REC709)
- 2.17.3. 色彩空间 sRGB (V4L2_COLORSPACE_SRGB)
- 2.17.4. 色彩空间 opRGB (V4L2_COLORSPACE_OPRGB)
- 2.17.5. 色彩空间 BT.2020 (V4L2_COLORSPACE_BT2020)
- 2.17.6. 色彩空间 DCI-P3 (V4L2_COLORSPACE_DCI_P3)
- 2.17.7. 色彩空间 SMPTE 240M (V4L2_COLORSPACE_SMPTE240M)
- 2.17.8. 色彩空间 NTSC 1953 (V4L2_COLORSPACE_470_SYSTEM_M)
- 2.17.9. 色彩空间 EBU Tech. 3213 (V4L2_COLORSPACE_470_SYSTEM_BG)
- 2.17.10. 色彩空间 JPEG (V4L2_COLORSPACE_JPEG)
- 2.18. 详细传输函数描述
- 3. 输入/输出
- 4. 接口
- 4.1. 视频捕获接口
- 4.2. 视频覆盖接口
- 4.3. 视频输出接口
- 4.4. 视频输出覆盖接口
- 4.5. 视频内存到内存接口
- 4.6. 原始 VBI 数据接口
- 4.7. 切片 VBI 数据接口
- 4.7.1. 查询功能
- 4.7.2. 补充功能
- 4.7.3. 切片 VBI 格式协商
- 4.7.4. 读取和写入切片 VBI 数据
- 4.7.5. MPEG 流中的切片 VBI 数据
- 4.7.5.1. MPEG 流嵌入,切片 VBI 数据格式:NONE
- 4.7.5.2. MPEG 流嵌入,切片 VBI 数据格式:IVTV
- 4.7.5.3. struct v4l2_mpeg_vbi_fmt_ivtv
- 4.7.5.4. struct v4l2_mpeg_vbi_fmt_ivtv magic 字段的魔术常量
- 4.7.5.5. structs v4l2_mpeg_vbi_itv0 和 v4l2_mpeg_vbi_ITV0
- 4.7.5.6. struct v4l2_mpeg_vbi_ITV0
- 4.7.5.7. struct v4l2_mpeg_vbi_itv0_line
- 4.7.5.8. struct v4l2_mpeg_vbi_itv0_line id 字段的行标识符
- 4.8. 无线电接口
- 4.9. RDS 接口
- 4.10. 软件定义无线电接口 (SDR)
- 4.11. 触摸设备
- 4.12. 事件接口
- 4.13. 子设备接口
- 4.14. 元数据接口
- 5. Libv4l 用户空间库
- 6. 更改
- 6.1. V4L 和 V4L2 之间的差异
- 6.2. V4L2 API 的更改
- 6.2.1. 早期版本
- 6.2.2. V4L2 版本 0.16 1999-01-31
- 6.2.3. V4L2 版本 0.18 1999-03-16
- 6.2.4. V4L2 版本 0.19 1999-06-05
- 6.2.5. V4L2 版本 0.20 (1999-09-10)
- 6.2.6. V4L2 版本 0.20 增量更改
- 6.2.7. V4L2 版本 0.20 2000-11-23
- 6.2.8. V4L2 版本 0.20 2002-07-25
- 6.2.9. Linux 2.5.46 中的 V4L2,2002-10
- 6.2.10. V4L2 2003-06-19
- 6.2.11. V4L2 2003-11-05
- 6.2.12. Linux 2.6.6 中的 V4L2,2004-05-09
- 6.2.13. Linux 2.6.8 中的 V4L2
- 6.2.14. V4L2 规范勘误 2004-08-01
- 6.2.15. Linux 2.6.14 中的 V4L2
- 6.2.16. Linux 2.6.15 中的 V4L2
- 6.2.17. V4L2 规范勘误 2005-11-27
- 6.2.18. V4L2 规范勘误 2006-01-10
- 6.2.19. V4L2 规范勘误 2006-02-03
- 6.2.20. V4L2 规范勘误 2006-02-04
- 6.2.21. Linux 2.6.17 中的 V4L2
- 6.2.22. V4L2 规范勘误 2006-09-23 (草案 0.15)
- 6.2.23. Linux 2.6.18 中的 V4L2
- 6.2.24. Linux 2.6.19 中的 V4L2
- 6.2.25. V4L2 规范勘误 2006-10-12 (草案 0.17)
- 6.2.26. Linux 2.6.21 中的 V4L2
- 6.2.27. Linux 2.6.22 中的 V4L2
- 6.2.28. Linux 2.6.24 中的 V4L2
- 6.2.29. Linux 2.6.25 中的 V4L2
- 6.2.30. Linux 2.6.26 中的 V4L2
- 6.2.31. Linux 2.6.27 中的 V4L2
- 6.2.32. Linux 2.6.28 中的 V4L2
- 6.2.33. Linux 2.6.29 中的 V4L2
- 6.2.34. Linux 2.6.30 中的 V4L2
- 6.2.35. Linux 2.6.32 中的 V4L2
- 6.2.36. Linux 2.6.33 中的 V4L2
- 6.2.37. Linux 2.6.34 中的 V4L2
- 6.2.38. Linux 2.6.37 中的 V4L2
- 6.2.39. Linux 2.6.39 中的 V4L2
- 6.2.40. Linux 3.1 中的 V4L2
- 6.2.41. Linux 3.2 中的 V4L2
- 6.2.42. Linux 3.3 中的 V4L2
- 6.2.43. Linux 3.4 中的 V4L2
- 6.2.44. Linux 3.5 中的 V4L2
- 6.2.45. Linux 3.6 中的 V4L2
- 6.2.46. Linux 3.9 中的 V4L2
- 6.2.47. Linux 3.10 中的 V4L2
- 6.2.48. Linux 3.11 中的 V4L2
- 6.2.49. Linux 3.14 中的 V4L2
- 6.2.50. Linux 3.15 中的 V4L2
- 6.2.51. Linux 3.16 中的 V4L2
- 6.2.52. Linux 3.17 中的 V4L2
- 6.2.53. Linux 3.18 中的 V4L2
- 6.2.54. Linux 3.19 中的 V4L2
- 6.2.55. Linux 4.4 中的 V4L2
- 6.2.56. V4L2 与其他 Linux 多媒体 API 的关系
- 6.2.57. 实验性 API 元素
- 6.2.58. 废弃的 API 元素
- 7. 函数参考
- 7.1. V4L2 close()
- 7.2. V4L2 ioctl()
- 7.3. ioctl VIDIOC_CREATE_BUFS
- 7.4. ioctl VIDIOC_CROPCAP
- 7.5. ioctl VIDIOC_DBG_G_CHIP_INFO
- 7.6. ioctl VIDIOC_DBG_G_REGISTER,VIDIOC_DBG_S_REGISTER
- 7.7. ioctl VIDIOC_DECODER_CMD, VIDIOC_TRY_DECODER_CMD
- 7.8. ioctl VIDIOC_DQEVENT
- 7.9. ioctl VIDIOC_DV_TIMINGS_CAP, VIDIOC_SUBDEV_DV_TIMINGS_CAP
- 7.10. ioctl VIDIOC_ENCODER_CMD, VIDIOC_TRY_ENCODER_CMD
- 7.11. ioctl VIDIOC_ENUMAUDIO
- 7.12. ioctl VIDIOC_ENUMAUDOUT
- 7.13. ioctl VIDIOC_ENUM_DV_TIMINGS, VIDIOC_SUBDEV_ENUM_DV_TIMINGS
- 7.14. ioctl VIDIOC_ENUM_FMT
- 7.15. ioctl VIDIOC_ENUM_FRAMESIZES
- 7.16. ioctl VIDIOC_ENUM_FRAMEINTERVALS
- 7.17. ioctl VIDIOC_ENUM_FREQ_BANDS
- 7.18. ioctl VIDIOC_ENUMINPUT
- 7.19. ioctl VIDIOC_ENUMOUTPUT
- 7.20. ioctl VIDIOC_ENUMSTD, VIDIOC_SUBDEV_ENUMSTD
- 7.21. ioctl VIDIOC_EXPBUF
- 7.22. ioctl VIDIOC_G_AUDIO, VIDIOC_S_AUDIO
- 7.23. ioctl VIDIOC_G_AUDOUT, VIDIOC_S_AUDOUT
- 7.24. ioctl VIDIOC_G_CROP, VIDIOC_S_CROP
- 7.25. ioctl VIDIOC_G_CTRL, VIDIOC_S_CTRL
- 7.26. ioctl VIDIOC_G_DV_TIMINGS, VIDIOC_S_DV_TIMINGS
- 7.27. ioctl VIDIOC_G_EDID, VIDIOC_S_EDID, VIDIOC_SUBDEV_G_EDID, VIDIOC_SUBDEV_S_EDID
- 7.28. ioctl VIDIOC_G_ENC_INDEX
- 7.29. ioctl VIDIOC_G_EXT_CTRLS, VIDIOC_S_EXT_CTRLS, VIDIOC_TRY_EXT_CTRLS
- 7.30. ioctl VIDIOC_G_FBUF, VIDIOC_S_FBUF
- 7.31. ioctl VIDIOC_G_FMT, VIDIOC_S_FMT, VIDIOC_TRY_FMT
- 7.32. ioctl VIDIOC_G_FREQUENCY, VIDIOC_S_FREQUENCY
- 7.33. ioctl VIDIOC_G_INPUT, VIDIOC_S_INPUT
- 7.34. ioctl VIDIOC_G_JPEGCOMP, VIDIOC_S_JPEGCOMP
- 7.35. ioctl VIDIOC_G_MODULATOR, VIDIOC_S_MODULATOR
- 7.36. ioctl VIDIOC_G_OUTPUT, VIDIOC_S_OUTPUT
- 7.37. ioctl VIDIOC_G_PARM, VIDIOC_S_PARM
- 7.38. ioctl VIDIOC_G_PRIORITY, VIDIOC_S_PRIORITY
- 7.39. ioctl VIDIOC_G_SELECTION, VIDIOC_S_SELECTION
- 7.40. ioctl VIDIOC_G_SLICED_VBI_CAP
- 7.41. ioctl VIDIOC_G_STD, VIDIOC_S_STD, VIDIOC_SUBDEV_G_STD, VIDIOC_SUBDEV_S_STD
- 7.42. ioctl VIDIOC_G_TUNER, VIDIOC_S_TUNER
- 7.43. ioctl VIDIOC_LOG_STATUS
- 7.44. ioctl VIDIOC_OVERLAY
- 7.45. ioctl VIDIOC_PREPARE_BUF
- 7.46. ioctl VIDIOC_QBUF, VIDIOC_DQBUF
- 7.47. ioctl VIDIOC_QUERYBUF
- 7.48. ioctl VIDIOC_QUERYCAP
- 7.49. ioctls VIDIOC_QUERYCTRL, VIDIOC_QUERY_EXT_CTRL 和 VIDIOC_QUERYMENU
- 7.50. ioctl VIDIOC_QUERY_DV_TIMINGS
- 7.51. ioctl VIDIOC_QUERYSTD, VIDIOC_SUBDEV_QUERYSTD
- 7.52. ioctl VIDIOC_REQBUFS
- 7.53. ioctl VIDIOC_REMOVE_BUFS
- 7.54. ioctl VIDIOC_S_HW_FREQ_SEEK
- 7.55. ioctl VIDIOC_STREAMON, VIDIOC_STREAMOFF
- 7.56. ioctl VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL
- 7.57. ioctl VIDIOC_SUBDEV_ENUM_FRAME_SIZE
- 7.58. ioctl VIDIOC_SUBDEV_ENUM_MBUS_CODE
- 7.59. ioctl VIDIOC_SUBDEV_G_CROP, VIDIOC_SUBDEV_S_CROP
- 7.60. ioctl VIDIOC_SUBDEV_G_FMT, VIDIOC_SUBDEV_S_FMT
- 7.61. ioctl VIDIOC_SUBDEV_G_FRAME_INTERVAL, VIDIOC_SUBDEV_S_FRAME_INTERVAL
- 7.62. ioctl VIDIOC_SUBDEV_G_ROUTING, VIDIOC_SUBDEV_S_ROUTING
- 7.63. ioctl VIDIOC_SUBDEV_G_SELECTION, VIDIOC_SUBDEV_S_SELECTION
- 7.64. ioctl VIDIOC_SUBDEV_G_CLIENT_CAP, VIDIOC_SUBDEV_S_CLIENT_CAP
- 7.65. ioctl VIDIOC_SUBDEV_QUERYCAP
- 7.66. ioctl VIDIOC_SUBSCRIBE_EVENT, VIDIOC_UNSUBSCRIBE_EVENT
- 7.67. V4L2 mmap()
- 7.68. V4L2 munmap()
- 7.69. V4L2 open()
- 7.70. V4L2 poll()
- 7.71. V4L2 read()
- 7.72. V4L2 select()
- 7.73. V4L2 write()
- 8. V4L2 和 V4L2 子设备接口的通用定义
- 9. Linux 视频二头文件
- 10. 视频捕获示例
- 11. 使用 libv4l 的视频抓取器示例
- 12. 参考资料
- 12.1. CEA 608-E
- 12.2. EN 300 294
- 12.3. ETS 300 231
- 12.4. ETS 300 706
- 12.5. ISO 13818-1
- 12.6. ISO 13818-2
- 12.7. ITU BT.470
- 12.8. ITU BT.601
- 12.9. ITU BT.653
- 12.10. ITU BT.709
- 12.11. ITU BT.1119
- 12.12. ITU-T Rec. H.264 规范 (2017年4月版)
- 12.13. ITU H.265/HEVC
- 12.14. JFIF
- 12.15. ITU-T.81
- 12.16. W3C JPEG JFIF
- 12.17. SMPTE 12M
- 12.18. SMPTE 170M
- 12.19. SMPTE 240M
- 12.20. SMPTE RP 431-2
- 12.21. SMPTE ST 2084
- 12.22. sRGB
- 12.23. sYCC
- 12.24. xvYCC
- 12.25. opRGB
- 12.26. ITU BT.2020
- 12.27. EBU Tech 3213
- 12.28. EBU Tech 3321
- 12.29. IEC 62106
- 12.30. NRSC-4-B
- 12.31. ISO 12232:2006
- 12.32. CEA-861-E
- 12.33. VESA DMT
- 12.34. E-DDC
- 12.35. EDID
- 12.36. HDCP
- 12.37. HDMI
- 12.38. HDMI2
- 12.39. DP
- 12.40. poynton
- 12.41. colimg
- 12.42. VP8
- 12.43. VP9
- 12.44. AV1
修订和版权¶
作者(按字母顺序排列)
Ailus, Sakari <sakari.ailus@iki.fi>
子设备选择 API。
Carvalho Chehab, Mauro <mchehab+samsung@kernel.org>
记录 libv4l,设计并添加 v4l2grab 示例,遥控器章节。
Dirks, Bill
V4L2 API 和文档的原始作者。
Figa, Tomasz <tfiga@chromium.org>
记录了内存到内存解码器接口。
记录了内存到内存编码器接口。
H Schimek, Michael <mschimek@gmx.at>
V4L2 API 和文档的原始作者。
Karicheri, Muralidharan <m-karicheri2@ti.com>
记录了数字视频时序 API。
Osciak, Pawel <posciak@chromium.org>
记录了内存到内存解码器接口。
记录了内存到内存编码器接口。
Osciak, Pawel <pawel@osciak.com>
设计并记录了多平面 API。
Palosaari, Antti <crope@iki.fi>
SDR API。
Ribalda, Ricardo
引入 HSV 格式和其他细微更改。
Rubli, Martin
设计并记录了 VIDIOC_ENUM_FRAMESIZES 和 VIDIOC_ENUM_FRAMEINTERVALS ioctl。
Walls, Andy <awalls@md.metrocast.net>
在此规范中记录了 V4L2_MPEG_STREAM_VBI_FMT_IVTV MPEG 流嵌入式、切片 VBI 数据格式。
Verkuil, Hans <hverkuil@xs4all.nl>
设计并记录了 VIDIOC_LOG_STATUS ioctl、扩展控制 ioctl、切片 VBI API 的主要部分、MPEG 编码器和解码器 API 以及 DV 时序 API。
版权 © 1999-2018:Bill Dirks、Michael H. Schimek、Hans Verkuil、Martin Rubli、Andy Walls、Muralidharan Karicheri、Mauro Carvalho Chehab、Pawel Osciak、Sakari Ailus & Antti Palosaari、Tomasz Figa
除非明确声明为 GPL,否则本部分中的编程示例可以不受限制地使用和分发。
修订历史¶
- 修订:
4.10 / 2016-07-15 (rr)
引入 HSV 格式。
- 修订:
4.5 / 2015-10-29 (rr)
扩展 VIDIOC_G_EXT_CTRLS;。将 ctrl_class 替换为一个新的联合,其中包含 ctrl_class 和 which。Which 用于选择控件的当前值或默认值。
- 修订:
4.4 / 2015-05-26 (ap)
将 V4L2_TUNER_ADC 重命名为 V4L2_TUNER_SDR。添加 V4L2_CID_RF_TUNER_RF_GAIN 控制。为软件定义无线电 (SDR) 接口添加发射器支持。
- 修订:
4.1 / 2015-02-13 (mcc)
修复媒体控制器设备节点的文档,并添加对 DVB 设备节点的支持。添加对调谐器子设备的支持。
- 修订:
3.19 / 2014-12-05 (hv)
重写颜色空间章节,在结构体 v4l2_ycbcr_encoding
和枚举 v4l2_quantization
字段中添加新的枚举 v4l2_pix_format
、结构体 v4l2_pix_format_mplane
和结构体 v4l2_mbus_framefmt
。
- 修订:
3.17 / 2014-08-04 (lp, hv)
扩展了结构体 v4l2_pix_format
。添加格式标志。添加复合控制类型和 VIDIOC_QUERY_EXT_CTRL。
- 修订:
3.15 / 2014-02-03 (hv, ap)
更新了“通用 API 元素”的几个部分:“打开和关闭设备”、“查询功能”、“应用程序优先级”、“视频输入和输出”、“音频输入和输出”、“调谐器和调制器”、“视频标准”和“数字视频 (DV) 时序”。添加 SDR API。
- 修订:
3.14 / 2013-11-25 (rr)
将 v4l2_rect 上的宽度和高度设置为无符号。
- 修订:
3.11 / 2013-05-26 (hv)
删除过时的 VIDIOC_DBG_G_CHIP_IDENT ioctl。
- 修订:
3.10 / 2013-03-25 (hv)
删除过时且未使用的 DV_PRESET ioctl:VIDIOC_G_DV_PRESET、VIDIOC_S_DV_PRESET、VIDIOC_QUERY_DV_PRESET 和 VIDIOC_ENUM_DV_PRESET。删除相关的 v4l2_input/output 功能标志 V4L2_IN_CAP_PRESETS 和 V4L2_OUT_CAP_PRESETS。添加 VIDIOC_DBG_G_CHIP_INFO。
- 修订:
3.9 / 2012-12-03 (sa, sn)
将时间戳类型添加到 v4l2_buffer。添加 V4L2_EVENT_CTRL_CH_RANGE 控制事件更改标志。
- 修订:
3.6 / 2012-07-02 (hv)
添加 VIDIOC_ENUM_FREQ_BANDS。
- 修订:
3.5 / 2012-05-07 (sa, sn, hv)
添加 V4L2_CTRL_TYPE_INTEGER_MENU 和 V4L2 子设备选择 API。改进了 V4L2_CID_COLORFX 控件的描述,添加了 V4L2_CID_COLORFX_CBCR 控件。添加相机控制 V4L2_CID_AUTO_EXPOSURE_BIAS、V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE、V4L2_CID_IMAGE_STABILIZATION、V4L2_CID_ISO_SENSITIVITY、V4L2_CID_ISO_SENSITIVITY_AUTO、V4L2_CID_EXPOSURE_METERING、V4L2_CID_SCENE_MODE、V4L2_CID_3A_LOCK、V4L2_CID_AUTO_FOCUS_START、V4L2_CID_AUTO_FOCUS_STOP、V4L2_CID_AUTO_FOCUS_STATUS 和 V4L2_CID_AUTO_FOCUS_RANGE。添加 VIDIOC_ENUM_DV_TIMINGS、VIDIOC_QUERY_DV_TIMINGS 和 VIDIOC_DV_TIMINGS_CAP。
- 修订:
3.4 / 2012-01-25 (sn)
添加 JPEG 压缩控制类。
- 修订:
3.3 / 2012-01-11 (hv)
向结构体 v4l2_capabilities 添加 device_caps 字段。
- 修订:
3.2 / 2011-08-26 (hv)
添加 V4L2_CTRL_FLAG_VOLATILE。
- 修订:
3.1 / 2011-06-27 (mcc, po, hv)
记录了 VIDIOC_QUERYCAP 现在返回每个子系统的版本,而不是每个驱动程序的版本。为无效的 ioctl 标准化一个错误代码。添加 V4L2_CTRL_TYPE_BITMASK。
- 修订:
2.6.39 / 2011-03-01 (mcc, po)
从 videodev2.h 标头中删除 VIDIOC_*_OLD,并对其进行更新以反映最新的更改。添加了 多平面 API。
- 修订:
2.6.37 / 2010-08-06 (hv)
删除过时的 vtx (视频文本) API。
- 修订:
2.6.33 / 2009-12-03 (mk)
添加了数字视频时序 API 的文档。
- 修订:
2.6.32 / 2009-08-31 (mcc)
现在,修订将与 Linux 内核将使用 V4L2 API 更改的内核版本相匹配。还添加了遥控器章节。
- 修订:
0.29 / 2009-08-26 (ev)
添加了字符串控件和 FM 发射器控件的文档。
- 修订:
0.28 / 2009-08-26 (gl)
添加了 V4L2_CID_BAND_STOP_FILTER 文档。
- 修订:
0.27 / 2009-08-15 (mcc)
添加 libv4l 和遥控器文档;添加 v4l2grab 和 keytable 应用程序示例。
- 修订:
0.26 / 2009-07-23 (hv)
最终确定了 RDS 捕获 API。添加了调制器和 RDS 编码器功能。添加了对字符串控件的支持。
- 修订:
0.25 / 2009-01-18 (hv)
添加了像素格式 VYUY、NV16 和 NV61,并更改了调试 ioctl VIDIOC_DBG_G/S_REGISTER 和 VIDIOC_DBG_G_CHIP_IDENT。添加了相机控制 V4L2_CID_ZOOM_ABSOLUTE、V4L2_CID_ZOOM_RELATIVE、V4L2_CID_ZOOM_CONTINUOUS 和 V4L2_CID_PRIVACY。
- 修订:
0.24 / 2008-03-04 (mhs)
添加了像素格式 Y16 和 SBGGR16,新控件和相机控件类。删除了 VIDIOC_G/S_MPEGCOMP。
- 修订:
0.23 / 2007-08-30 (mhs)
修复了 VIDIOC_DBG_G/S_REGISTER 中的拼写错误。澄清了打包像素格式的字节顺序。
- 修订:
0.22 / 2007-08-29 (mhs)
添加了视频输出覆盖接口、新的 MPEG 控件、V4L2_FIELD_INTERLACED_TB 和 V4L2_FIELD_INTERLACED_BT、VIDIOC_DBG_G/S_REGISTER、VIDIOC_(TRY_)ENCODER_CMD、VIDIOC_G_CHIP_IDENT、VIDIOC_G_ENC_INDEX、新的像素格式。澄清了有关 RGB 像素格式、mmap()、poll()、select()、read() 和 write() 函数的裁剪章节。排版修复。
- 修订:
0.21 / 2006-12-19 (mhs)
修复了 VIDIOC_G_EXT_CTRLS 部分中的链接。
- 修订:
0.20 / 2006-11-24 (mhs)
澄清了结构体 v4l2_input 和 v4l2_output 中 audioset 字段的目的。
- 修订:
0.19 / 2006-10-19 (mhs)
记录了 V4L2_PIX_FMT_RGB444。
- 修订:
0.18 / 2006-10-18 (mhs)
添加了 Hans Verkuil 对扩展控件的描述。将 V4L2_PIX_FMT_MPEG 链接到 V4L2_CID_MPEG_STREAM_TYPE。
- 修订:
0.17 / 2006-10-12 (mhs)
更正了 V4L2_PIX_FMT_HM12 的描述。
- 修订:
0.16 / 2006-10-08 (mhs)
VIDIOC_ENUM_FRAMESIZES 和 VIDIOC_ENUM_FRAMEINTERVALS 现在是 API 的一部分。
- 修订:
0.15 / 2006-09-23 (mhs)
清理了参考书目,添加了 BT.653 和 BT.1119。用于用户指针 I/O 的 capture.c/start_capturing() 未初始化缓冲区索引。记录了 V4L MPEG 和 MJPEG VID_TYPE 以及 V4L2_PIX_FMT_SBGGR8。更新了保留像素格式的列表。有关 API 更改,请参阅历史记录章节。
- 修订:
0.14 / 2006-09-14 (mr)
为数字设备的帧格式枚举添加了 VIDIOC_ENUM_FRAMESIZES 和 VIDIOC_ENUM_FRAMEINTERVALS 提案。
- 修订:
0.13 / 2006-04-07 (mhs)
更正了 struct v4l2_window
剪辑的描述。新的 V4L2_STD_ 和 V4L2_TUNER_MODE_LANG1_LANG2 定义。
- 修订:
0.12 / 2006-02-03 (mhs)
更正了结构体 v4l2_captureparm 和 v4l2_outputparm 的描述。
- 修订:
0.11 / 2006-01-27 (mhs)
改进了结构体 v4l2_tuner 的描述。
- 修订:
0.10 / 2006-01-10 (mhs)
VIDIOC_G_INPUT 和 VIDIOC_S_PARM 的澄清。
- 修订:
0.9 / 2005-11-27 (mhs)
改进了 525 行的行号图。Hans Verkuil 和我重写了切片 VBI 部分。他还贡献了 VIDIOC_LOG_STATUS 页面。修复了视频标准选择示例中的 VIDIOC_S_STD 调用。各种更新。
- 修订:
0.8 / 2004-10-04 (mhs)
不知何故,一段垃圾代码溜进了捕获示例,已删除。
- 修订:
0.7 / 2004-09-19 (mhs)
修复了视频标准选择、控制枚举、缩小和宽高比示例。向视频捕获示例添加了读取和用户指针 i/o。
- 修订:
0.6 / 2004-08-01 (mhs)
v4l2_buffer 更改,添加了视频捕获示例,各种更正。
- 修订:
0.5 / 2003-11-05 (mhs)
像素格式勘误。
- 修订:
0.4 / 2003-09-17 (mhs)
更正了源文件和 Makefile 以生成 PDF。SGML 修复。添加了最新的 API 更改。弥补了历史章节中的空白。
- 修订:
0.3 / 2003-02-05 (mhs)
另一个草案,更多更正。
- 修订:
0.2 / 2003-01-15 (mhs)
第二个草案,包含 Gerd Knorr 指出的更正。
- 修订:
0.1 / 2002-12-01 (mhs)
第一个草案,基于 Bill Dirks 的文档和 V4L 邮件列表上的讨论。