V4l2:缓冲区的Enque,Deque和Queue(ing)之间的区别?

时间:2012-05-17 11:07:02

标签: android-camera linux-device-driver embedded-linux v4l2

我是 v4l2 中的菜鸟,并尝试找出相机图像捕获期间进行的各种ioctl调用之间的差异。我正在关注linuxtv.org网站上的this pdf 我想知道以下内容之间的区别:

缓冲区的查询,Enque,Deque和Queue(ing)。从相机中获取原始数据是否有特定的顺序?在流媒体和捕获模式下,序列是否会有所不同?

任何人都可以解释。

1 个答案:

答案 0 :(得分:4)

以下状态机描述了V4L2缓冲区的生命周期:

enter image description here

流媒体和捕捉的顺序相同 只是在捕获期间,只需要Q / DQ一次就可以获得一个缓冲区(即单个“帧”)。流媒体反复做这件事。

本系列V4L2文章的详细信息...
Part 1: The Video4Linux2 API
Part 2: registration and open()
Part 3: Basic ioctl() handling
Part 4: Inputs and Outputs
Part 5a: Colors and formats
Part 5b: Format negotiation
Part 6a: Basic frame I/O
Part 6b: Streaming I/O
Part 7: Controls