IMFSourceReaderEx::AddTransformForStream-Methode (mfreadwrite.h)
Fügt einem Stream eine Transformation hinzu, z. B. einen Audio- oder Videoeffekt.
Syntax
HRESULT AddTransformForStream(
[in] DWORD dwStreamIndex,
[in] IUnknown *pTransformOrActivate
);
Parameter
[in] dwStreamIndex
Der zu konfigurierende Stream. Der Wert kann einer der folgenden Werte sein.
[in] pTransformOrActivate
Ein Zeiger auf eine 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 | BESCHREIBUNG |
---|---|
|
Erfolg. |
|
Die Transformation unterstützt das aktuelle Streamformat nicht, und es war keine Konvertierung möglich. Weitere Informationen finden Sie unter Hinweise. |
|
Ungültige Anforderung. |
|
Der dwStreamIndex-Parameter ist ungültig. |
Hinweise
Diese Methode versucht, die Transformation am Ende der aktuellen Verarbeitungskette hinzuzufügen.
Um diese Methode zu verwenden, führen Sie die folgende Sequenz von Aufrufen aus:
- Rufen Sie IMFSourceReader::SetCurrentMediaType auf, um den gewünschten Ausgabetyp für den Stream festzulegen. In diesem Schritt können Sie einen Medientyp angeben, der nur die Haupttyp- und Untertyp-GUIDs enthält. Um beispielsweise eine 32-Bit-RGB-Ausgabe 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 erfolgreich eine Verbindung mit der Transformation herstellt, 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 leert oder entleert die Pipeline jedoch nicht, bevor die Transformation eingefügt wird. Wenn sich daten bereits in der Pipeline befindet, wird daher nicht garantiert, dass die Transformation für das nächste Beispiel angewendet wird.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 8 [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2012 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | mfreadwrite.h |