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.]
W tej sekcji opisano wątki w filtrach DirectShow oraz kroki, które należy wykonać, aby uniknąć awarii lub zakleszczenia w filtrze niestandardowym.
W przykładach w tej sekcji użyto pseudokodu, aby zilustrować kod, który należy napisać. Zakładają, że niestandardowy filtr używa klas pochodnych z klas bazowych DirectShow w następujący sposób:
- CMyInputPin: pochodzi z CBaseInputPin.
- CMyOutputPin: pochodzi z CBaseOutputPin.
- CMyFilter: pochodzi z CBaseFilter.
- CMyInputAllocator: alokator wyprowadzenia wejściowego pochodzący z CMemAllocator. Nie każdy filtr wymaga niestandardowego alokatora. W przypadku wielu filtrów wystarczająca jest klasa CMemAllocator.
Ta sekcja zawiera następujące tematy.
- wątki przesyłania strumieniowego i aplikacji
- wstrzymując
- odbieranie i dostarczanie przykładów
- dostarczanie końca strumienia
- opróżnianie danych
- zatrzymywanie
- pobieranie
- wątki przesyłania strumieniowego i menedżera filtrów programu Graph
- podsumowanie filtrowania wątków
Tematy pokrewne
-
przepływ danych dla deweloperów filtrów