Я борюсь (получая ошибки памяти или, по-видимому, не правильно освобождая память), пытаясь создать CMBlockBufferRef, заполненный данными из существующих NSData (или NSMutableData). Я был бы доволен решением, которое копирует данные, но в идеале я бы посмотрел на решение, которое будет использовать базовые байты NSData и будет содержать сильную ссылку на объект NSData до тех пор, пока CMBlockBuffer не будет освобожден.Как создать CMBlockBufferRef из NSData
3
A
ответ
3
Только для буфера только для чтения, ссылающегося на NSData
(конечно, без копирования), я только что нашел способ его достижения.
static void releaseNSData(void *o, void *block, size_t size)
{
NSData *data = (__bridge_transfer NSData*) o;
data = nil; // Assuming ARC is enabled
}
OSStatus createReadonlyBlockBuffer(CMBlockBufferRef *result, NSData *data)
{
CMBlockBufferCustomBlockSource blockSource =
{
.version = kCMBlockBufferCustomBlockSourceVersion,
.AllocateBlock = NULL,
.FreeBlock = &releaseNSData,
.refCon = (__bridge_retained void*) data,
};
return CMBlockBufferCreateWithMemoryBlock(NULL, (uint8_t*) data.bytes, data.length, NULL, &blockSource, 0, data.length, 0, result);
}
Смежные вопросы
- 1. Как создать AudioBuffer (аудио) из NSdata
- 2. Как создать AudioBuffer/Audio из NSdata
- 3. Создать UiImage из NSData
- 4. Когда выпустить CMBlockBufferRef?
- 5. ошибка преобразования AudioBufferList в CMBlockBufferRef
- 6. Создать ENUM от NSData
- 7. Swift - Невозможно создать объект JSON из NSData
- 8. Нахождения Различных компонентов из NSData: NSData Синтаксического
- 9. Как создать UIImage из NSData и Avatar Data XMPP?
- 10. Как создать NSData из шестнадцатеричного значения в swift
- 11. CGPDFDocumentRef из NSData
- 12. Как получить данные из NSData
- 13. Как получить NSData из видеоролика?
- 14. NSData из NSString, как это
- 15. Как построить NSData из описания?
- 16. Невозможно создать NSData в Swift?
- 17. Как сохранить файл m4a, выбранный из MPMediaPickerController, как NSData?
- 18. Swift. Как написать байты из NSData в другие NSData?
- 19. Как вытащить UIImages из NSData из сокета
- 20. Получить NSData из файла
- 21. Чтение ints из NSData?
- 22. CString из NSData
- 23. Чтение NSNumber из NSData
- 24. Получение изображения из NSData
- 25. литья PFFile как NSData из Parse
- 26. Извлечь изображение из NSData
- 27. NSData байтов из целого
- 28. Преобразование UIImage из NSData
- 29. Восстановить UIView из NSData
- 30. Как получить значения из объекта NSData
Это код, каждый должен использовать для того, чтобы избежать ARC dealloc гонок, так как CMBlockBufferCreateWithMemoryBlock только ссылки на объекты NSData байт без сохранения его. Потрясающие!! –