IKsInterfaceHandler::KsProcessMediaSamples-Methode (ksproxy.h)
Die KsProcessMediaSamples-Methode verarbeitet Medienbeispiele.
Syntax
HRESULT KsProcessMediaSamples(
[in] IKsDataTypeHandler *KsDataTypeHandler,
[in] IMediaSample **SampleList,
[in, out] PLONG SampleCount,
[in] KSIOOPERATION IoOperation,
[out] PKSSTREAM_SEGMENT *StreamSegment
);
Parameter
[in] KsDataTypeHandler
Zeiger auf die IKsDataTypeHandler-Schnittstelle für den Datentyphandler, der den unter SampleList aufgeführten Medientyp verarbeitet. Dieser Datentyphandler enthält spezifische Informationen zum Medientyp, der gestreamt wird.
[in] SampleList
Zeiger auf einen Puffer, der ein Array von Zeigern auf die IMediaSample-Schnittstellen für die Liste der zu verarbeitenden Medienbeispiele enthält.
[in, out] SampleCount
Zeiger auf eine Variable, die zunächst die Anzahl der Stichproben in der Liste unter SampleList enthält und bei Rückgabe die tatsächliche Anzahl der verarbeiteten Stichproben empfängt.
[in] IoOperation
Wert, der den Typ des E/A-Vorgangs angibt. Dieser Wert kann einer der folgenden Werte aus dem aufgezählten KSIOOPERATION-Typ sein:
Wert | BESCHREIBUNG |
---|---|
KsIoOperation_Write | Schreiben von Daten in den Stream. |
KsIoOperation_Read | Liest Daten aus dem Stream. |
[out] StreamSegment
Zeiger auf einen Puffer, der einen Zeiger auf eine KSSTREAM_SEGMENT-Struktur empfängt, die Headerinformationen für ein Datenstromsegment enthält, das an den Kernelmodus-Pin gesendet wird.
Rückgabewert
Gibt NOERROR zurück, wenn dies erfolgreich war. Gibt andernfalls einen Fehlercode zurück.
Hinweise
Die KsProcessMediaSamples-Methode verschiebt Stichproben von oder zu einem zuvor zugewiesenen Filterpin. Ein Streamheader wird initialisiert, um jedes Medienbeispiel im Streamsegment darzustellen. Die Eingabe und Ausgabe (E/A) werden dann ausgeführt, die Anzahl der Warteelemente wird erhöht, und der Proxy-E/A-Thread wartet auf den Abschluss.
Die KsProcessMediaSamples-Methode ruft die KsQueryExtendedSize-Methode der empfangenen IKsDataTypeHandler-Schnittstelle auf, um die Größe des erweiterten Headers abzurufen. Wenn keine erweiterte Headergröße angegeben wird, verwirft KsProcessMediaSamples den Zeiger auf die IKsDataTypeHandler-Schnittstelle . Wenn eine erweiterte Headergröße angegeben wird, enthält KsProcessMediaSamples den Zeiger auf die IKsDataTypeHandler-Schnittstelle , bis die Verarbeitung der Medienbeispiele abgeschlossen ist. Die KsProcessMediaSamples-Methode ordnet dann die Streamheader mit den entsprechenden Headergrößen zu. Für jedes Medienbeispiel initialisiert KsProcessMediaSamples den Header, kopiert Datenzeiger, legt Zeitstempel fest usw. Jedes Beispiel wird dann der Beispielliste hinzugefügt. Wenn es sich um einen Schreibvorgang handelt, wird das Beispiel gehalten, indem die Verweisanzahl erhöht wird.
Weitere Informationen zu IMediaSample finden Sie in der Dokumentation zu Microsoft Windows SDK.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | ksproxy.h (include Ksproxy.h) |