Método IMFTransform::SetOutputType (mftransform.h)

Establece, prueba o borra el tipo de medio de una secuencia de salida en esta transformación de Media Foundation (MFT).

Sintaxis

HRESULT SetOutputType(
  [in] DWORD        dwOutputStreamID,
  [in] IMFMediaType *pType,
  [in] DWORD        dwFlags
);

Parámetros

[in] dwOutputStreamID

Identificador de flujo de salida. Para obtener la lista de identificadores de flujo, llame a IMFTransform::GetStreamIDs.

[in] pType

Puntero a la interfaz IMFMediaType o NULL.

[in] dwFlags

Cero o más marcas de la enumeración _MFT_SET_TYPE_FLAGS .

Valor devuelto

El método devuelve un valor HRESULT. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros.

Código devuelto Descripción
S_OK
El método se ha llevado a cabo de forma correcta.
MF_E_INVALIDMEDIATYPE
La transformación no puede usar el tipo de medio propuesto.
MF_E_INVALIDSTREAMNUMBER
Identificador de flujo no válido.
MF_E_INVALIDTYPE
El tipo propuesto no es válido. Este código de error indica que el propio tipo de medio no está configurado correctamente; por ejemplo, podría contener marcas mutuamente opuestas.
MF_E_TRANSFORM_CANNOT_CHANGE_MEDIATYPE_WHILE_PROCESSING
MFT no puede cambiar los tipos mientras se procesan los datos. Pruebe a purgar o vaciar el MFT.
MF_E_TRANSFORM_TYPE_NOT_SET
Debe establecer los tipos de entrada antes de establecer los tipos de salida.
MF_E_UNSUPPORTED_D3D_TYPE
El MFT no encontró una configuración adecuada de aceleración de vídeo directX (DXVA).

Comentarios

Este método se puede usar para establecer, probar sin establecer o borrar el tipo de medio:

  • Para establecer el tipo de medio, establezca dwFlags en cero y establezca pType en un puntero que no sea NULL que especifique el tipo de medio.
  • Para probar el tipo de medio sin establecerlo, establezca dwFlagsen MFT_SET_TYPE_TEST_ONLY y establezca pType en un puntero que no sea NULL que especifique el tipo de medio. Si el tipo de medio es aceptable, el método devuelve S_OK. De lo contrario, devuelve MF_E_INVALIDMEDIATYPE. Independientemente del valor devuelto, el tipo de medio actual no cambia.
  • Para borrar el tipo de medio, establezca pType en NULL.
Establecer el tipo de medio en una secuencia puede cambiar los tipos aceptables en otra secuencia.

Un MFT puede requerir que el autor de la llamada establezca uno o varios tipos de entrada antes de establecer el tipo de salida. Si es así, el método devuelve MF_E_TRANSFORM_TYPE_NOT_SET.

Si MFT admite la aceleración de vídeo directX (DXVA), pero no encuentra una configuración DXVA adecuada (por ejemplo, si el controlador de gráficos no tiene las funcionalidades adecuadas), el método debe devolver MF_E_UNSUPPORTED_D3D_TYPE. Para obtener más información, vea Compatibilidad con DXVA 2.0 en Media Foundation.

Si MFT_UNIQUE_METHOD_NAMES se define antes de incluir mftransform.h, este método se cambia de nombre MFTSetOutputType. Consulte Creación de objetos DMO/MFT híbridos.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado mftransform.h
Library Mfuuid.lib

Consulte también

IMFTransform

Transformaciones de Media Foundation