Freigeben über


Threads und kritische Abschnitte

[Das dieser Seite zugeordnete Feature DirectShow-ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngineund Audio/Video Capture in Media Foundationersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code MediaPlayer-, IMFMediaEngine und Audio-/Videoaufnahme in Media Foundation anstelle von DirectShow-verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, um die neuen APIs zu verwenden, falls möglich umgeschrieben werden.]

In diesem Abschnitt werden Threading in DirectShow-Filtern und die Schritte beschrieben, die Sie ausführen sollten, um Abstürze oder Deadlocks in einem benutzerdefinierten Filter zu vermeiden.

In den Beispielen in diesem Abschnitt wird pseudocode verwendet, um den Code zu veranschaulichen, den Sie schreiben müssen. Sie gehen davon aus, dass ein benutzerdefinierter Filter Klassen verwendet, die von den DirectShow-Basisklassen abgeleitet sind, wie folgt:

  • CMyInputPin: Abgeleitet von CBaseInputPin.
  • CMyOutputPin: Abgeleitet von CBaseOutputPin.
  • CMyFilter: Abgeleitet von CBaseFilter.
  • CMyInputAllocator: Der Allokator des Eingabenadels, abgeleitet von CMemAllocator. Nicht jeder Filter benötigt einen benutzerdefinierten Zuweisungsoperator. Für viele Filter reicht die CMemAllocator Klasse aus.

Dieser Abschnitt enthält die folgenden Themen.

Datenfluss für Filterentwickler

Schreiben von DirectShow-Filtern