what is multi-planar buffers in v4l2
来源:互联网 发布:网络推广软文范文 编辑:程序博客网 时间:2024/05/17 03:07
Some devices require data for each input or output video frame to be placed in discontiguous memory buffers. In such cases, one video frame has to be addressed using more than one memory address, i.e. one pointer per “plane”. A plane is a sub-buffer of the current frame. For examples of such formats see Image Formats.
Initially, V4L2 API did not support multi-planar buffers and a set of extensions has been introduced to handle them. Those extensions constitute what is being referred to as the “multi-planar API”.
Some of the V4L2 API calls and structures are interpreted differently, depending on whether single- or multi-planar API is being used. An application can choose whether to use one or the other by passing a corresponding buffer type to its ioctl calls. Multi-planar versions of buffer types are suffixed with an _MPLANE
string. For a list of available multi-planar buffer types see enum v4l2_buf_type
.
1.12.1. Multi-planar formats
Multi-planar API introduces new multi-planar formats. Those formats use a separate set of FourCC codes. It is important to distinguish between the multi-planar API and a multi-planar format. Multi-planar API calls can handle all single-planar formats as well (as long as they are passed in multi-planar API structures), while the single-planar API cannot handle multi-planar formats.
1.12.2. Calls that distinguish between single and multi-planar APIs
- VIDIOC_QUERYCAP
- Two additional multi-planar capabilities are added. They can be set together with non-multi-planar ones for devices that handle both single- and multi-planar formats.
- VIDIOC_G_FMT, VIDIOC_S_FMT, VIDIOC_TRY_FMT
- New structures for describing multi-planar formats are added: struct
v4l2_pix_format_mplane
and structv4l2_plane_pix_format
. Drivers may define new multi-planar formats, which have distinct FourCC codes from the existing single-planar ones. - VIDIOC_QBUF, VIDIOC_DQBUF, VIDIOC_QUERYBUF
- A new struct
v4l2_plane
structure for describing planes is added. Arrays of this structure are passed in the newm.planes
field of structv4l2_buffer
. - VIDIOC_REQBUFS
- Will allocate multi-planar buffers as requested.
- what is multi-planar buffers in v4l2
- what is v4L2
- What is multi-arch?
- In Linux, what is the difference between “buffers” and “cache” reported by the free command?
- what is #pragma in c
- What is uadmin in Solaris?
- What is MultiSampleQuality in D3D
- what is Activity in Android
- What is “:-!!” in C code?
- What is 'lr_policy' in caffe?
- What is CountDownLatch in Java
- What is CyclicBarrier in Java
- What is EFF in BI
- What is HEAD in Git?
- What is “origin” in Git?
- What is Action in C#?
- What is the Best Multi-Stage Architecture for Object Recognition?
- 《What is the Best Multi-Stage Architecture for Object Recognition?》
- 为什么别人可以做设计总监
- __memcpy_sse2_unaligned
- 数据结构实验之二叉树七:叶子问题
- c/c++ 面试笔试知识点----牛客网(3)
- 【Paper Note】Generative Adversarial Nets 论文理解
- what is multi-planar buffers in v4l2
- easyUI取消选中的所有行
- Aliware打造史上最强时序数据库_HiTSDB每秒写入时序数据达1000万!
- python入门(四):循环( for in 和 while)
- Java设计模式单例模式
- 【技术】OpenCV入门:3.1.0版本中的imread()函数flag参数
- 王师傅教我的单调栈
- 最长回文子串
- JS(十四)导出excel