Моя цель — сделать видео из короткой последовательности кадров opengl (около 200 кадров). Поэтому для этого я использую следующий код для создания массива изображений:
NSMutableArray* images = [NSMutableArray array];
KTEngine* engine = [KTEngine sharedInstance]; //Opengl - based engine
for (unsigned int i = engine.animationContext.unitStart; i < engine.animationContext.unitEnd ; ++i)
{
NSLog(@"Render Image %d", i);
[engine.animationContext update:i];
[self.view setNeedsDisplay];
[images addObject:[view snapshot]];
}
NSLog(@"Total image rendered %d", [images count]);
[self createVideoFileFromArray:images];
Так что это отлично работает на симуляторе, но не на устройстве (с сетчаткой iPad). Итак, я предполагаю, что устройство не поддерживает так много UIimages (особенно в 2048 * 1536). Сбой всегда происходит после 38 кадров или около того.
Теперь, что касается решения, я думал создать видео для каждых 10 кадров, а затем соединить их все вместе, но когда я могу узнать, достаточно ли у меня места (пул авторелиза слит?).
Может быть, мне следует использовать поток, обработать 10 изображений и снова запустить его для следующих 10 кадров, когда все закончится?
Любая идея?