ios - CVPixelBufferGetWidth(pixelbuffer) 和 CVPixelBufferGetWidthOfPlane(pixelbuffer, 0) 有什么区别?

标签 ios swift yuv cvpixelbuffer

CVPixelBufferGetWidth(pixelbuffer)CVPixelBufferGetWidthOfPlane(pixelbuffer, 0)CVPixelBufferGetHeight(pixelbuffer)CVPixelBufferGetHeightOfPlane之间有什么区别吗(像素缓冲区,0) .

我搜索维基,它说:

As with most Y′UV formats, there are as many Y′ values as there are pixels.

它并没有说 y 的值对于所有格式都等于图像宽度。

所以如果

CVPixelBufferGetWidth(pixelbuffer) == CVPixelBufferGetWidthOfPlane(pixelbuffer, 0)

CVPixelBufferGetHeight(pixelbuffer) == CVPixelBufferGetHeightOfPlane(pixelbuffer, 0)

最佳答案

并非所有像素缓冲区都是平面的(即包含多个数据平面,就像 YUV 缓冲区的情况一样)。在决定使用哪个函数查询宽度/高度之前,请检查 CVPixelBufferIsPlanar 看看您的是否是。 (当然,如果您从始终平面的源获取缓冲区,则可以安全地跳过该检查。)

CVPixelBufferGetWidthOfPlane 的文档指出,当传递非 FlatBuffers 时,它总是返回零。在这种情况下,返回值(对于平面 0)预计不会等于 CVPixelBufferGetWidth 的返回值。

关于ios - CVPixelBufferGetWidth(pixelbuffer) 和 CVPixelBufferGetWidthOfPlane(pixelbuffer, 0) 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55901997/

相关文章:

ios - Swift 中的存在运算符是什么?

swift - 如何在 SwiftUI 中正确设置可调整的 Split View?

ios - 快速加载本地gif获取内存警告

opengl-es - 如何在 OpenGL ES 中不转换 rgb 显示 yuv 格式的数据?

opencv - 如何给Opencv输入YUV数据?

android - 将预览数据转换为位图?

ios - swift4中点击标签栏时如何始终显示主页?

ios - 以编程方式向cgpointmake或cgpoint提供参数以从坐标对创建cgpoint

c# - 我应该加密我的 Unity 代码来构建 IOS 游戏吗?

快速 Alamofire 响应 .jsp