Compartir a través de


Método CDynamicOutputPin.ChangeMediaType

[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 ChangeMediaType método cambia dinámicamente el tipo de medio de la conexión. El cambio puede producirse mientras se ejecuta el gráfico de filtro. Una vez que se llama a este método, no se pueden entregar ejemplos con el tipo de medio antiguo. El autor de la llamada debe asegurarse de que no hay muestras antiguas pendientes.

Sintaxis

HRESULT ChangeMediaType(
   const CMediaType *pmt
);

Parámetros

Pmt

Puntero a una estructura AM_MEDIA_TYPE que especifica el tipo de medio.

Valor devuelto

Devuelve un valor HRESULT . Entre los valores posibles se incluyen los que se muestran en la tabla siguiente.

Código devuelto Descripción
S_OK
Correcto.
E_FAIL
Error. Posiblemente el filtro propietario no llamó a CDynamicOutputPin::SetConfigInfo.
VFW_E_NOT_CONNECTED
El pin no está conectado.

Observaciones

Llame al método CDynamicOutputPin::StartUsingOutputPin antes de llamar a este método.

Este método comprueba primero si el pin de entrada de bajada puede aceptar el nuevo formato sin volver a conectarse. Consulta el pin de entrada para la interfaz IPinConnection . Si el pin de entrada admite IPinConnection, el método llama al método IPinConnection::D ynamicQueryAccept con el tipo de medio propuesto. Si el pin de entrada acepta el nuevo tipo de medio, el método llama al método IPin::ReceiveConnection y renegocia los requisitos del asignador.

Por otro lado, si el pin de bajada no admite IPinConnection o si rechaza el nuevo tipo de medio, el método llama al método CDynamicOutputPin::D ynamicReconnect para realizar una reconexión dinámica.

Requisitos

Requisito Value
Encabezado
Amfilter.h (include Streams.h)
Biblioteca
Strmbase.lib (compilaciones comerciales);
Strmbasd.lib (compilaciones de depuración)

Consulte también

CDynamicOutputPin (clase)