Freigeben über


CBaseOutputPin.DecideAllocator-Methode

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Die DecideAllocator -Methode wählt einen Speicherzuordnungsator aus.

Syntax

virtual HRESULT DecideAllocator(
   IMemInputPin  *pPin,
   IMemAllocator **pAlloc
);

Parameter

pPin

Zeiger auf die IMemInputPin-Schnittstelle des Eingabenadels.

pAlloc

Adresse einer Variablen, die einen Zeiger auf die IMemAllocator-Schnittstelle des Zuteilungsgebers empfängt.

Rückgabewert

Gibt bei erfolgreicher Ausführung S_OK oder einen HRESULT-Wert zurück, der die Fehlerursache angibt.

Bemerkungen

Diese Methode wird am Ende des Pinverbindungsprozesses aufgerufen. Sie führt die folgenden Schritte aus:

  1. Ruft die IMemInputPin::GetAllocatorRequirements-Methode auf, um die Pufferanforderungen des Eingabenadels abzurufen, falls vorhanden.
  2. Ruft die IMemInputPin::GetAllocator-Methode auf, um eine Zuordnung vom Eingabenadel anzufordern. Wenn der Eingabenadel keinen Zuteilungsstift bereitstellt, erstellt der Ausgabepin einen, indem die CBaseOutputPin::InitAllocator-Klassenmethode aufgerufen wird .
  3. Ruft die CBaseOutputPin::D ecideBufferSize-Klassenmethode auf, die die Allocatoreigenschaften festlegt. Dies ist eine reine virtuelle Methode; die abgeleitete Klasse muss sie implementieren.
  4. Ruft die IMemInputPin::NotifyAllocator-Methode auf, die den Eingabenadel des verwendeten Zuordnungselements benachrichtigt.

Anforderungen

Anforderung Wert
Header
Amfilter.h (include Streams.h)
Bibliothek
Strmbase.lib (Einzelhandelsbuilds);
Strmbasd.lib (Debugbuilds)

Siehe auch

CBaseOutputPin-Klasse