Udostępnij przez


Filtruj menedżera programu Graph

[Funkcja skojarzona z tą stroną, DirectShow, jest starszą funkcją. Został zastąpiony przez MediaPlayer, IMFMediaEnginei Audio/Video Capture w Media Foundation. Te funkcje zostały zoptymalizowane pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał MediaPlayer, IMFMediaEngine i Audio/Video Capture w programie Media Foundation zamiast DirectShow, jeśli to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]

Menedżer filtrów programu Graph kompiluje i kontroluje wykresy filtru. Ten obiekt jest centralnym składnikiem w directshow. Aplikacje używają ich do tworzenia i kontrolowania grafów filtrów. Menedżer filtrów programu Graph obsługuje również synchronizację, powiadomienia o zdarzeniach i inne aspekty sterowania grafem filtru. Utwórz ten obiekt, wywołując CoCreateInstance.

CLSID

Istnieją dwa identyfikatory CLSID służące do tworzenia Menedżera filtrów programu Graph:

CLSID Opis
CLSID_FilterGraph Tworzy Menedżera filtrów programu Graph w wątku udostępnionego procesu roboczego.
CLSID_FilterGraphNoThread Tworzy Menedżera filtrów programu Graph w wątku aplikacji.

 

Ogólnie rzecz biorąc, aplikacje powinny używać CLSID_FilterGraph. Oba identyfikatory CLSID tworzą ten sam obiekt, ale używają różnych modeli wątków:

  • CLSID_FilterGraph tworzy Menedżera filtrów programu Graph w wątku roboczym, który jest współużytkowany przez wszystkie wystąpienia CLSID_FilterGraph w ramach tego samego procesu. Wątek wysyła komunikaty wysyłane przez filtry i kontroluje okres istnienia wszystkich okien utworzonych przez filtry.
  • CLSID_FilterGraphNoThread tworzy Menedżera filtrów programu Graph w wątku aplikacji. Jeśli używasz tego identyfikatora CLSID, wątek wywołujący CoCreateInstance musi mieć pętlę komunikatów wysyłającą komunikaty; w przeciwnym razie mogą wystąpić zakleszczenia. Ponadto, zanim wątek aplikacji zakończy działanie, musi zwolnić Menedżera programu Graph filtru i wszystkie obiekty grafu (takie jak filtry, pinezki, zegary referencyjne itd.).

Interfejsów

Menedżer filtrów programu Graph uwidacznia następujące interfejsy:

obiektów DirectShow