首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用CVPixelBufferCreate创建黑色CMSampleBufferRef?

如何使用CVPixelBufferCreate创建黑色CMSampleBufferRef?
EN

Stack Overflow用户
提问于 2020-02-27 00:32:14
回答 1查看 500关注 0票数 1

我需要一个黑色的CMSampleBufferRef来测试。我使用这个代码。但它是一台白色的CMSampleBufferRef

代码语言:javascript
运行
复制
CVPixelBufferRef pixelBuffer=NULL;
CVPixelBufferCreate(kCFAllocatorDefault, 1280, 720, kCVPixelFormatType_32BGRA, NULL, &pixelBuffer);
CMSampleTimingInfo info ={ kCMTimeInvalid, kCMTimeZero, kCMTimeInvalid };
CMFormatDescriptionRef formatDesc=NULL;
CMVideoFormatDescriptionCreateForImageBuffer(kCFAllocatorDefault, pixelBuffer, &formatDesc);
CMSampleBufferRef sampleBuffer=NULL;
CMSampleBufferCreateReadyWithImageBuffer(kCFAllocatorDefault,
                                         pixelBuffer,
                                         formatDesc,
                                         &info,
                                         &sampleBuffer);

如何使用CVPixelBufferCreate创建黑色CMSampleBufferRef?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-28 02:58:15

如果你在你的代码后面添加这个,它会用黑色像素填充像素缓冲区:

代码语言:javascript
运行
复制
    CVPixelBufferLockBaseAddress(pixelBuffer, 0);
    size_t width = CVPixelBufferGetWidth(pixelBuffer);
    size_t height = CVPixelBufferGetHeight(pixelBuffer);
    UInt32* buffer = (UInt32*)CVPixelBufferGetBaseAddress(pixelBuffer);
    for ( unsigned long i = 0; i < width * height; i++ )
    {
        buffer[i] = CFSwapInt32HostToBig(0x000000ff);
    }
    CVPixelBufferUnlockBaseAddress(pixelBuffer, 0);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60418462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档