IMFTransform::GetStreamIDs-Methode (mftransform.h)

Ruft die Streambezeichner für die Eingabe- und Ausgabestreams in dieser Media Foundation-Transformation (MFT) ab.

Syntax

HRESULT GetStreamIDs(
  [in]  DWORD dwInputIDArraySize,
  [out] DWORD *pdwInputIDs,
  [in]  DWORD dwOutputIDArraySize,
  [out] DWORD *pdwOutputIDs
);

Parameter

[in] dwInputIDArraySize

Anzahl der Elemente im Array pdwInputIDs .

[out] pdwInputIDs

Zeiger auf ein vom Aufrufer zugeordnetes Array. Die -Methode füllt das Array mit den Eingabedatenstrombezeichnern aus. Die Arraygröße muss mindestens gleich der Anzahl der Eingabestreams sein. Um die Anzahl der Eingabestreams abzurufen, rufen Sie IMFTransform::GetStreamCount auf.

Wenn der Aufrufer ein Array übergibt, das größer als die Anzahl der Eingabedatenströme ist, darf der MFT keine Werte in die zusätzlichen Arrayeinträge schreiben.

[in] dwOutputIDArraySize

Anzahl der Elemente im PdwOutputIDs-Array .

[out] pdwOutputIDs

Zeiger auf ein vom Aufrufer zugeordnetes Array. Die -Methode füllt das Array mit den Ausgabedatenstrombezeichnern aus. Die Arraygröße muss mindestens gleich der Anzahl der Ausgabestreams sein. Rufen Sie GetStreamCount auf, um die Anzahl der Ausgabestreams abzurufen.

Wenn der Aufrufer ein Array übergibt, das größer als die Anzahl der Ausgabestreams ist, darf der MFT keine Werte in die zusätzlichen Arrayeinträge schreiben.

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.
E_NOTIMPL
Nicht implementiert. Siehe Hinweise.
MF_E_BUFFERTOOSMALL
Eines oder beide Arrays sind zu klein.

Hinweise

Streambezeichner sind erforderlich, da einige MFTs Streams hinzufügen oder entfernen können, sodass der Index eines Datenstroms möglicherweise nicht eindeutig ist. Daher nehmen IMFTransform-Methoden , die mit Streams arbeiten, Streambezeichner an.

Diese Methode kann E_NOTIMPL zurückgeben, wenn beide der folgenden Bedingungen zutreffen:

  • Die Transformation verfügt über eine feste Anzahl von Streams.
  • Die Datenströme werden nacheinander von 0 bis n – 1 nummeriert, wobei n die Anzahl der Eingabe- oder Ausgabestreams ist. Mit anderen Worten, der erste Eingabedatenstrom ist 0, der zweite ist 1 usw. und der erste Ausgabedatenstrom ist 0, der zweite ist 1 usw.
Diese Methode muss implementiert werden, wenn eine der folgenden Bedingungen zutrifft:
  • Der MFT kann Ausgabestreams hinzufügen oder entfernen.
  • Mit MFT kann der Client Eingabestreams hinzufügen oder entfernen.
  • Die Streambezeichner sind nicht aufeinander folgend.
Alle Eingabestreambezeichner müssen innerhalb eines MFT eindeutig sein, und alle Ausgabestreambezeichner müssen eindeutig sein. Ein Eingabedatenstrom und ein Ausgabedatenstrom können jedoch denselben Bezeichner verwenden.

Wenn der Client einen Eingabedatenstrom hinzufügt, weist der Client den Bezeichner zu, sodass der MFT beliebige Bezeichner zulassen muss, solange sie eindeutig sind. Wenn der MFT einen Ausgabedatenstrom erstellt, weist der MFT den Bezeichner zu.

Wenn ein MFT über genau einen festen Eingabedatenstrom und einen festen Ausgabedatenstrom verfügt, sollte er gemäß der Konvention beiden Streams den Bezeichner 0 zuweisen.

Wenn MFT_UNIQUE_METHOD_NAMES vor dem Einschließen von mftransform.h definiert ist, wird diese Methode in MFTGetStreamIDs umbenannt. Weitere Informationen finden Sie unter Erstellen von DMO/MFT-Hybridobjekten.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile mftransform.h
Bibliothek Mfuuid.lib

Weitere Informationen

IMFTransform

Media Foundation-Transformationen