本示例演示了如何从 V4L2 YUV 类型摄像头捕获图像,并将图像流与 NVIDIA® CUDA® 引擎共享,以便在左上角绘制一个黑色方框。
$ cd 12_camera_v4l2_cuda $ make
输入
$ ./camera_v4l2_cuda -d /dev/video0 -s 1280x720 -f YUYV -c
-c 选项启用 CUDA 处理。
或输入
$ ./camera_v4l2_cuda -d /dev/video0 -s 640x480 -f YUYV -n 30 -c
-n 选项在视频转换器处理之前保存第 n 帧。
-h
选项。下图显示了数据流经此示例的流程。
本示例定义了以下表格中列出的结构和函数。
结构 | 描述 |
---|---|
context_t | 全局结构,用于保存 V4L2 摄像头、CUDA 和 EglRenderer 的上下文。 |
函数 | 描述 |
---|---|
init_components | 初始化 V4L2 摄像头和 EglRenderer。 |
prepare_buffers | 为 capture_plane 分配缓冲区。然后,它与 V4L2 摄像头、CUDA 和 EglRenderer 共享缓冲区。 |
start_stream | 启动 V4L2 摄像头流。 |
start_capture | 用于入队和出队缓冲区的主线程。 |
stop_stream | 停止 V4L2 摄像头流。 |