Delen via


Threads en kritieke secties

[De functie die is gekoppeld aan deze pagina, DirectShow, is een verouderde functie. Het is vervangen door MediaPlayer, IMFMediaEngineen Audio/Video Capture in Media Foundation. Deze functies zijn geoptimaliseerd voor Windows 10 en Windows 11. Microsoft raadt ten zeerste aan om nieuwe code te gebruiken MediaPlayer, IMFMediaEngine en Audio/Video Capture in Media Foundation in plaats van DirectShow, indien mogelijk. Microsoft stelt voor dat bestaande code die gebruikmaakt van de verouderde API's, indien mogelijk opnieuw worden geschreven om de nieuwe API's te gebruiken.]

In deze sectie wordt threading in DirectShow-filters beschreven en de stappen die u moet uitvoeren om crashes of impasses in een aangepast filter te voorkomen.

In de voorbeelden in deze sectie wordt pseudocode gebruikt om de code te illustreren die u moet schrijven. Ze gaan ervan uit dat een aangepast filter als volgt klassen gebruikt die zijn afgeleid van de DirectShow-basisklassen:

  • CMyInputPin: Afgeleid van CBaseInputPin.
  • CMyOutputPin: Afgeleid van CBaseOutputPin.
  • CMyFilter: Afgeleid van CBaseFilter.
  • CMyInputAllocator: de allocator van de invoerpin, afgeleid van CMemAllocator. Niet elk filter heeft een aangepaste allocator nodig. Voor veel filters is de CMemAllocator klasse voldoende.

Deze sectie bevat de volgende onderwerpen.

gegevensstroom voor filterontwikkelaars

DirectShow-filters schrijven