Как программно передать фильм QuickTime на вход Quartz Composer? - PullRequest
1 голос
/ 03 ноября 2011

Я работаю над приложением, которое применяет эффекты Quartz Composer к фильмам QuickTime.Подумайте Photo Booth, за исключением с фильмом QuickTime для ввода, а не камеры.В настоящее время я загружаю ролик QuickTime как объект QTMovie, а затем запускаю NSTimer 30 раз в секунду.В какой-то момент я переключусь на CVDisplayLink, но NSTimer пока нормально.Каждый раз, когда срабатывает NSTimer, приложение захватывает один кадр фильма быстрого времени как NSImage и передает его на один из входов изображения QCRenderer.Это работает, но крайне медленно.Я пытался вытащить кадры из фильма во всех форматах, которые поддерживает [QTMovie frameImageAtTime:withAttributes:error:].Все они либо очень медленные, либо вообще не работают.

Я предполагаю, что медлительность вызвана перемещением данных изображения в основную память, а затем перемещением его обратно для контроля качества для работы с ним.

К сожалению, использование патча для фильма QuickTime в QC для этого проекта не может быть и речи, так как мне нужно больше контроля над воспроизведением фильмов, чем это обеспечивает.Итак, вопрос в том, как я могу переместить изображения фильмов QuickTime в мой QCRenderer, не выходя из VRAM?

1 Ответ

1 голос
/ 04 ноября 2011

Проверьте v002 Movie Player QCPlugin, который является открытым исходным кодом.В любом случае, какие еще элементы управления у вас есть?

...