Método IMFSourceReaderEx::AddTransformForStream (mfreadwrite.h)
Agrega una transformación, como un efecto de audio o vídeo, a una secuencia.
Sintaxis
HRESULT AddTransformForStream(
[in] DWORD dwStreamIndex,
[in] IUnknown *pTransformOrActivate
);
Parámetros
[in] dwStreamIndex
Secuencia que se va a configurar. El valor puede ser cualquiera de los siguientes.
[in] pTransformOrActivate
Puntero a uno de los siguientes:
- Transformación de Media Foundation (MFT) que expone la interfaz IMFTransform .
- Objeto de activación MFT que expone la interfaz IMFActivate .
Valor devuelto
Este método puede devolver uno de estos valores.
Código devuelto | Descripción |
---|---|
|
Correcto. |
|
La transformación no admite el formato de secuencia actual y no se pudo realizar ninguna conversión. Vea Comentarios para obtener más información. |
|
Solicitud no válida. |
|
El parámetro dwStreamIndex no es válido. |
Comentarios
Este método intenta agregar la transformación al final de la cadena de procesamiento actual.
Para usar este método, realice la siguiente secuencia de llamadas:
- Llame a IMFSourceReader::SetCurrentMediaType para establecer el tipo de salida que desea para la secuencia. En este paso, puede especificar un tipo de medio que contenga solo los GUID de tipo principal y subtipo. Por ejemplo, para obtener una salida RGB de 32 bits, establezca un tipo principal de MFMediaType_Video y un subtipo de MFVideoFormat_RGB32. (Para obtener más información, vea GUID de tipo multimedia).
- Llame a AddTransformForStream. Si el Lector de origen conecta correctamente la transformación, establece el tipo de salida en la transformación.
- Llame a IMFSourceReader::GetCurrentMediaType para obtener el tipo de salida de la transformación. Este método devuelve un tipo de medio con una descripción de formato completa.
- Opcionalmente, si desea modificar el tipo de salida, llame a IMFSourceReader::SetCurrentMediaType de nuevo para establecer un tipo de medio completo en la transformación.
El método produce un error si el lector de origen se configuró con los atributos MF_READWRITE_DISABLE_CONVERTERS o MF_SOURCE_READER_ENABLE_VIDEO_PROCESSING .
En modo asincrónico, el método también produce un error si hay pendiente una solicitud de ejemplo. En ese caso, espere a que se invoque la devolución de llamada onReadSample antes de llamar al método . Para obtener más información sobre el uso del Lector de origen en modo asincrónico, vea IMFSourceReader::ReadSample.
Puede agregar una transformación en cualquier momento durante el streaming. Sin embargo, el método no vacía ni purga la canalización antes de insertar la transformación. Por lo tanto, si los datos ya están en la canalización, no se garantiza que el ejemplo siguiente tenga aplicada la transformación.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 8 [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2012 [aplicaciones de escritorio | Aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | mfreadwrite.h |