IMemAllocator-Schnittstelle (strmif.h)
[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]
Die IMemAllocator
Schnittstelle ordnet Medienbeispiele zu, um Daten zwischen Pins zu verschieben.
Diese Schnittstelle wird von Pins verwendet, die Zuweisungen gemeinsam nutzen, wenn der Eingabenadel die IMemInputPin-Schnittstelle verfügbar macht. Die Pins verhandeln, welcher Pin die Zuweisung bereitstellt. Die Zuweisung wird verwendet, um Speicherpuffer zuzuweisen, leere Puffer abzurufen und Puffer freizugeben. Nicht jeder Filter erstellt eine eigene Zuweisung, sodass ein Allocator von mehreren Filtern verwendet werden kann. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Filtern.
Anwendungen verwenden diese Schnittstelle in der Regel nicht.
Führen Sie die folgenden Schritte aus, um eine Zuweisung zu verwenden:
- Rufen Sie die IMemAllocator::SetProperties-Methode auf, um die Pufferanforderungen anzugeben, einschließlich der Anzahl der Puffer und der Größe jedes Puffers.
- Rufen Sie die IMemAllocator::Commit-Methode auf, um die Puffer zuzuweisen.
- Rufen Sie die IMemAllocator::GetBuffer-Methode auf, um Medienbeispiele abzurufen. Diese Methode wird blockiert, bis das nächste Beispiel verfügbar ist.
- Wenn Sie mit den einzelnen Beispielen fertig sind, rufen Sie die IUnknown::Release-Methode für das Beispiel auf. Das Beispiel wird nicht gelöscht, wenn die Verweisanzahl 0 (null) erreicht. Stattdessen kehrt das Beispiel zur free-Liste des Zuweisungsgebers zurück.
- Wenn Sie mit der Zuweisung fertig sind, rufen Sie die IMemAllocator::D ecommit-Methode auf, um den Arbeitsspeicher für die Puffer freizugeben.
Vererbung
Die IMemAllocator-Schnittstelle erbt von der IUnknown-Schnittstelle . IMemAllocator verfügt auch über folgende Membertypen:
Methoden
Die IMemAllocator-Schnittstelle verfügt über diese Methoden.
IMemAllocator::Commit Die Commit-Methode ordnet den Pufferspeicher zu. |
IMemAllocator::D ecommit Die Decommit-Methode gibt den Pufferspeicher frei. |
IMemAllocator::GetBuffer Die GetBuffer-Methode ruft ein Medienbeispiel ab, das einen leeren Puffer enthält. |
IMemAllocator::GetProperties Die GetProperties-Methode ruft die Anzahl der Puffer ab, die vom Allocator erstellt werden, und die Puffereigenschaften. |
IMemAllocator::ReleaseBuffer Die ReleaseBuffer-Methode gibt ein Medienbeispiel frei. |
IMemAllocator::SetProperties Die SetProperties-Methode gibt die Anzahl der zuzuordnenden Puffer und die Größe der einzelnen Puffer an. |
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | strmif.h (include Dshow.h) |