Método IMFTransform::GetInputAvailableType (mftransform.h)
Obtiene un tipo de medio disponible para un flujo de entrada en esta transformación de Media Foundation (MFT).
Sintaxis
HRESULT GetInputAvailableType(
[in] DWORD dwInputStreamID,
[in] DWORD dwTypeIndex,
[out] IMFMediaType **ppType
);
Parámetros
[in] dwInputStreamID
Identificador de flujo de entrada. Para obtener la lista de identificadores de flujo, llame a IMFTransform::GetStreamIDs.
[in] dwTypeIndex
Índice del tipo de medio que se va a recuperar. Los tipos de medios se indexan desde cero y se devuelven en orden aproximado de preferencia.
[out] ppType
Recibe un puntero a la interfaz IMFMediaType .
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 |
---|---|
|
El método se ha llevado a cabo de forma correcta. |
|
MFT no tiene una lista de tipos de entrada disponibles. |
|
Identificador de flujo no válido. |
|
El parámetro dwTypeIndex está fuera del intervalo. |
|
Debe establecer los tipos de salida antes de establecer los tipos de entrada. |
Comentarios
El MFT define una lista de tipos de medios disponibles para cada flujo de entrada y los ordena por preferencia. Este método enumera los tipos de medios disponibles para un flujo de entrada. Para enumerar los tipos disponibles, incremente dwTypeIndex hasta que el método devuelva MF_E_NO_MORE_TYPES.
Establecer el tipo de medio en una secuencia podría cambiar los tipos disponibles para otra secuencia o cambiar el orden de preferencia. Sin embargo, no es necesario un MFT para actualizar la lista de tipos disponibles dinámicamente. La única manera garantizada de probar si puede establecer un tipo de entrada determinado es llamar a IMFTransform::SetInputType.
En algunos casos, un MFT no puede devolver una lista de tipos de entrada hasta que se establezcan uno o varios tipos de salida. Si es así, el método devuelve MF_E_TRANSFORM_TYPE_NOT_SET.
No se requiere MFT para implementar este método. Sin embargo, la mayoría de las MFP deben implementar este método, a menos que los tipos admitidos sean simples y se puedan detectar a través de la función MFTGetInfo .
Si MFT_UNIQUE_METHOD_NAMES se define antes de incluir mftransform.h, se cambia el nombre de este método a MFTGetInputAvailableType. Consulte Creación de objetos DMO/MFT híbridos.
En el caso de los codificadores, una vez establecido el tipo de salida, GetInputAvailableType debe devolver una lista de tipos de entrada compatibles con el tipo de salida actual. Esto significa que todos los tipos devueltos por GetInputAvailableType después de establecer el tipo de salida deben ser tipos válidos para SetInputType.
Los codificadores deben rechazar los tipos de entrada si los atributos del tipo de medio de entrada y el tipo de medio de salida no coinciden, como la configuración de resolución con MF_MT_FRAME_SIZE, la configuración de intervalo nominal con MF_MT_VIDEO_NOMINAL_RANGE o la configuración de velocidad de fotogramas con MF_MT_FRAME_SIZE
Notas de implementación
Si el MFT almacena un tipo de medio internamente, MFT debe devolver un clon del tipo de medio, no un puntero al tipo original. De lo contrario, el autor de la llamada podría modificar el tipo y modificar el estado interno del MFT.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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de