QTKit Captureを使ってみる [プログラミング - QTKit Capture]
仕事で使う可能性があるMac OSXの新しいFrameworkであるQTKit Captureの勉強をちょっとだけした。使ってみてなんとなく雰囲気はわかった。その備忘録。ライトオンリメモリ(読み出し不能)とも言う。
いきさつ
これは個人的なメモなのでいきさつなんかどうでもええけど、ほんのわずかながら、わざわざ見てくれている人たちがいるので、その人たちに失礼のないようにイントロを書いておく。すこしでもその人たちの参考になれば幸いである。
これまで、僕は光の強度分布の観察などにIEEE1394経由のIIDCカメラを使っていた。これは
- 無圧縮、γ補正無し、AGC無しの生データが得られる
- ケーブル一本でカメラと繋ぐことができてMacなら1394ポートを標準で持っている
- Mac OSXがサポートしている
ただし、
- QuickTimeのSequenceGrabber APIは古くて複雑でわかりにくい
僕はOS9時代に、本当に苦労に苦労を重ねてやっと使い物になる程度の効率で動くカメラを使った干渉計のソフトを書いた。当時はIEEE1394ではなくアナログのフレームグラバだった。
Mac OSXにQuickTimeが移植され、QuickDrawはCarbon APIとして引き継がれて、一応SequenceGrabberもOSXで使えることになったが10.3でQuickDrawの多くのルーチンはObsolete指定となり、10.5でもまだ使えはするけど10.4あたりからなぜかPowerPCとIntelで微妙に動作が異なるなど、使い続けるには不便になってきた。
SequenceGrabber自身はQuickDrawの依存をなくしてCore FoundationとQuartzを使うようになったが実際にSequenceGrabberを使っているコードをQuickDrawからQuartzに置き換えるのは、少なくともCocoaプログラマにとっては非常に敷居が高く、難しい。
Mac OSX10.4からQTKitというFrameworkが導入された。これはQuickTimeのCocoaラッパで、Cocoaからでも簡単にQuickTimeを使うためのクラスが整備された。Cocoaの他のFrameworkと同じようにして使えて非常に簡単になったが、当初はSquenceGrabberはサポートされていなかった。
Mac OSX10.5からそれをおぎなうQTKit CaptureというFramework(10.5ではQTKitに含まれる)が導入された。
いずれ、今仕事で使っているMacが使い物にならなくなったとき、移植する目的で今回QTKitCaptureを使ってみたので、メモを残しておく。
QTKit Caputreとは?
QTKit CaptureはMacに繋がったカメラや、映像出力信号を持った機器や、マイクなどの音声入力機器から映像音声を入力し、プレビューを表示したり、ファイルに保存したりをサポートするクラス群である。
QTKit CaptureについてはAppleのガイドがある。 このガイドにあるように入力にはIEEE1394だけでなくいろいろな外部デバイスが使える。これはすなわちSequenceGrabberがサポートしている範囲そのものである。このことからもQTKit CaptureはSequenceGrabberの単なるラッパであるということが想像できる。
風邪気味なのに、こんなのを書いてて夜更かししてたらあかんがな。中途半端やけど寝よ。
コメント 0