QuickTime VR と Core Video

Cocoaに関するヌマタメモ
2008年1月28日 00:00

QuickTime ムービーから特定のフレームの Core Video 用の画像バッファを取得するためにはQTVisualContextCopyImageForTime() 関数を使うのですが、第3引数には CVTimeStamp 構造体のポインタを渡す必要があります。通常この構造体は自分で設定せずに、ディスプレイ・リンクを作っておいて、その仕組みの中で呼び出されるコールバック関数の引数として適切な値が設定されたものをもらうのですね。

んで、この構造体の中の値を自分で設定する方法がいまいち分からない。
ホスト時間とか SMPTE 時間とかって何?
お手軽な変換関数ってないのかしら。

ところで。

今回やりたかったのは、QuickTime VR から特定のフレームを Core Image オブジェクトで
取得したかっただけ。

QuickTime VR については別に時間が必要ないので、ゼロフレーム目だけを表示できればいいのですが、どうやったらそれを CVTimeStamp 構造体で表せるのかと悩んでいたわけです。

ふと思い付いてやってみると、NULL を渡すだけでこれが実現できることが判明。後付けで「Pass NULL to request the image at the current time.」という説明を発見しました。

とりあえずは目的達成。
いつか普通のムービーに対してやりたくなったら困りますね。

コメントを書く


トラックバックはありません。

トラックバックURL: http://numata.designed.jp/mt-tb.cgi/254