Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
[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:
- IAMGraphStreams
- IAMStats
- IBasicAudio
- IBasicVideo
- IBasicVideo2
- IFilterChain
- IFilterGraph
- IFilterGraph2
- IFilterGraph3
- IFilterMapper2
- IGraphBuilder
- IGraphConfig
- IGraphVersion
- IMediaControl
- IMediaEvent
- IMediaEventEx
- IMediaEventSink
- IMediaFilter
- IMediaPosition
- IMediaSeeking
- IQueueCommand
- IRegisterServiceProvider
- IResourceManager
- IServiceProvider
- IVideoFrameStep
- IVideoWindow
Tematy pokrewne