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)

Weitere Informationen

IKsDataTypeHandler

IKsDataTypeHandler::KsQueryExtendedSize

KSSTREAM_SEGMENT