Share via


Interfaz IAMPushSource (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.

La IAMPushSource interfaz sincroniza un gráfico de filtros que representa un origen activo. Un origen en directo es un origen que transmite datos en tiempo real, como un dispositivo de captura o una difusión de red.

Los filtros de origen que transmiten datos en directo deben exponer esta interfaz en sus patillas de salida. Por lo general, las aplicaciones no deben llamar a los métodos de esta interfaz; en su lugar, use la interfaz IAMGraphStreams .

Herencia

La interfaz IAMPushSource hereda de IAMLatency. IAMPushSource también tiene estos tipos de miembros:

Métodos

La interfaz IAMPushSource tiene estos métodos.

 
IAMPushSource::GetMaxStreamOffset

El método GetMaxStreamOffset recupera el desplazamiento máximo del flujo que puede admitir el filtro.
IAMPushSource::GetPushSourceFlags

El método GetPushSourceFlags recupera una combinación de marcas que describen el comportamiento del filtro.
IAMPushSource::GetStreamOffset

El método GetStreamOffset recupera el desplazamiento que usa el filtro al generar marcas de tiempo.
IAMPushSource::SetMaxStreamOffset

El método SetMaxStreamOffset especifica el desplazamiento de secuencia que se permitirá en el gráfico de filtros.
IAMPushSource::SetPushSourceFlags

El método SetPushSourceFlags establece marcas que especifican el comportamiento del filtro. Actualmente, las aplicaciones no deben llamar a este método, ya que no se admiten marcas de solicitud y una aplicación no debe invalidar las marcas establecidas por el filtro.
IAMPushSource::SetStreamOffset

El método SetStreamOffset establece el desplazamiento de las marcas de tiempo generadas por este filtro.

Comentarios

El Administrador de gráficos de filtros usa los métodos de esta interfaz para solucionar dos problemas que suelen producirse al representar orígenes activos:

  • Latencia: cuando un grafo de filtro incluye más de un origen activo, los orígenes suelen tener latencias diferentes, lo que puede hacer que no se sincronicen. Por ejemplo, si la captura de audio tiene un tiempo de latencia mayor que la captura de vídeo, el audio se retrasa detrás del vídeo a menos que el grafo compensa la diferencia.
  • Coincidencia de velocidad: cuando un filtro de representador está conectado a un origen activo, debe ajustar su tasa de consumo de datos para que coincida con la velocidad de producción del filtro de origen. De lo contrario, podría haber huecos en los datos (si el representador se ejecuta más rápido que el origen) o los datos podrían quitarse (si el origen se ejecuta más rápido).
Para corregir la latencia, el gráfico de filtros llama a IAMLatency::GetLatency en cada pin de salida que expone la IAMPushSource interfaz y determina la latencia máxima en el gráfico. A continuación, llama a IAMPushSource::SetStreamOffset en cualquier filtro con menos de la latencia máxima, de modo que ajusten las marcas de tiempo que generan mediante el desplazamiento correcto.

Para realizar la coincidencia de velocidad, el gráfico de filtros debe determinar si el filtro del representador puede coincidir con las tasas de reloj con el filtro de origen. El método IAMPushSource::GetPushSourceFlags devuelve un conjunto de marcas que indica si es seguro para que el representador coincida con las tasas con el origen.

Estos problemas no afectan a la captura en un archivo. El filtro File Writer se basa en marcas de tiempo en los ejemplos entrantes para escribir el archivo correctamente; Las secuencias se sincronizan durante la reproducción. En cuanto a la coincidencia de velocidad, los datos siempre se escriben en el archivo lo más rápido posible.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado strmif.h (incluya Dshow.h)

Consulte también

IAMLatency