重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

現在、キャプチャソフトを作っています。
プレビューとキャプチャの切替で行き詰まってしまいました。

プレビューからキャプチャき切り替える時は、グラフにファイルライタフィルタを追加することで簡単に切り替える事が出来るのですが、
キャプチャからプレビューに切り替える時はファイルライタフィルタをグラフから削除する方法がわからないのです。
IFileSinkFilter->Release()で消すことはできそうですが、グラフエディタで見ると残ってしまいます。
なのでキャプチャとプレビューを切替続けると不具合が起きそうです。

ICaptureGraphBuilder2::SetOutputFileName(...)でグラフに追加したファイルシンクフィルタをRemoveする方法はないのでしょうか?

A 回答 (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/D …
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/05/24 20:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!