Я пытаюсь контролировать поток видеосигнала с камеры FireWire. Я создал интерфейс интерфейса Builder с кнопками и NSImageView
. В то время как мониторинг изображения происходит в бесконечном цикле, я хочу:Должен ли я использовать NSOperation или NSRunLoop?
- изменения некоторых параметров камеры на лету (усиления, гамма и т.д.)
- сказать мониторинг, чтобы остановить, так что я могу сохранить изображение в файл (установить флаг, который останавливает цикл while)
Используя кнопки, я не смог зациклить монитор видеокамеры, все еще ищу, чтобы нажимала кнопку (очень похоже на использование функции C с нажатой клавишей C .) Существуют два варианта:
- Инициировать новый цикл запуска (для которого я не могу получить autoreleasepool для работы ...)
- Инициировать
NSOperation
- как это сделать, чтобы я мог подключиться с нажатием кнопки Xcode?
Документация очень туманна о создании таких объектов. Если я создаю NSOperation
в соответствии с примерами, которые я нашел, похоже, нет способа связаться с ним с объектом из Interface Builder. Когда я создаю NSRunLoop
, я получаю ошибку утечки объекта, и я не могу найти пример того, как создать autoreleasepool, который фактически отвечает на созданный мной RunLoop. Nevermind, что я даже не попытался выбрать, какие объекты будут отбираться по второму циклу цикла ...
Потому что Objective C (очевидно!) Не мой родной язык, я ищу решения с шагами для детей, извините скажем ... Заранее спасибо
В настоящее время невозможно изменить параметры экспозиции, усиления и т. Д. Подключенной камеры FireWire через API-интерфейсы QTKit Capture (дубликат rdar: // 5760371 «Возможность установки яркости, усиления и т. Д. Для камер в QTKit Capture API ", если вам нужна эта функциональность). –
Я столкнулся с следующим примером: «Какао - моя подруга», используя QTKit: [link] http://www.cimgf.com/2008/02/23/nsoperation-example/ Это выглядит многообещающим. Я также использую материал libdc1394, и я добрался до того места, где похоже, что я захватил изображение. У меня возникли проблемы с доступом к данным в форме, которую я могу использовать (перевод указателя на unsigned char в массив из 16-битных целых чисел из 14-битной камеры, в конечном счете для сохранения в виде файла tiff ...) –
Если вы хотите абсолютный контроль, метод Брэда - это разумный подход, но я действительно думаю, что QTKit - это путь. Отлично, чтобы использовать NSOperation для этого, но это так быстро, может быть нет необходимости использовать отдельный поток. –