• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DirectShowでフィルタの削除)

DirectShowでフィルタの削除

このQ&Aのポイント
  • DirectShowフィルタの削除方法を探しています。
  • キャプチャソフトのプレビューとキャプチャの切り替えに関して問題が発生しました。
  • ICaptureGraphBuilder2::SetOutputFileName(...)で追加されたファイルシンクフィルタを削除する方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

1.フィルタの追加削除で切り替える方法  ・フィルタグラフを停止する  ・削除したいフィルタにつながっているピンを切断する  ・フィルタを削除する 以上の手順でできます 使用するインターフェイスは  IMediaControl::Stop  IPin::Disconnect or IFilterGraph::Disconnect  IFilterGraph::RemoveFilter です IFileSinkFilterは保存ファイル名の設定などを行うインターフェイスです。 操作してもフィルタグラフの状態は変わりません 2.プレビューとキャプチャのやり方を変更する ICaptureGraphBuilderインターフェイスを使用するといいと思います ICaptureGraphBuilder2::RenderStream ICaptureGraphBuilder2::ControlStream あたりを使用すれば目的の事ができると思います RenderStreamを2回呼び、常にキャプチャとプレビューの2つをレンダーした状態にしておきます ControlStream を使用し、再生するほう(キャプチャかプレビュー)を指定する 上記手順の参考URL http://www.microsoft.com/japan/msdn/library/ja/DirectX9_c/directx/htm/videocapture.asp

hipon046
質問者

お礼

ありがとうございます。 補足したつもりでしたが、なぜか書き込み出来ていませんでした。すみません。 試行錯誤の結果、キャプチャピンから検索して、出力ピンに繋がっているフィルタを消し続ける事解決しました。

関連するQ&A