0

我正在尝试IAMStreamConfig从集成摄像头上的输出引脚检索接口,但未能成功E_NOINTERFACE

我使用 IntCam 作为测试设备,实际上我将有一个带有两个输出引脚的源过滤器,每个引脚都支持不同的配置。

这就是为什么我不确定 usingICaptureGraphBuilder2::FindInterface是一个选项的原因,因为我还没有弄清楚如何从特定的输出引脚获取接口。

CComPtr<IEnumPins> pEnum = NULL;
IPin* pPin = NULL;

HRESULT hr = pFilter->EnumPins(&pEnum);
if (FAILED(hr))
    return hr;

while (S_OK == pEnum->Next(1, &pPin, NULL))
{
   IAMStreamConfig* pAMStreamConfig;
   hr = pPin->QueryInterface(IID_PPV_ARGS(&pAMStreamConfig));
   if (FAILED(hr))
      return hr;
   // ...
}
4

1 回答 1

3

IAMStreamConfig不是强制性接口,我可能会丢失它,尽管在相机过滤器上它几乎总是可用的(否则许多应用程序会拒绝使用没有此接口的设备)。也就是说,您应该仔细检查您查询的过滤器和引脚是否正确,代码片段看起来不错。

真正的相机通常是通过WDM Video Capture Filterwhich has实现的,IAMStreamConfig但是由于您使用的是虚拟设备,因此可能会有所不同。

于 2012-08-22T12:18:27.300 回答