Enqueue a buffer — return it to the driver for filling (VIDIOC_QBUF). 将缓冲区入队 —— 归还给驱动以便其写入新数据(VIDIOC_QBUF)。
(fd: RawFd, index: u32)
| 286 | /// Enqueue a buffer — return it to the driver for filling (VIDIOC_QBUF). |
| 287 | /// 将缓冲区入队 —— 归还给驱动以便其写入新数据(VIDIOC_QBUF)。 |
| 288 | pub fn queue_buffer(fd: RawFd, index: u32) -> io::Result<()> { |
| 289 | let mut buf: v4l2_buffer = unsafe { std::mem::zeroed() }; |
| 290 | buf.index = index; |
| 291 | buf.type_ = V4L2_BUF_TYPE_VIDEO_CAPTURE; |
| 292 | buf.memory = V4L2_MEMORY_MMAP; |
| 293 | unsafe { |
| 294 | v4l2_ioctl(fd, VIDIOC_QBUF, &mut buf as *mut _ as *mut libc::c_void)?; |
| 295 | } |
| 296 | Ok(()) |
| 297 | } |
| 298 | |
| 299 | /// Dequeue a buffer — retrieve a filled buffer from the driver (VIDIOC_DQBUF). |
| 300 | /// 将缓冲区出队 —— 从驱动取回已写满数据的缓冲区(VIDIOC_DQBUF)。 |
no test coverage detected