Compartir a través de


Transportes

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEnginey captura de audio y 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 captura de audio y vídeo 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.

Para mover los datos multimedia a través del gráfico de filtros, un filtro DirectShow debe admitir uno de varios protocolos posibles. Estos protocolos se denominan transportes. Cuando se conectan dos filtros, deben admitir el mismo transporte; de lo contrario, no pueden intercambiar datos multimedia. Normalmente, un transporte requiere que uno de los patillas admita una interfaz determinada. Cuando los filtros se conectan, una patilla consulta la otra para la interfaz.

La mayoría de los filtros DirectShow contienen datos multimedia en la memoria principal y los entregan a otros filtros entre conexiones de patillas. Este tipo de transporte se denomina transporte de memoria local. Aunque el transporte de memoria local es el transporte más común en DirectShow, no todos los filtros lo usan. Por ejemplo, algunos filtros envían datos multimedia a lo largo de una ruta de acceso de hardware y usan patillas solo para entregar información de control. Por ejemplo, consulte la interfazIOverlay.

DirectShow define dos mecanismos para el transporte de memoria local, el modelo de inserción y el modelo de extracción. En el modelo de inserción, un filtro de origen genera datos y los entrega al siguiente filtro de bajada. Ese filtro recibe pasivamente los datos, los procesa y los envía más de bajada. En el modelo de extracción, el filtro de origen está conectado a un filtro de analizador. El filtro del analizador solicita datos del filtro de origen. El filtro de origen responde a las solicitudes entregando datos. El modelo de inserción usa la interfazIMemInputPin y el modelo de extracción usa la interfazIAsyncReader.

El modelo de inserción es más común que el modelo de extracción. Por lo tanto, los artículos siguientes asumen un modelo de inserción. En el último artículo de esta sección, pull Model, se describe cómo la interfaz IAsyncReader difiere de IMemInputPin.

Flujo de datos en el De gráfico de filtros