dshow: Add ability to save direct show graph

This commit is contained in:
Elms 2019-09-05 13:51:37 -07:00
parent ffea927ac2
commit 8b483a91bc

View File

@ -2936,6 +2936,22 @@ int videoInput::start(int deviceID, videoDevice *VD){
DebugPrintOut("SETUP: Device is setup and ready to capture.\n\n");
VD->readyToCapture = true;
// check for optional saving the direct show graph to a file
const char* graph_filename = getenv("OPENCV_DSHOW_SAVEGRAPH_FILENAME");
if (graph_filename) {
size_t filename_len = strlen(graph_filename);
std::vector<WCHAR> wfilename(filename_len + 1);
size_t len = mbstowcs(&wfilename[0], graph_filename, filename_len + 1);
CV_Assert(len == filename_len);
HRESULT res = SaveGraphFile(VD->pGraph, &wfilename[0]);
if (SUCCEEDED(res)) {
DebugPrintOut("Saved DSHOW graph to %s\n", graph_filename);
} else {
DebugPrintOut("Failed to save DSHOW graph to %s\n", graph_filename);
}
}
//Release filters - seen someone else do this
//looks like it solved the freezes