IMFASFMultiplexer::P rocessSample-Methode (wmcontainer.h)

Übermittelt Eingabebeispiele an den Multiplexer.

Syntax

HRESULT ProcessSample(
  [in] WORD      wStreamNumber,
  [in] IMFSample *pISample,
  [in] LONGLONG  hnsTimestampAdjust
);

Parameter

[in] wStreamNumber

Die Streamnummer des Datenstroms, zu dem das Beispiel gehört.

[in] pISample

Zeiger auf die IMFSample-Schnittstelle des Eingabebeispiels. Das Eingabebeispiel enthält die Mediendaten, die in ASF-Datenpakete konvertiert werden sollen. Wenn möglich, sollte der Zeitstempel dieses Beispiels genau sein.

[in] hnsTimestampAdjust

Die Anpassung, die auf den Zeitstempel des Beispiels angewendet werden soll. Dieser Parameter wird verwendet, wenn der Aufrufer die Beispielzeit auf pISample verschieben möchte. Dieser Wert sollte positiv sein, wenn der Zeitstempel vorgeschoben werden soll, und negativ, wenn der Zeitstempel zurückgeschoben werden soll. Dieser Zeitstempel wird der Stichprobenzeit auf pISample hinzugefügt, und die resultierende Zeit wird vom Multiplexer anstelle der ursprünglichen Samplezeit verwendet. Wenn keine Anpassung erforderlich ist, legen Sie diesen Wert auf 0 fest.

Rückgabewert

Die Methode gibt ein HRESULT zurück. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich ausgeführt.
MF_E_NOTACCEPTING
Es gibt zu viele Pakete, die darauf warten, vom Multiplexer abgerufen zu werden. Rufen Sie IMFASFMultiplexer::GetNextPacket auf, um die Pakete abzurufen.
MF_E_BANDWIDTH_OVERRUN
Das verarbeitete Beispiel verstößt gegen die Bandbreitenbeschränkungen, die für den Stream im ASF ContentInfo-Objekt angegeben sind. Wenn dieser Fehler generiert wird, wird das Beispiel gelöscht.
MF_E_INVALIDSTREAMNUMBER
Der in wStreamNumber übergebene Wert ist ungültig.
MF_E_LATE_SAMPLE
Die Präsentationszeit des Eingabemedienbeispiels ist früher als die Sendezeit.

Hinweise

Die Anwendung übergibt Beispiele an ProcessSample, und der ASF-Multiplexer stellt sie intern in die Warteschlange, bis sie in ASF-Pakete platziert werden können. Rufen Sie IMFASFMultiplexer::GetNextPacket auf, um das ASF-Datenpaket abzurufen.

Rufen Sie nach jedem Aufruf von ProcessSampleGetNextPacket in einer Schleife auf, um alle verfügbaren Datenpakete abzurufen. Ein Codebeispiel finden Sie unter Generieren neuer ASF-Datenpakete.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wmcontainer.h
Bibliothek Mfuuid.lib

Weitere Informationen

Generieren neuer ASF-Datenpakete

IMFASFMultiplexer

IMFSample