読者です 読者をやめる 読者になる 読者になる

DirectShowめも

遅延録画したいとき

ICaptureGraphBuilder2::ControlStreamを使うといいっぽい
キャプチャして5秒後からの映像から保存したいとき

// 出力ファイル名設定
this->pCaptureGraphBuilder2->SetOutputFileName(&MEDIASUBTYPE_Avi,
    this->outputFilename.AllocSysString(), &this->pFileOut, &this->pSink);
// Graph生成
this->pCaptureGraphBuilder2->RenderStream(&PIN_CATEGORY_CAPTURE,
    &MEDIATYPE_Video, this->pDeviceFilter, NULL, pFileOut);

//開始時刻、終了時刻(100ナノ秒単位)
REFERENCE_TIME time1, time2;
//5秒後に撮影開始
time1 = 1000 * 1000 * 10 * 5;
//開始時刻と終了時刻設定(終了時刻NULLなので無限)
this->pCaptureGraphBuilder2->ControlStream(&PIN_CATEGORY_CAPTURE,
    &MEDIATYPE_Video, this->pDeviceFilter, &time1, &time2, NULL, NULL);
//マグロ、撮影開始!!
this->pMediaControl->Run();