Читая документацию о iOS SDK CMBufferQueueCreate
, там говорится, что getDuration
и версия требуются, все остальные обратные вызовы могут быть 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);
с timeCallback:
CMTime timeCallback(CMBufferRef buf, void *refcon){
return CMTimeMake(1, 1);
}
и очередью:
CMBufferQueueRef* queue;
Сбой при создании очереди (queue = 0) и возвращает статус:
kCMBufferQueueError_RequiredParameterMissing = -12761,
Переменная callbacks
правильно инициализирована, по крайней мере, так говорит отладчик.
Кто-нибудь использовал CMBufferQueue
?