Request mmap buffers from the kernel (VIDIOC_REQBUFS). 向内核申请 mmap 缓冲区(VIDIOC_REQBUFS)。 The kernel may allocate fewer buffers than requested. Check `reqbufs.count` for the actual number. 内核可能分配比请求更少的缓冲区。检查 `reqbufs.count` 获取实际数量。
(fd: RawFd, count: u32)
| 257 | /// Check `reqbufs.count` for the actual number. |
| 258 | /// 内核可能分配比请求更少的缓冲区。检查 `reqbufs.count` 获取实际数量。 |
| 259 | pub fn request_buffers(fd: RawFd, count: u32) -> io::Result<v4l2_requestbuffers> { |
| 260 | let mut req: v4l2_requestbuffers = unsafe { std::mem::zeroed() }; |
| 261 | req.count = count; |
| 262 | req.type_ = V4L2_BUF_TYPE_VIDEO_CAPTURE; |
| 263 | req.memory = V4L2_MEMORY_MMAP; |
| 264 | unsafe { |
| 265 | v4l2_ioctl(fd, VIDIOC_REQBUFS, &mut req as *mut _ as *mut libc::c_void)?; |
| 266 | } |
| 267 | Ok(req) |
| 268 | } |
| 269 | |
| 270 | /// Query a single buffer's offset and length (VIDIOC_QUERYBUF). |
| 271 | /// 查询单个缓冲区的偏移量和大小(VIDIOC_QUERYBUF)。 |
no test coverage detected