Dela via


Filter Graph Manager

[Funktionen som är associerad med den här sidan, DirectShow, är en äldre funktion. Det har ersatts av MediaPlayer, IMFMediaEngineoch Audio / Video Capture i Media Foundation. Dessa funktioner har optimerats för Windows 10 och Windows 11. Microsoft rekommenderar starkt att ny kod använder MediaPlayer, IMFMediaEngine och Audio/Video Capture i Media Foundation i stället för DirectShow, när det är möjligt. Microsoft föreslår att befintlig kod som använder äldre API:er skrivs om för att använda de nya API:erna om möjligt.]

Filter Graph Manager skapar och styr filterdiagram. Det här objektet är den centrala komponenten i DirectShow. Program använder den för att skapa och kontrollera filterdiagram. Filter Graph Manager hanterar även synkronisering, händelsemeddelande och andra aspekter av kontrollen av filterdiagrammet. Skapa det här objektet genom att anropa CoCreateInstance.

CLSID

Det finns två CLSID:er för att skapa Filter Graph Manager:

CLSID Beskrivning
CLSID_FilterGraph Skapar Filter Graph Manager på en delad arbetstråd.
CLSID_FilterGraphNoThread Skapar Filter Graph Manager i programtråden.

 

I allmänhet bör program använda CLSID_FilterGraph. Båda CLSID:erna skapar samma objekt, men de använder olika trådmodeller:

  • CLSID_FilterGraph skapar Filter Graph Manager på en arbetstråd som delas av alla CLSID_FilterGraph instanser i samma process. Tråden skickar meddelanden som skickas av filter och styr livslängden för alla fönster som skapas av filter.
  • CLSID_FilterGraphNoThread skapar Filter Graph Manager i programmets tråd. Om du använder detta CLSID måste tråden som anropar CoCreateInstance ha en meddelandeloop som skickar meddelanden. annars kan dödlägen uppstå. Innan programtråden avslutas måste den också släppa Filter Graph Manager och alla grafobjekt (till exempel filter, stift, referensklockor och så vidare).

Gränssnitt

Filter Graph Manager visar följande gränssnitt:

DirectShow-objekt