小编v01*_*01d的帖子

核心视频像素缓冲区为 GL_TEXTURE_2D

所以我已经设置了 CVPixelBuffer 并在 iOS 上成功地将它们绑定到 OpenGL FBO。但是现在尝试在 OSX 上做同样的事情让我陷入困境。

来自 CVOpenGLTextureCacheCreateTextureFromImage 的纹理返回为 GL_TEXTURE_RECTANGLE 而不是 GL_TEXTURE_2D 目标。

我找到了 kCVOpenGLBufferTarget 键,但它似乎应该与 CVOpenGLBufferCreate 而不是 CVPixelBufferCreate 一起使用。

甚至可以使用 CVPixelBufferCreate 在 OSX 上获得 GL_TEXTURE_2D 目标纹理,如果是这样,如何?

FWIW 列出了 CV PBO 设置:

NSDictionary *bufferAttributes = @{ (__bridge NSString *)kCVPixelBufferPixelFormatTypeKey : @(kCVPixelFormatType_32BGRA), (__bridge NSString *)kCVPixelBufferWidthKey : @(size.width), (__bridge NSString *)kCVPixelBufferHeightKey : @(size.height), (__bridge NSString *)kCVPixelBufferIOSurfacePropertiesKey : @{ } };

if (pool)
{
    error = CVPixelBufferPoolCreatePixelBuffer(kCFAllocatorDefault, pool, &renderTarget);
}
else
{
    error = CVPixelBufferCreate(kCFAllocatorDefault, (NSUInteger)size.width, (NSUInteger)size.height, kCVPixelFormatType_32BGRA, (__bridge CFDictionaryRef)bufferAttributes, …
Run Code Online (Sandbox Code Playgroud)

opengl macos core-video

5
推荐指数
1
解决办法
2532
查看次数

标签 统计

core-video ×1

macos ×1

opengl ×1