mirror of
https://github.com/opencv/opencv.git
synced 2024-11-25 19:50:38 +08:00
Merge pull request #3260 from a-wi:MSMF_file_error
This commit is contained in:
commit
1920232268
@ -3847,18 +3847,25 @@ bool CvCaptureFile_MSMF::open(const char* filename)
|
|||||||
hr = enumerateCaptureFormats(videoFileSource);
|
hr = enumerateCaptureFormats(videoFileSource);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SUCCEEDED(hr))
|
if( captureFormats.empty() )
|
||||||
{
|
{
|
||||||
hr = ImageGrabberThread::CreateInstance(&grabberThread, videoFileSource, (unsigned int)-2, true);
|
isOpened = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
hr = ImageGrabberThread::CreateInstance(&grabberThread, videoFileSource, (unsigned int)-2, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
isOpened = SUCCEEDED(hr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SUCCEEDED(hr))
|
if (isOpened)
|
||||||
{
|
{
|
||||||
grabberThread->start();
|
grabberThread->start();
|
||||||
}
|
}
|
||||||
|
|
||||||
isOpened = SUCCEEDED(hr);
|
|
||||||
|
|
||||||
return isOpened;
|
return isOpened;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3990,7 +3997,9 @@ HRESULT CvCaptureFile_MSMF::enumerateCaptureFormats(IMFMediaSource *pSource)
|
|||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
MediaType MT = FormatReader::Read(pType.Get());
|
MediaType MT = FormatReader::Read(pType.Get());
|
||||||
captureFormats.push_back(MT);
|
// We can capture only RGB video.
|
||||||
|
if( MT.MF_MT_SUBTYPE == MFVideoFormat_RGB24 )
|
||||||
|
captureFormats.push_back(MT);
|
||||||
}
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
Loading…
Reference in New Issue
Block a user