Método IAMStreamConfig::SetFormat (strmif.h)
[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.
El SetFormat
método establece el formato de salida en el pin.
Sintaxis
HRESULT SetFormat(
[in] AM_MEDIA_TYPE *pmt
);
Parámetros
[in] pmt
Puntero a una estructura de AM_MEDIA_TYPE que especifica el nuevo formato.
Valor devuelto
Devuelve un valor HRESULT . Estos son algunos de los valores posibles.
Código devuelto | Descripción |
---|---|
|
Correcto. |
|
Memoria insuficiente. |
|
Valor de puntero NULL. |
|
Este tipo de medio no es válido. |
|
El pin de entrada no está conectado. |
|
No se puede establecer el tipo; el filtro no se detiene. |
|
No se puede establecer el tipo; el filtro no se detiene. |
Comentarios
Este método especifica el formato del pin de salida. Si el pin no está conectado, usará este formato para su siguiente conexión. Si el pin ya está conectado, intentará volver a conectarse con este formato. Es posible que se produzca un error en el método si el otro pin rechaza el nuevo tipo.
Si este método se realiza correctamente, las llamadas posteriores al método IPin::EnumMediaTypes devolverán el nuevo tipo y ningún otro.
En la mayoría de los filtros, este método produce un error si el filtro está en pausa o en ejecución. En algunos filtros de compresión, se produce un error en el método si el pin de entrada del filtro no está conectado.
Con algunos filtros, puede llamar a este método con el valor NULL para restablecer el pin a su formato predeterminado.
Desarrolladores de filtros: los siguientes comentarios describen cómo implementar este método:
Si el pin de salida no está conectado y el pin admite el tipo de medio especificado, devuelva S_OK. Almacene el tipo de medio y ofrézelo como número de formato cero en el método CBasePin::GetMediaType . No ofrezca otros formatos y rechace otros formatos en el método CBasePin::CheckMediaType .
Si el pin ya está conectado y el pin admite el tipo de medio, vuelva a conectar el pin con ese tipo. Si el otro pin rechaza el nuevo tipo, devuelva VFW_E_INVALIDMEDIATYPE y restaure la conexión original.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | strmif.h (incluya Dshow.h) |
Library | Strmiids.lib |