IMFTransform::GetStreamIDs-Methode (mftransform.h)

Ruft die Datenstrombezeichner für die Eingabe- und Ausgabedatenströme 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 pdwInputIDs-Array .

[out] pdwInputIDs

Zeiger auf ein Array, das vom Aufrufer zugewiesen wurde. Die Methode füllt das Array mit den Eingabedatenstrombezeichnern aus. Die Arraygröße muss mindestens gleich der Anzahl der Eingabedatenströme sein. Um die Anzahl der Eingabedatenströme 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 Array, das vom Aufrufer zugewiesen wurde. Die Methode füllt das Array mit den Ausgabedatenstrombezeichnern aus. Die Arraygröße muss mindestens gleich der Anzahl der Ausgabedatenströme sein. Rufen Sie GetStreamCount auf, um die Anzahl der Ausgabedatenströme abzurufen.

Wenn der Aufrufer ein Array übergibt, das größer als die Anzahl der Ausgabeströme 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
Eine oder beide Arrays sind zu klein.

Hinweise

Datenstrombezeichner sind erforderlich, da einige MFTs Datenströme hinzufügen oder entfernen können, sodass der Index eines Datenstroms möglicherweise nicht eindeutig ist. Daher übernehmen IMFTransform-Methoden , die auf Datenströmen arbeiten, Datenstrombezeichner.

Diese Methode kann E_NOTIMPL zurückgeben, wenn beide der folgenden Bedingungen erfüllt sind:

  • Die Transformation weist eine feste Anzahl von Datenströmen auf.
  • Die Datenströme werden fortlaufend von 0 bis n – 1 nummeriert, wobei n die Anzahl der Eingabedatenströme oder Ausgabedatenströme 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 erfüllt ist:
  • Die MFT kann Ausgabedatenströme hinzufügen oder entfernen.
  • Mit dem MFT kann der Client Eingabedatenströme hinzufügen oder entfernen.
  • Die Datenstrombezeichner sind nicht aufeinanderfolgen.
Alle Eingabedatenstrombezeichner müssen innerhalb eines MFT eindeutig sein, und alle Ausgabedatenstrombezeichner müssen eindeutig sein. Ein Eingabedatenstrom und ein Ausgabedatenstrom können jedoch denselben Bezeichner freigeben.

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

Wenn ein MFT genau einen festen Eingabedatenstrom und einen festen Ausgabedatenstrom aufweist, sollte er beiden Streams den Bezeichner 0 zuweisen.

Wenn MFT_UNIQUE_METHOD_NAMES vor dem Einschließen von mftransform.h definiert ist, wird diese Methode MFTGetStreamIDs umbenannt. Siehe Erstellen von Hybrid-DMO/MFT-Objekten.

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