2010-08-18 4 views
0
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"); 
} 

Quelle est la raison pour instancier deux fois m_paStreams?Un problème avec la vcam de DirectShow de Vivek

Est-ce que CAutoLock cAutoLock(&m_cStateLock); fonctionne pour une demande séparée (par une application différente) à ce filtre?

Répondre

3

Je n'ai aucune idée de ce qu'est ce code, mais je peux vous assurer que m_paStreams n'est initialisé qu'une fois dans ce que vous avez posté.

Il semble que m_paStreams soit un tableau de pointeurs vers des objets CSourceStream. Vraisemblablement, il est possible d'avoir plus d'un de ces objets, d'où le tableau. Votre code crée simplement un tableau de taille 1, puis, pour le premier élément du tableau, crée l'objet CVCamStream.

Questions connexes