gpt4 book ai didi

iphone - CMBufferQueueCreate 需要哪些参数?

转载 作者:搜寻专家 更新时间:2023-10-30 20:27:14 24 4
gpt4 key购买 nike

Reading the documentation关于iOS SDK CMBufferQueueCreate,它说getDuration 和version 是必需的,所有其他回调可以为NULL。

但是运行下面的代码:

CFAllocatorRef allocator;
CMBufferCallbacks *callbacks;
callbacks = malloc(sizeof(CMBufferCallbacks));
callbacks->version = 0;
callbacks->getDuration = timeCallback;
callbacks->refcon = NULL;
callbacks->getDecodeTimeStamp = NULL;
callbacks->getPresentationTimeStamp = NULL;
callbacks->isDataReady = NULL;
callbacks->compare = NULL;
callbacks->dataBecameReadyNotification = NULL;

CMItemCount capacity = 4;

OSStatus s = CMBufferQueueCreate(allocator, capacity, callbacks, queue);

NSLog(@"QUEUE: %x", queue);
NSLog(@"STATUS: %i", s);

与时间回调:

CMTime timeCallback(CMBufferRef buf, void *refcon){
return CMTimeMake(1, 1);
}

队列是:

CMBufferQueueRef* queue;

队列创建失败(queue = 0)并返回状态:

kCMBufferQueueError_RequiredParameterMissing = -12761,

callbacks 变量已正确初始化,至少调试器是这样说的。

有人用过CMBufferQueue吗?

最佳答案

估计参数没有问题。至少和你写的一样,CMBufferQueue.h 中关于所需参数的说明。但看起来您正在将空指针作为 CMBufferQueueRef* 参数传递。我已经按如下方式更新了您的示例,它似乎可以创建消息循环。

CMBufferQueueRef queue;
CFAllocatorRef allocator = kCFAllocatorDefault;
CMBufferCallbacks *callbacks;
callbacks = malloc(sizeof(CMBufferCallbacks));
callbacks->version = 0;
callbacks->getDuration = timeCallback;
callbacks->refcon = NULL;
callbacks->getDecodeTimeStamp = NULL;
callbacks->getPresentationTimeStamp = NULL;
callbacks->isDataReady = NULL;
callbacks->compare = NULL;
callbacks->dataBecameReadyNotification = NULL;

CMItemCount capacity = 4;

OSStatus s = CMBufferQueueCreate(allocator, capacity, callbacks, &queue);

NSLog(@"QUEUE: %x", queue);
NSLog(@"STATUS: %i", s);

时间回调还是一样。

它看起来对主题启动器没有帮助,但我希望它能帮助其他人。

关于iphone - CMBufferQueueCreate 需要哪些参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4691230/

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