Compartir a través de


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
S_OK
Correcto.
E_OUTOFMEMORY
Memoria insuficiente.
E_POINTER
Valor de puntero NULL.
VFW_E_INVALIDMEDIATYPE
Este tipo de medio no es válido.
VFW_E_NOT_CONNECTED
El pin de entrada no está conectado.
VFW_E_NOT_STOPPED
No se puede establecer el tipo; el filtro no se detiene.
VFW_E_WRONG_STATE
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

Consulte también

Códigos de error y éxito

Interfaz IAMStreamConfig