diff --git a/modules/highgui/src/cap_msmf.cpp b/modules/highgui/src/cap_msmf.cpp index cc522e1e4..a8977a2fe 100644 --- a/modules/highgui/src/cap_msmf.cpp +++ b/modules/highgui/src/cap_msmf.cpp @@ -1462,7 +1462,6 @@ void ImageGrabber::stopGrabbing() HRESULT ImageGrabber::startGrabbing(void) { - _ComPtr pEvent = NULL; PROPVARIANT var; PropVariantInit(&var); HRESULT hr = ig_pSession->SetTopology(0, ig_pTopology); @@ -1470,6 +1469,7 @@ HRESULT ImageGrabber::startGrabbing(void) hr = ig_pSession->Start(&GUID_NULL, &var); for(;;) { + _ComPtr pEvent = NULL; HRESULT hrStatus = S_OK; MediaEventType met; if(!ig_pSession) break; @@ -2445,11 +2445,12 @@ int videoDevice::findType(unsigned int size, unsigned int frameRate) fmt = vd_CaptureFormats.find(size); if( fmt != vd_CaptureFormats.end() ) FRM = fmt->second; - else if (FRM.empty()) - return -1; - else + else if(!vd_CaptureFormats.empty()) FRM = vd_CaptureFormats.rbegin()->second; + if (FRM.empty()) + return -1; + UINT64 frameRateMax = 0; SUBTYPEMap STMMax; if(frameRate == 0) {