CBaseAllocator.GetBuffer-Methode
Die GetBuffer -Methode ruft ein Medienbeispiel ab, das einen Puffer enthält. Diese Methode implementiert die IMemAllocator::GetBuffer-Methode.
Syntax
HRESULT GetBuffer(
IMediaSample **ppBuffer,
REFERENCE_TIME *pStartTime,
REFERENCE_TIME *pEndTime,
DWORD dwFlags
);
Parameter
-
ppBuffer
-
Empfängt einen Zeiger auf die IMediaSample-Schnittstelle des Puffers. Der Aufrufer muss die Schnittstelle frei geben.
-
pStartTime
-
Zeiger auf die Startzeit des Beispiels.
-
pEndTime
-
Zeiger auf die Endzeit des Beispiels.
-
dwFlags
-
Bitweise Kombination von null oder mehr Flags. Die Basisklasse unterstützt das folgende Flag.
Wert Bedeutung - AM _ GBF _ NOWAIT
Warten Sie nicht, bis ein Puffer verfügbar wird.
Rückgabewert
Gibt einen der folgenden HRESULT-Werte zurück.
| Rückgabecode | Beschreibung |
|---|---|
|
Erfolg. |
|
Für allocator wurde kein Committed für die Zuweisungs-. |
|
Timed out. |
Hinweise
Sofern der Aufrufer das AM _ GBF _ NOWAIT-Flag in dwFlags nicht angibt, wird diese Methode blockiert, bis das nächste Beispiel verfügbar ist.
Das abgerufene Medienbeispiel verfügt über einen gültigen Zeiger auf den zugeordneten Puffer. Der Aufrufer ist für das Festlegen anderer Eigenschaften im Beispiel verantwortlich, z. B. zeitstempel, medienzeit oder Synchronisierungspunkteigenschaft. Weitere Informationen finden Sie unter IMediaSample.
In der Basisklasse werden die Parameter pStartTime und pEndTime ignoriert. Abgeleitete Klassen können diese Werte verwenden. Beispielsweise verwendet die Zuweisung für den Videorendererfilter diese Werte, um den Wechsel zwischen DirectDraw-Oberflächen zu synchronisieren.
Wenn die Methode auf ein Beispiel warten muss, erhöht sie die Anzahl der wartenden Objekte (CBaseAllocator::m _ lCount) und ruft die WaitForSingleObject-Funktion für das Semaphor auf (CBaseAllocator::m _ hSem). Wenn ein Beispiel verfügbar wird, ruft es die CBaseAllocator::ReleaseBuffer-Methode für die Zuweisung auf, wodurch die Semaphoranzahl um m _ lCount erhöht wird (wodurch die wartenden Threads frei werden) und m _ lCount wieder auf 0 (null) gesetzt wird.
Anforderungen
| Anforderung | Wert |
|---|---|
| Header |
|
| Bibliothek |
|