複数ファイルへのキャプチャ
ファイルにビデオをキャプチャした後、グラフを停止し、ファイル ライタ フィルタでファイル名を設定すると、新しいファイルに切り替えられる。ファイル ライタに対して IFileSinkFilter::SetFileName メソッドを呼び出す。SetOutputFileName メソッドの pSink パラメータを使い、グラフを作成するときに IFileSinkFilter インターフェイスへのポインタを取得できる。次のコードは、その方法を示している。
IBaseFilter *pMux;
IFileSinkFilter *pSink
hr = pBuild->SetOutputFileName(&MEDIASUBTYPE_Avi, L"C:\\YourFileName.avi",
&pMux, &pSink);
if (SUCCEEDED(hr))
{
hr = pBuild->RenderStream(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video,
pCap, NULL, pMux);
if (SUCCEEDED(hr))
{
pControl->Run();
/* 少しの間待機した後、グラフを停止する。 */
pControl->Stop();
// ファイル名を変更し、もう一度グラフを実行する。
pSink->SetFileName(L"YourFileName02.avi", 0);
pControl->Run();
}
pMux->Release();
pSink->Release();
}