能够在GraphEdit中将视频渲染到MUX,但在代码中获取VFW_E_CANNOT_CONNECT

时间:2015-11-11 08:50:12

标签: c++ directshow

我正在尝试让3ivxfilters在我的C ++ Directshow应用程序中工作,并且它仍然无法将3IVX视频编码器输出引脚连接到3IVX Media Muxer输入引脚。我总是得到错误VFW_E_CANNOT_CONNECT。

所有过滤器都已通过枚举列表添加到图表中,因此不会因为直接添加CLSID而出现任何问题。

当我通过图形编辑打开图形并右键单击/选择Video Encoder输出引脚上的渲染时,它可以正常工作。

以下是我连接过滤器的代码:

    HRESULT ConnectFilters(IGraphBuilder *pGraph, IBaseFilter *pSrc, IBaseFilter *pDest)
{
    IPin *pOut = NULL;

    // Find an output pin on the first filter.
    HRESULT hr = FindUnconnectedPin(pSrc, PINDIR_OUTPUT, &pOut);
    if (SUCCEEDED(hr))
    {
        hr = ConnectFilters(pGraph, pOut, pDest);
        pOut->Release();
    }
    return hr;
}

基本上一旦找到合适的引脚,它就会使用Connect方法。

            hr = pGraph->Connect(pOut, pIn);

0 个答案:

没有答案
相关问题