Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Fügt einem Datenstrom eine Transformation hinzu, z. B. einen Audio- oder Videoeffekt.
Syntax
HRESULT AddTransformForStream(
[in] DWORD dwStreamIndex,
[in] IUnknown *pTransformOrActivate
);
Die Parameter
[in] dwStreamIndex
Der zu konfigurierende Datenstrom. Der Wert kann eine der folgenden Sein:
[in] pTransformOrActivate
Ein Zeiger auf einen der folgenden Optionen:
- Eine Media Foundation-Transformation (MFT), die die IMFTransform-Schnittstelle verfügbar macht.
- Ein MFT-Aktivierungsobjekt, das die IMFActivate-Schnittstelle verfügbar macht.
Rückgabewert
Diese Methode kann einen dieser Werte zurückgeben.
| Rückgabecode | Description |
|---|---|
|
Erfolg. |
|
Die Transformation unterstützt das aktuelle Datenstromformat nicht, und es war keine Konvertierung möglich. Weitere Informationen finden Sie in den Anmerkungen. |
|
Ungültige Anforderung. |
|
Der dwStreamIndex-Parameter ist ungültig. |
Bemerkungen
Diese Methode versucht, die Transformation am Ende der aktuellen Verarbeitungskette hinzuzufügen.
Um diese Methode zu verwenden, führen Sie die folgende Abfolge von Aufrufen aus:
- Rufen Sie IMFSourceReader::SetCurrentMediaType auf, um den gewünschten Ausgabetyp für den Datenstrom festzulegen. In diesem Schritt können Sie einen Medientyp angeben, der nur die Haupttyp- und Untertyp-GUIDs enthält. Um beispielsweise eine RGB-Ausgabe mit 32 Bit abzurufen, legen Sie einen Haupttyp von MFMediaType_Video und einen Untertyp von MFVideoFormat_RGB32 fest. (Weitere Informationen finden Sie unter Medientyp-GUIDs.)
- Rufen Sie AddTransformForStream auf. Wenn der Quellleser die Transformation erfolgreich verbindet, wird der Ausgabetyp für die Transformation festgelegt.
- Rufen Sie IMFSourceReader::GetCurrentMediaType auf, um den Ausgabetyp aus der Transformation abzurufen. Diese Methode gibt einen Medientyp mit einer vollständigen Formatbeschreibung zurück.
- Wenn Sie den Ausgabetyp ändern möchten, rufen Sie optional erneut IMFSourceReader::SetCurrentMediaType auf, um einen vollständigen Medientyp für die Transformation festzulegen.
Die Methode schlägt fehl, wenn der Quellleser mit den Attributen MF_READWRITE_DISABLE_CONVERTERS oder MF_SOURCE_READER_ENABLE_VIDEO_PROCESSING konfiguriert wurde.
Im asynchronen Modus schlägt die Methode auch fehl, wenn eine Beispielanforderung aussteht. Warten Sie in diesem Fall, bis der OnReadSample-Rückruf aufgerufen wird, bevor Sie die Methode aufrufen. Weitere Informationen zur Verwendung des Quelllesers im asynchronen Modus finden Sie unter IMFSourceReader::ReadSample.
Sie können während des Streamings jederzeit eine Transformation hinzufügen. Die Methode löscht die Pipeline jedoch nicht, bevor Sie die Transformation einfügen. Wenn sich die Daten also bereits in der Pipeline befinden, ist das nächste Beispiel nicht garantiert, dass die Transformation angewendet wird.
Anforderungen
| Anforderung | Wert |
|---|---|
| Mindestens unterstützter Client | Windows 8 [Desktop-Apps | UWP-Apps] |
| Mindestanforderungen für unterstützte Server | Windows Server 2012 [Desktop-Apps | UWP-Apps] |
| Zielplattform | Fenster |
| Header | mfreadwrite.h |