私は現在、directshow ライブラリを使用して小さなプログラムに取り組んでいます。とりわけ、このプログラムは、コンピュータに接続された任意のカメラを選択してストリームを記録できるはずです。私の問題は、メモリ dshow フィルターを解放する方法がわからないことです。例を挙げましょう:
たとえば、出力ファイル名を設定したい場合、次のように AVI Mux フィルターを作成する必要があります。
IBaseFilter * aviMux;
bGraph->SetOutputFileName(
&MEDIASUBTYPE_Avi,
L"example.avi",
&aviMux,
NULL);
ファイル名を変更して SetOutputFileName() 関数を再度使用したいのですが、メモリ AVI Mux を解放する方法はありますか (ちなみに、この関数は FileWriter フィルターも作成しますが、これも解放したいと思います)。私にできることは次のとおりです。
aviMux->Release();
fGraph->RemoveFilter(aviMux);
しかし、プログラムが終了する前にメモリは解放されますか? 私はこのようなことをしたいと思います:
delete aviMux;
しかし、それは明らかにエラーです。回答とヘルプのアドバイスに感謝します..