Vivek的directshow vcam存在问题

时间:2010-08-18 09:23:03

标签: c++ directshow

CVCam::CVCam(LPUNKNOWN lpunk, HRESULT *phr) : 
    CSource(NAME("Virtual Cam"), lpunk, CLSID_VirtualCam)
{
    ASSERT(phr);
    CAutoLock cAutoLock(&m_cStateLock);
    // Create the one and only output pin
    m_paStreams = (CSourceStream **) new CVCamStream*[1];
    m_paStreams[0] = new CVCamStream(phr, this, L"Virtual Cam");
}

两次实例化m_paStreams的原因是什么?

CAutoLock cAutoLock(&m_cStateLock);是否适用于针对此过滤器的单独请求(通过不同的应用程序)?

1 个答案:

答案 0 :(得分:3)

我不知道这段代码是什么,但我可以向你保证m_paStreams只在你发布的内容中初始化一次。

m_paStreams似乎是一个指向CSourceStream对象的指针数组。据推测,可能有多个这样的对象,因此,阵列。您的代码只是创建一个大小为1的数组,然后对于数组的第一个元素,创建CVCamStream对象。