Lưu ý
Mục đích của file này là để độc giả tiếng Việt có thể đọc và hiểu tài liệu nhân kernel dễ dàng hơn, không phải để tạo ra một nhánh tài liệu riêng. Nếu bạn có bất kỳ nhận xét hoặc cập nhật nào cho file này, vui lòng thử cập nhật file tiếng Anh gốc trước. Nếu bạn thấy có sự khác biệt giữa bản dịch và bản gốc, hoặc có vấn đề về bản dịch, vui lòng gửi góp ý hoặc patch cho người dịch của file này, hoặc nhờ người bảo trì và người review tài liệu tiếng Việt giúp đỡ.
- Bản gốc:
- Người dịch:
Google Translate (machine translation)
- Phiên bản gốc:
8541d8f725c6
Cảnh báo
Tài liệu này được dịch tự động bằng máy và chưa được review bởi người dịch. Nội dung có thể không chính xác hoặc khó hiểu ở một số chỗ. Khi có sự khác biệt với bản gốc, bản gốc luôn là chuẩn. Bản dịch chất lượng cao (được review) được đặt trong thư mục vi_VN/.
Part I - Video dành cho Linux API¶
Phần này mô tả thông số kỹ thuật Video dành cho Linux API phiên bản 2 (V4L2 API).
ZZ0000ZZ
Mục lục
- 1. Common API Các phần tử
- 1.1. Thiết bị mở và đóng
- 1.2. Khả năng truy vấn
- 1.3. Ưu tiên ứng dụng
- 1.4. Đầu vào và đầu ra video
- 1.5. Đầu vào và đầu ra âm thanh
- 1.6. Bộ điều chỉnh và bộ điều biến
- 1.7. Tiêu chuẩn Video
- 1.8. Định giờ video kỹ thuật số (DV)
- 1.9. Kiểm soát người dùng
- 1.10. Điều khiển mở rộng API
- 1.11. Tham khảo điều khiển camera
- 1.12. Tham khảo điều khiển đèn nháy
- 1.13. Tham chiếu kiểm soát nguồn hình ảnh
- 1.14. Tham chiếu kiểm soát quá trình hình ảnh
- 1.15. Tham khảo điều khiển Codec
- 1.16. Tài liệu tham khảo kiểm soát Codec không trạng thái
- 1.16.1. ID kiểm soát Codec không trạng thái
v4l2_ctrl_h264_spsv4l2_ctrl_h264_ppsv4l2_ctrl_h264_scaling_matrixv4l2_ctrl_h264_slice_paramsv4l2_ctrl_h264_pred_weightsv4l2_h264_weight_factorsv4l2_h264_referencev4l2_ctrl_h264_decode_paramsv4l2_h264_dpb_entryv4l2_stateless_h264_decode_modev4l2_stateless_h264_start_codev4l2_ctrl_fwht_params
- 1.16.2. Cờ FWHT
v4l2_ctrl_vp8_framev4l2_vp8_entropy_coder_statev4l2_vp8_segmentv4l2_vp8_loop_filterv4l2_vp8_quantizationv4l2_vp8_entropyv4l2_ctrl_mpeg2_sequencev4l2_ctrl_mpeg2_picturev4l2_ctrl_mpeg2_quantisationv4l2_ctrl_vp9_compressed_hdrv4l2_ctrl_vp9_framev4l2_vp9_segmentationv4l2_vp9_quantizationv4l2_vp9_loop_filterv4l2_ctrl_hevc_spsv4l2_ctrl_hevc_ppsv4l2_ctrl_hevc_slice_paramsv4l2_ctrl_hevc_scaling_matrixv4l2_hevc_dpb_entryv4l2_hevc_pred_weight_tablev4l2_stateless_hevc_decode_modev4l2_stateless_hevc_start_codev4l2_ctrl_hevc_decode_paramsv4l2_ctrl_hevc_ext_sps_lt_rpsv4l2_ctrl_hevc_ext_sps_st_rpsv4l2_ctrl_av1_sequencev4l2_ctrl_av1_tile_group_entryv4l2_av1_warp_modelv4l2_av1_reference_framev4l2_av1_global_motionv4l2_av1_frame_restoration_typev4l2_av1_loop_restorationv4l2_av1_cdefv4l2_av1_segment_featurev4l2_av1_segmentationv4l2_av1_loop_filterv4l2_av1_quantizationv4l2_av1_tile_infov4l2_av1_frame_typev4l2_av1_interpolation_filterv4l2_av1_tx_modev4l2_ctrl_av1_framev4l2_ctrl_av1_film_grain
- 1.16.1. ID kiểm soát Codec không trạng thái
- 1.17. Tham khảo điều khiển JPEG
- 1.18. Tài liệu tham khảo điều khiển video kỹ thuật số
- 1.19. Tham chiếu điều khiển bộ dò sóng RF
- 1.20. Tài liệu tham khảo điều khiển máy phát FM
- 1.21. Tham khảo điều khiển máy thu FM
- 1.22. Phát hiện tham chiếu điều khiển
- 1.23. Tài liệu tham khảo kiểm soát đo màu
- 1.24. Hướng dẫn về định dạng pixel 4CC của Video4Linux
- 1.25. Định dạng dữ liệu
- 1.26. API đơn và đa mặt phẳng
- 1.27. Cắt xén, soạn thảo và chia tỷ lệ -- SELECTION API
- 1.28. Cắt, chèn và chia tỷ lệ hình ảnh -- CROP API
- 1.29. Thông số phát trực tuyến
- 2. Image Định dạng
- 2.1. Cấu trúc định dạng mặt phẳng đơn
- 2.2. Cấu trúc định dạng đa mặt phẳng
- 2.3. Định dạng hình ảnh tiêu chuẩn
- 2.4. Định dạng được lập chỉ mục
- 2.5. Định dạng RGB
- 2.6. Định dạng Bayer thô
- 2.6.1. Sự miêu tả
- 2.6.1.1. V4L2_PIX_FMT_RAW_CRU10 (‘CR10’), V4L2_PIX_FMT_RAW_CRU12 (‘CR12’), V4L2_PIX_FMT_RAW_CRU14 (‘CR14’), V4L2_PIX_FMT_RAW_CRU20 (‘CR20’)
- 2.6.1.2. V4L2_PIX_FMT_SRGGB8 (‘RGGB’), V4L2_PIX_FMT_SGRBG8 (‘GRBG’), V4L2_PIX_FMT_SGBRG8 (‘GBRG’), V4L2_PIX_FMT_SBGGR8 (‘BA81’),
- 2.6.1.3. Raspberry Pi PiSP nén các định dạng Bayer 8 bit
- 2.6.1.4. V4L2_PIX_FMT_SRGGB10 (‘RG10’), V4L2_PIX_FMT_SGRBG10 (‘BA10’), V4L2_PIX_FMT_SGBRG10 (‘GB10’), V4L2_PIX_FMT_SBGGR10 (‘BG10’),
- 2.6.1.5. V4L2_PIX_FMT_SRGGB10P (‘pRAA’), V4L2_PIX_FMT_SGRBG10P (‘pgAA’), V4L2_PIX_FMT_SGBRG10P (‘pGAA’), V4L2_PIX_FMT_SBGGR10P (‘pBAA’),
- 2.6.1.6. V4L2_PIX_FMT_SBGGR10ALAW8 (‘aBA8’), V4L2_PIX_FMT_SGBRG10ALAW8 (‘aGA8’), V4L2_PIX_FMT_SGRBG10ALAW8 (‘agA8’), V4L2_PIX_FMT_SRGGB10ALAW8 (‘aRA8’),
- 2.6.1.7. V4L2_PIX_FMT_SBGGR10DPCM8 (‘bBA8’), V4L2_PIX_FMT_SGBRG10DPCM8 (‘bGA8’), V4L2_PIX_FMT_SGRBG10DPCM8 (‘BD10’), V4L2_PIX_FMT_SRGGB10DPCM8 (‘bRA8’),
- 2.6.1.8. 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.9. V4L2_PIX_FMT_SRGGB12 (‘RG12’), V4L2_PIX_FMT_SGRBG12 (‘BA12’), V4L2_PIX_FMT_SGBRG12 (‘GB12’), V4L2_PIX_FMT_SBGGR12 (‘BG12’),
- 2.6.1.10. V4L2_PIX_FMT_SRGGB12P (‘pRCC’), V4L2_PIX_FMT_SGRBG12P (‘pgCC’), V4L2_PIX_FMT_SGBRG12P (‘pGCC’), V4L2_PIX_FMT_SBGGR12P (‘pBCC’)
- 2.6.1.11. V4L2_PIX_FMT_SRGGB14 (‘RG14’), V4L2_PIX_FMT_SGRBG14 (‘GR14’), V4L2_PIX_FMT_SGBRG14 (‘GB14’), V4L2_PIX_FMT_SBGGR14 (‘BG14’),
- 2.6.1.12. V4L2_PIX_FMT_SRGGB14P (‘pREE’), V4L2_PIX_FMT_SGRBG14P (‘pgEE’), V4L2_PIX_FMT_SGBRG14P (‘pGEE’), V4L2_PIX_FMT_SBGGR14P (‘pBEE’),
- 2.6.1.13. V4L2_PIX_FMT_SRGGB16 (‘RG16’), V4L2_PIX_FMT_SGRBG16 (‘GR16’), V4L2_PIX_FMT_SGBRG16 (‘GB16’), V4L2_PIX_FMT_SBGGR16 (‘BYR2’),
- 2.6.1. Sự miêu tả
- 2.7. Định dạng YUV
- 2.8. Định dạng HSV
- 2.9. Định dạng độ sâu
- 2.10. Định dạng nén
- 2.11. Định dạng SDR
- 2.12. Định dạng cảm ứng
- 2.13. Định dạng siêu dữ liệu
- 2.13.1. V4L2_META_FMT_MALI_C55_STATS (‘C55S’), V4L2_META_FMT_MALI_C55_PARAMS (‘C55P’)
- 2.13.2. V4L2_META_FMT_C3ISP_STATS (‘C3ST’), V4L2_META_FMT_C3ISP_PARAMS (‘C3PM’)
- 2.13.3. V4L2_META_FMT_D4XX (‘D4XX’)
- 2.13.4. 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.5. V4L2_META_FMT_IPU3_PARAMS (‘ip3p’), V4L2_META_FMT_IPU3_3A (‘ip3s’)
- 2.13.6. V4L2_META_FMT_RPI_BE_CFG
- 2.13.7. V4L2_META_FMT_RPI_FE_CFG
- 2.13.8. V4L2_META_FMT_RPI_FE_STATS
- 2.13.9. 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.10. V4L2_META_FMT_UVC (‘UVCH’)
- 2.13.11. V4L2_META_FMT_UVC_MSXU_1_5 (‘UVCM’)
- 2.13.12. V4L2_META_FMT_VIVID (‘VIVD’)
- 2.13.13. V4L2_META_FMT_VSP1_HGO (‘VSPH’)
- 2.13.14. V4L2_META_FMT_VSP1_HGT (‘VSPT’)
- 2.13.15. Các định dạng V4L2 ISP chung
- 2.14. Mã định dạng dành riêng
- 2.15. Không gian màu
- 2.16. Xác định không gian màu trong V4L2
- 2.17. Mô tả chi tiết về không gian màu
- 2.17.1. Không gian màu SMPTE 170M (V4L2_COLORSPACE_SMPTE170M)
- 2.17.2. Không gian màu Rec. 709 (V4L2_COLORSPACE_REC709)
- 2.17.3. Không gian màu sRGB (V4L2_COLORSPACE_SRGB)
- 2.17.4. Không gian màu opRGB (V4L2_COLORSPACE_OPRGB)
- 2.17.5. Không gian màu BT.2020 (V4L2_COLORSPACE_BT2020)
- 2.17.6. Không gian màu DCI-P3 (V4L2_COLORSPACE_DCI_P3)
- 2.17.7. Không gian màu SMPTE 240M (V4L2_COLORSPACE_SMPTE240M)
- 2.17.8. Không gian màu NTSC 1953 (V4L2_COLORSPACE_470_SYSTEM_M)
- 2.17.9. Không gian màu EBU Tech. 3213 (V4L2_COLORSPACE_470_SYSTEM_BG)
- 2.17.10. Không gian màu JPEG (V4L2_COLORSPACE_JPEG)
- 2.18. Mô tả chức năng chuyển chi tiết
- 3. Input/Đầu ra
- 3.1. Đọc/Ghi
- 3.2. Truyền phát I/O (Ánh xạ bộ nhớ)
- 3.3. Truyền phát I/O (Con trỏ người dùng)
- 3.4. Truyền phát I/O (nhập bộ đệm DMA)
- 3.5. Bộ đệm
- 3.6. Thứ tự trường
- 4. Giao diện
- 4.1. Giao diện quay video
- 4.2. Giao diện lớp phủ video
- 4.3. Giao diện đầu ra video
- 4.4. Giao diện lớp phủ đầu ra video
- 4.5. Giao diện bộ nhớ video với bộ nhớ
- 4.5.1. Giao diện bộ giải mã video trạng thái từ bộ nhớ đến bộ nhớ
- 4.5.1.1. Các quy ước và ký hiệu được sử dụng trong tài liệu này
- 4.5.1.2. Thuật ngữ
- 4.5.1.3. Máy trạng thái
- 4.5.1.4. Khả năng truy vấn
- 4.5.1.5. Khởi tạo
- 4.5.1.6. Cài đặt chụp
- 4.5.1.7. Giải mã
- 4.5.1.8. Tìm kiếm
- 4.5.1.9. Thay đổi độ phân giải động
- 4.5.1.10. Làm khô hạn
- 4.5.1.11. Kết thúc luồng
- 4.5.1.12. Điểm cam kết
- 4.5.2. Giao diện bộ mã hóa video trạng thái từ bộ nhớ đến bộ nhớ
- 4.5.3. Giao diện bộ giải mã video không trạng thái từ bộ nhớ đến bộ nhớ
- 4.5.1. Giao diện bộ giải mã video trạng thái từ bộ nhớ đến bộ nhớ
- 4.6. Giao diện dữ liệu VBI thô
- 4.7. Giao diện dữ liệu VBI được cắt lát
- 4.7.1. Khả năng truy vấn
- 4.7.2. Chức năng bổ sung
- 4.7.3. Cắt lát định dạng VBI
- 4.7.4. Đọc và ghi dữ liệu VBI được cắt lát
- 4.7.5. Dữ liệu VBI được cắt lát trong luồng MPEG
- 4.7.5.1. MPEG Luồng được nhúng, được cắt lát Định dạng dữ liệu VBI: NONE
- 4.7.5.2. MPEG Luồng được nhúng, được cắt lát Định dạng dữ liệu VBI: IVTV
- 4.7.5.3. cấu trúc v4l2_mpeg_vbi_fmt_ivtv
- 4.7.5.4. Hằng số ma thuật cho trường ma thuật struct v4l2_mpeg_vbi_fmt_ivtv
- 4.7.5.5. cấu trúc v4l2_mpeg_vbi_itv0 và v4l2_mpeg_vbi_ITV0
- 4.7.5.6. cấu trúc v4l2_mpeg_vbi_ITV0
- 4.7.5.7. cấu trúc v4l2_mpeg_vbi_itv0_line
- 4.7.5.8. Mã định danh dòng cho trường id struct v4l2_mpeg_vbi_itv0_line
- 4.8. Giao diện vô tuyến
- 4.9. Giao diện RDS
- 4.10. Giao diện vô tuyến được xác định bằng phần mềm (SDR)
- 4.11. Thiết bị cảm ứng
- 4.12. Giao diện sự kiện
- 4.13. Giao diện thiết bị phụ
- 4.14. Giao diện siêu dữ liệu
- 5. Thư viện không gian người dùng Libv4l
- 6. Thay đổi
- 6.1. Sự khác biệt giữa V4L và V4L2
- 6.2. Những thay đổi của V4L2 API
- 6.2.1. Phiên bản đầu
- 6.2.2. V4L2 Phiên bản 0.16 1999-01-31
- 6.2.3. V4L2 Phiên bản 0.18 1999-03-16
- 6.2.4. V4L2 Phiên bản 0.19 1999-06-05
- 6.2.5. V4L2 Phiên bản 0.20 (1999-09-10)
- 6.2.6. V4L2 Phiên bản 0.20 thay đổi gia tăng
- 6.2.7. V4L2 Phiên bản 0.20 2000-11-23
- 6.2.8. V4L2 Phiên bản 0.20 2002-07-25
- 6.2.9. V4L2 trong Linux 2.5.46, 2002-10
- 6.2.10. V4L2 2003-06-19
- 6.2.11. V4L2 2003-11-05
- 6.2.12. V4L2 trong Linux 2.6.6, 2004-05-09
- 6.2.13. V4L2 trong Linux 2.6.8
- 6.2.14. Lỗi thông số V4L2 2004-08-01
- 6.2.15. V4L2 trong Linux 2.6.14
- 6.2.16. V4L2 trong Linux 2.6.15
- 6.2.17. Thông số kỹ thuật của V4L2 bị lỗi 27-11-2005
- 6.2.18. Lỗi thông số V4L2 2006-01-10
- 6.2.19. Lỗi thông số V4L2 2006-02-03
- 6.2.20. Lỗi thông số V4L2 2006-02-04
- 6.2.21. V4L2 trong Linux 2.6.17
- 6.2.22. Thông số kỹ thuật của V4L2 lỗi 23-09-2006 (Bản nháp 0.15)
- 6.2.23. V4L2 trong Linux 2.6.18
- 6.2.24. V4L2 trong Linux 2.6.19
- 6.2.25. Thông số kỹ thuật của V4L2 lỗi 12-10-2006 (Bản nháp 0.17)
- 6.2.26. V4L2 trong Linux 2.6.21
- 6.2.27. V4L2 trong Linux 2.6.22
- 6.2.28. V4L2 trong Linux 2.6.24
- 6.2.29. V4L2 trong Linux 2.6.25
- 6.2.30. V4L2 trong Linux 2.6.26
- 6.2.31. V4L2 trong Linux 2.6.27
- 6.2.32. V4L2 trong Linux 2.6.28
- 6.2.33. V4L2 trong Linux 2.6.29
- 6.2.34. V4L2 trong Linux 2.6.30
- 6.2.35. V4L2 trong Linux 2.6.32
- 6.2.36. V4L2 trong Linux 2.6.33
- 6.2.37. V4L2 trong Linux 2.6.34
- 6.2.38. V4L2 trong Linux 2.6.37
- 6.2.39. V4L2 trong Linux 2.6.39
- 6.2.40. V4L2 trong Linux 3.1
- 6.2.41. V4L2 trong Linux 3.2
- 6.2.42. V4L2 trong Linux 3.3
- 6.2.43. V4L2 trong Linux 3.4
- 6.2.44. V4L2 trong Linux 3.5
- 6.2.45. V4L2 trong Linux 3.6
- 6.2.46. V4L2 trong Linux 3.9
- 6.2.47. V4L2 trong Linux 3.10
- 6.2.48. V4L2 trong Linux 3.11
- 6.2.49. V4L2 trong Linux 3.14
- 6.2.50. V4L2 trong Linux 3.15
- 6.2.51. V4L2 trong Linux 3.16
- 6.2.52. V4L2 trong Linux 3.17
- 6.2.53. V4L2 trong Linux 3.18
- 6.2.54. V4L2 trong Linux 3.19
- 6.2.55. V4L2 trong Linux 4.4
- 6.2.56. Mối quan hệ của V4L2 với các API đa phương tiện Linux khác
- 6.2.57. Các phần tử API thử nghiệm
- 6.2.58. Các phần tử API lỗi thời
- 7. Tham khảo chức năng
- 7.1. V4L2 đóng()
- 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 và 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 mở()
- 7.70. Cuộc thăm dò V4L2()
- 7.71. V4L2 đọc()
- 7.72. V4L2 chọn()
- 7.73. V4L2 viết()
- 8. Các định nghĩa phổ biến cho giao diện subdev V4L2 và V4L2
- 9. Video dành cho Linux Hai biểu tượng uAPI tiêu đề
- 10. Ví dụ quay video
- 11. Ví dụ về Video Grabber sử dụng libv4l
- 12. Tài liệu tham khảo
- 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. Đặc tả H.264 (Phiên bản tháng 04/2017)
- 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 Công Nghệ 3213
- 12.28. EBU Công Nghệ 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. nước súc miệng
- 12.42. VP8
- 12.43. VP9
- 12.44. AV1
Sửa đổi và Bản quyền¶
Các tác giả, theo thứ tự bảng chữ cái:
Ailus, Sakari <sakari.ailus@iki.fi>
Lựa chọn Subdev API.
Carvalho Chehab, Mauro <mchehab+samsung@kernel.org>
Tài liệu libv4l, thiết kế và bổ sung ví dụ v4l2grab, chương Remote Controller.
Dirks, Bill
Tác giả gốc của V4L2 API và tài liệu.
Figa, Tomasz <tfiga@chromium.org>
Ghi lại giao diện giải mã bộ nhớ-bộ nhớ. - Ghi lại giao diện bộ mã hóa bộ nhớ-bộ nhớ.
H Schimek, Michael <mschimek@gmx.at>
Tác giả gốc của V4L2 API và tài liệu.
Karicheri, Muralidharan <m-karicheri2@ti.com>
Ghi lại thời gian Video kỹ thuật số API.
Osciak, Pawel <posciak@chromium.org>
Ghi lại giao diện giải mã bộ nhớ-bộ nhớ. - Ghi lại giao diện bộ mã hóa bộ nhớ-bộ nhớ.
Osciak, Pawel <pawel@osciak.com>
Thiết kế và ghi lại API đa mặt phẳng.
Palosaari, Antti <crope@iki.fi>
SDR API.
Ribalda, Ricardo
Giới thiệu các định dạng HSV và những thay đổi nhỏ khác.
Rubli, Martin
Thiết kế và ghi lại các ioctls VIDIOC_ENUM_FRAMESIZES và VIDIOC_ENUM_FRAMEINTERVALS.
Tường, Andy <awalls@md.metrocast.net>
Đã ghi lại luồng V4L2_MPEG_STREAM_VBI_FMT_IVTV MPEG được nhúng, định dạng dữ liệu VBI được cắt lát trong thông số kỹ thuật này.
Verkuil, Hans <hverkuil@kernel.org>
Đã thiết kế và ghi lại ioctl VIDIOC_LOG_STATUS, ioctl điều khiển mở rộng, các bộ phận chính của VBI API được cắt lát, API bộ mã hóa và giải mã MPEG cũng như DV Timings API.
ZZ0000ZZ ZZ0001ZZ 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
Ngoại trừ khi được nêu rõ ràng là GPL, các ví dụ lập trình trong này một phần có thể được sử dụng và phân phối mà không bị hạn chế.
Lịch sử sửa đổi¶
- sửa đổi:
4.10 / 2016-07-15 (ZZ0000ZZ)
Giới thiệu các định dạng HSV.
- sửa đổi:
4.5 / 29-10-2015 (ZZ0000ZZ)
Mở rộng VIDIOC_G_EXT_CTRLS;. Thay thế ctrl_class bằng một liên kết mới bằng ctrl_class và cái nào. Được sử dụng để chọn giá trị hiện tại của điều khiển hoặc giá trị mặc định.
- sửa đổi:
4.4 / 26-05-2015 (ZZ0000ZZ)
Đổi tên V4L2_TUNER_ADC thành V4L2_TUNER_SDR. Đã thêm Điều khiển V4L2_CID_RF_TUNER_RF_GAIN. Đã thêm hỗ trợ máy phát cho Giao diện vô tuyến được xác định bằng phần mềm (SDR).
- sửa đổi:
4.1 / 2015-02-13 (ZZ0000ZZ)
Sửa tài liệu cho các nút thiết bị điều khiển phương tiện và thêm hỗ trợ cho Các nút thiết bị DVB. Thêm hỗ trợ cho thiết bị phụ Tuner.
- sửa đổi:
3.19 / 2014-12-05 (ZZ0000ZZ)
Viết lại chương Colorspace, thêm enum mới ZZ0000ZZ và enum Các trường ZZ0001ZZ để cấu trúc ZZ0002ZZ, cấu trúc ZZ0003ZZ và cấu trúc ZZ0004ZZ.
- sửa đổi:
3.17 / 2014-08-04 (ZZ0000ZZ)
Cấu trúc mở rộng ZZ0000ZZ. Đã thêm cờ định dạng. Đã thêm các loại điều khiển kết hợp và VIDIOC_QUERY_EXT_CTRL.
- sửa đổi:
3.15 / 2014-02-03 (ZZ0000ZZ)
Cập nhật một số phần của “Các phần tử API phổ biến”: “Mở và đóng Thiết bị” “Khả năng truy vấn”, “Ưu tiên ứng dụng”, “Đầu vào video và Đầu ra”, “Đầu vào và đầu ra âm thanh” “Bộ điều chỉnh và bộ điều biến”, “Video Tiêu chuẩn” và “Thời gian Video Kỹ thuật số (DV)”. Đã thêm SDR API.
- sửa đổi:
3.14 / 25-11-2013 (ZZ0000ZZ)
Đặt chiều rộng và chiều cao là chưa ký trên v4l2_orth.
- sửa đổi:
3.11 / 26-05-2013 (ZZ0000ZZ)
Xóa VIDIOC_DBG_G_CHIP_IDENT ioctl.
- sửa đổi:
3.10 / 25-03-2013 (ZZ0000ZZ)
Xóa ioctls DV_PRESET lỗi thời và không sử dụng: VIDIOC_G_DV_PRESET, VIDIOC_S_DV_PRESET, VIDIOC_QUERY_DV_PRESET và VIDIOC_ENUM_DV_PRESET. Xóa v4l2_input/output có liên quan cờ khả năng V4L2_IN_CAP_PRESETS và V4L2_OUT_CAP_PRESETS. Đã thêm VIDIOC_DBG_G_CHIP_INFO.
- sửa đổi:
3.9 / 2012-12-03 (ZZ0000ZZ)
Đã thêm các loại dấu thời gian vào v4l2_buffer. Đã thêm Cờ thay đổi sự kiện điều khiển V4L2_EVENT_CTRL_CH_RANGE.
- sửa đổi:
3.6 / 2012-07-02 (ZZ0000ZZ)
Đã thêm VIDIOC_ENUM_FREQ_BANDS.
- sửa đổi:
3.5 / 2012-05-07 (ZZ0000ZZ)
Đã thêm các lựa chọn nhà phát triển phụ V4L2_CTRL_TYPE_INTEGER_MENU và V4L2 API. Đã thêm mô tả về điều khiển V4L2_CID_COLORFX Điều khiển V4L2_CID_COLORFX_CBCR. Đã thêm điều khiển máy ảnh 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 và V4L2_CID_AUTO_FOCUS_RANGE. Đã thêm VIDIOC_ENUM_DV_TIMINGS, VIDIOC_QUERY_DV_TIMINGS và VIDIOC_DV_TIMINGS_CAP.
- sửa đổi:
3.4 / 25-01-2012 (ZZ0000ZZ)
Đã thêm ZZ0000ZZ
- sửa đổi:
3.3 / 2012-01-11 (ZZ0000ZZ)
Đã thêm trường device_caps vào cấu trúc v4l2_capabilities.
- sửa đổi:
3.2 / 26-08-2011 (ZZ0000ZZ)
Đã thêm V4L2_CTRL_FLAG_VOLATILE.
- sửa đổi:
3.1 / 27-06-2011 (ZZ0000ZZ)
Đã ghi lại rằng VIDIOC_QUERYCAP hiện trả về phiên bản cho mỗi hệ thống con thay vì một tài xế. Chuẩn hóa mã lỗi không hợp lệ ioctl. Đã thêm V4L2_CTRL_TYPE_BITMASK.
- sửa đổi:
2.6.39 / 2011-03-01 (ZZ0000ZZ)
Đã xóa VIDIOC_*_OLD khỏi tiêu đề videodev2.h và cập nhật nó để phản ánh những thay đổi mới nhất. Đã thêm ZZ0000ZZ.
- sửa đổi:
2.6.37 / 2010-08-06 (ZZ0000ZZ)
Đã xóa vtx (videotext) API lỗi thời.
- sửa đổi:
2.6.33 / 2009-12-03 (ZZ0000ZZ)
Đã thêm tài liệu về thời gian Video Kỹ thuật số API.
- sửa đổi:
2.6.32 / 2009-08-31 (ZZ0000ZZ)
Bây giờ, các bản sửa đổi sẽ khớp với phiên bản kernel nơi V4L2 API thay đổi sẽ được hạt nhân Linux sử dụng. Cũng đã thêm chương Điều khiển từ xa.
- sửa đổi:
0,29 / 26-08-2009 (ZZ0000ZZ)
Đã thêm tài liệu về điều khiển chuỗi và điều khiển Máy phát FM.
- sửa đổi:
0,28 / 26-08-2009 (ZZ0000ZZ)
Đã thêm tài liệu V4L2_CID_BAND_STOP_FILTER.
- sửa đổi:
0,27 / 2009-08-15 (ZZ0000ZZ)
Đã thêm tài liệu về libv4l và Bộ điều khiển từ xa; đã thêm v4l2grab và ví dụ về ứng dụng bàn phím
- sửa đổi:
0,26 / 23-07-2009 (ZZ0000ZZ)
Đã hoàn tất quá trình chụp RDS API. Đã thêm bộ điều biến và bộ mã hóa RDS khả năng. Đã thêm hỗ trợ cho điều khiển chuỗi.
- sửa đổi:
0,25 / 2009-01-18 (ZZ0000ZZ)
Đã thêm các định dạng pixel VYUY, NV16 và NV61, đồng thời thay đổi ioctls gỡ lỗi VIDIOC_DBG_G/S_REGISTER và VIDIOC_DBG_G_CHIP_IDENT. Đã thêm máy ảnh điều khiển V4L2_CID_ZOOM_ABSOLUTE, V4L2_CID_ZOOM_RELATIVE, V4L2_CID_ZOOM_CONTINUOUS và V4L2_CID_PRIVACY.
- sửa đổi:
0,24 / 2008-03-04 (ZZ0000ZZ)
Đã thêm các định dạng pixel Y16 và SBGGR16, các điều khiển mới và điều khiển camera lớp học. Đã xóa VIDIOC_G/S_MPEGCOMP.
- sửa đổi:
0,23 / 2007-08-30 (ZZ0000ZZ)
Đã sửa lỗi đánh máy trong VIDIOC_DBG_G/S_REGISTER. Làm rõ thứ tự byte của định dạng pixel đóng gói.
- sửa đổi:
0,22 / 29-08-2007 (ZZ0000ZZ)
Đã thêm giao diện Lớp phủ đầu ra video, điều khiển MPEG mới,
V4L2_FIELD_INTERLACED_TB và V4L2_FIELD_INTERLACED_BT,
VIDIOC_DBG_G/S_REGISTER, VIDIOC_(TRY_)ENCODER_CMD,
VIDIOC_G_CHIP_IDENT, VIDIOC_G_ENC_INDEX, các định dạng pixel mới.
Làm rõ trong chương cắt xén, về định dạng pixel RGB,
Các hàm mmap(), poll(), select(), read() và write(). đánh máy
sửa lỗi.
- sửa đổi:
0,21 / 2006-12-19 (ZZ0000ZZ)
Đã sửa lỗi liên kết trong phần VIDIOC_G_EXT_CTRLS.
- sửa đổi:
0,20 / 24-11-2006 (ZZ0000ZZ)
Làm rõ mục đích của trường audioset trong struct v4l2_input và
v4l2_output.
- sửa đổi:
0.19 / 2006-10-19 (ZZ0000ZZ)
Tài liệu V4L2_PIX_FMT_RGB444.
- sửa đổi:
0,18 / 2006-10-18 (ZZ0000ZZ)
Đã thêm mô tả về các điều khiển mở rộng của Hans Verkuil. Đã liên kết V4L2_PIX_FMT_MPEG đến V4L2_CID_MPEG_STREAM_TYPE.
- sửa đổi:
0.17 / 2006-10-12 (ZZ0000ZZ)
Đã sửa mô tả V4L2_PIX_FMT_HM12.
- sửa đổi:
0.16 / 2006-10-08 (ZZ0000ZZ)
VIDIOC_ENUM_FRAMESIZES và VIDIOC_ENUM_FRAMEINTERVALS hiện là một phần của API.
- sửa đổi:
0,15 / 23-09-2006 (ZZ0000ZZ)
Làm sạch thư mục, thêm BT.653 và BT.1119.
capture.c/start_capturing() cho con trỏ người dùng I/O không khởi tạo
chỉ số đệm. Đã ghi lại V4L MPEG và MJPEG VID_TYPE và
V4L2_PIX_FMT_SBGGR8. Đã cập nhật danh sách các định dạng pixel dành riêng. Xem
chương lịch sử về những thay đổi của API.
- sửa đổi:
0.14 / 2006-09-14 (ZZ0000ZZ)
Đã thêm đề xuất VIDIOC_ENUM_FRAMESIZES và VIDIOC_ENUM_FRAMEINTERVALS để liệt kê định dạng khung của các thiết bị kỹ thuật số.
- sửa đổi:
0.13 / 2006-04-07 (ZZ0000ZZ)
Đã sửa mô tả của clip struct v4l2_window. V4L2_STD mới_
và V4L2_TUNER_MODE_LANG1_LANG2 định nghĩa.
- sửa đổi:
0.12 / 2006-02-03 (ZZ0000ZZ)
Đã sửa mô tả của struct v4l2_captureparm và
v4l2_outputparm.
- sửa đổi:
0.11 / 27-01-2006 (ZZ0000ZZ)
Cải thiện mô tả của struct v4l2_tuner.
- sửa đổi:
0.10 / 2006-01-10 (ZZ0000ZZ)
Làm rõ VIDIOC_G_INPUT và VIDIOC_S_PARM.
- sửa đổi:
0.9 / 27-11-2005 (ZZ0000ZZ)
Cải thiện sơ đồ đánh số dòng 525. Hans Verkuil và tôi đã viết lại phần VBI được cắt lát. Anh ấy cũng đóng góp một trang VIDIOC_LOG_STATUS. Đã sửa lỗi cuộc gọi VIDIOC_S_STD trong ví dụ lựa chọn tiêu chuẩn video. Cập nhật khác nhau.
- sửa đổi:
0.8 / 2004-10-04 (ZZ0000ZZ)
Bằng cách nào đó một mảnh rác lọt vào ví dụ chụp, bị loại bỏ.
- sửa đổi:
0.7 / 2004-09-19 (ZZ0000ZZ)
Đã sửa lỗi lựa chọn tiêu chuẩn video, liệt kê điều khiển, thu nhỏ và ví dụ về khía cạnh Đã thêm i/o con trỏ đọc và người dùng để quay video ví dụ.
- sửa đổi:
0.6 / 2004-08-01 (ZZ0000ZZ)
v4l2_buffer thay đổi, thêm ví dụ quay video, nhiều chỉnh sửa khác nhau.
- sửa đổi:
0,5 / 2003-11-05 (ZZ0000ZZ)
Lỗi định dạng pixel.
- sửa đổi:
0.4 / 2003-09-17 (ZZ0000ZZ)
Đã sửa nguồn và Makefile để tạo PDF. Sửa lỗi SGML. Đã thêm những thay đổi mới nhất của API. Đóng những khoảng trống trong chương lịch sử.
- sửa đổi:
0.3 / 2003-02-05 (ZZ0000ZZ)
Một bản thảo khác, nhiều chỉnh sửa hơn.
- sửa đổi:
0,2 / 2003-01-15 (ZZ0000ZZ)
Bản thảo thứ hai, có những chỉnh sửa được chỉ ra bởi Gerd Knorr.
- sửa đổi:
0,1 / 2002-12-01 (ZZ0000ZZ)
Bản thảo đầu tiên, dựa trên tài liệu của Bill Dirks và các cuộc thảo luận về Danh sách gửi thư V4L.