25 #ifndef INCLUDED_GetIVideoProcAmp_h_GUID_F35BD30E_FB93_45BF_9957_8E7F69290E46
26 #define INCLUDED_GetIVideoProcAmp_h_GUID_F35BD30E_FB93_45BF_9957_8E7F69290E46
29 #define OSVR_HAVE_IVIDEOPROCAMP
34 #ifdef OSVR_HAVE_IVIDEOPROCAMP
36 #include "comutils/ComPtr.h"
48 inline comutils::Ptr<IVideoProcAmp> getIVideoProcAmp(IBaseFilter &filter) {
49 auto ret = comutils::Ptr<IVideoProcAmp>{};
51 auto ksTopoInfo = comutils::Ptr<IKsTopologyInfo>{};
52 filter.QueryInterface(__uuidof(IKsTopologyInfo), AttachPtr(ksTopoInfo));
54 std::cout <<
"directx_camera_server: Couldn't get IKsTopologyInfo"
58 auto numNodes = DWORD{0};
59 ksTopoInfo->get_NumNodes(&numNodes);
61 std::cout <<
"directx_camera_server: has " << numNodes <<
" nodes"
63 for (DWORD i = 0; i < numNodes; ++i) {
65 ksTopoInfo->get_NodeType(i, &nodeType);
66 if (nodeType == KSNODETYPE_VIDEO_PROCESSING) {
68 <<
"directx_camera_server: node has video processing type: "
70 ksTopoInfo->CreateNodeInstance(i, __uuidof(IVideoProcAmp),
79 #endif // OSVR_HAVE_IVIDEOPROCAMP
81 #endif // INCLUDED_GetIVideoProcAmp_h_GUID_F35BD30E_FB93_45BF_9957_8E7F69290E46