diff --git a/client/qt_gl_render/yuvgl/media/CameraCapture.cpp b/client/qt_gl_render/yuvgl/media/CameraCapture.cpp index 0328604..bc0b89d 100644 --- a/client/qt_gl_render/yuvgl/media/CameraCapture.cpp +++ b/client/qt_gl_render/yuvgl/media/CameraCapture.cpp @@ -1,6 +1,7 @@ #include "CameraCapture.h" #include "Debuger.h" + #pragma comment(lib, "strmiids") //define release maco @@ -237,20 +238,23 @@ bool Camera::Open(std::wstring &camera_name) if (names.empty()) { - Close(); return false; + Close(); + return false; } + bool founded = false; + for(std::wstring i : names ){ + if(i == camera_name){ + founded = true; + } + } + if (!founded){ - auto name_it = find(names.begin(), names.end(), camera_name); - if (name_it == names.end()) - { - Close(); return false; - } - - int deviceID = static_cast(distance(names.begin(), name_it)); + } + int deviceID = 0; // create grabber filter instance - CHECK_HR(CoCreateInstance(CLSID_SampleGrabber, NULL, CLSCTX_INPROC_SERVER, + CHECK_HR(CoCreateInstance(IID_ISampleGrabber, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (LPVOID*)&pSampleGrabberFilter)); // bind source device @@ -294,7 +298,7 @@ bool Camera::Open(std::wstring &camera_name) mediaType.formattype = FORMAT_VideoInfo; hr = mSampGrabber->SetMediaType(&mediaType); - CHECK_HR(CoCreateInstance(CLSID_NullRenderer, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**)(&dest_filter))); + CHECK_HR(CoCreateInstance(CLSID_NullRenderer, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**)(&dest_filter))); mGraphBuilder->AddFilter(dest_filter, L"NullRenderer"); // connect source filter to grabber filter