gpt4 book ai didi

ios - AVAssetWriterInputPixelBufferAdaptor 返回空像素缓冲池

转载 作者:可可西里 更新时间:2023-11-01 03:25:35 24 4
gpt4 key购买 nike

我确定我的缓冲区属性有问题,但我不清楚是什么 -- 没有很好地记录应该去那里的内容,所以我猜测基于 CVPixelBufferPoolCreate -- Core Foundation 对我来说几乎是一本合上的书。

    // "width" and "height" are const ints
CFNumberRef cfWidth = CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &width);
CFNumberRef cfHeight = CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &height);

CFStringRef keys[] = {
kCVPixelBufferWidthKey,
kCVPixelBufferHeightKey,
kCVPixelBufferCGImageCompatibilityKey
};
CFTypeRef values[] = {
cfWidth,
cfHeight,
kCFBooleanTrue
};
int numValues = sizeof(keys) / sizeof(keys[0]);

CFDictionaryRef bufferAttributes = CFDictionaryCreate(kCFAllocatorDefault,
(const void **)&keys,
(const void **)&values,
numValues,
&kCFTypeDictionaryKeyCallBacks,
&kCFTypeDictionaryValueCallBacks
);

AVAssetWriterInputPixelBufferAdaptor *adaptor = [[AVAssetWriterInputPixelBufferAdaptor
assetWriterInputPixelBufferAdaptorWithAssetWriterInput:writerInput
sourcePixelBufferAttributes:(NSDictionary*)bufferAttributes] retain];
CVPixelBufferPoolRef bufferPool = adaptor.pixelBufferPool;
NSParameterAssert(bufferPool != NULL); // fails

最佳答案

当 pixelBufferPool 返回 null 时,检查以下内容:

    1. AVAssetsWriter 的输出文件不存在。
    2. 在 AVAssetsWriter 上调用 startSessionAtTime: 后使用像素缓冲区。
    3. AVAssetWriterInput 和 AVAssetWriterInputPixelBufferAdaptor 设置正确。
    4.appendPixelBuffer的当前使用次数不一样。

关于ios - AVAssetWriterInputPixelBufferAdaptor 返回空像素缓冲池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5810984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com