Date

Windows Mobile の DirectShow でカメラ制御をするときは Video Capture フィルタを使う。しかし、同一のプロセスにおいて Video Capture フィルタのインスタンスを何度も作成できないようだ。

  1. Video Capture フィルタのインスタンスをCoCreateInstanceで作成し、IPersistPropertyBag::Loadで"CAM1:"を指定し、フィルタグラフへ追加し、グラフを Run する。
  2. Releaseでグラフやフィルタを解放する。
  3. 再度、Video Capture フィルタのインスタンスを作成し、IPersistPropertyBag::Loadを呼ぶとエラーを返す。

Windows Mobile SDK のサンプルではどうなってるのかと調べてみたところ、起動時に一度だけフィルタグラフを作成し、動画や静止画を作成するときに作成済みのフィルタグラフに対してコマンドを発行するような仕組みになっていた。


Comments

comments powered by Disqus