Compartir a través de


Método IGraphBuilder::AddSourceFilter (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 AddSourceFilter método agrega un filtro de origen para un archivo especificado al gráfico de filtros.

Sintaxis

HRESULT AddSourceFilter(
  [in]  LPCWSTR     lpcwstrFileName,
  [in]  LPCWSTR     lpcwstrFilterName,
  [out] IBaseFilter **ppFilter
);

Parámetros

[in] lpcwstrFileName

Especifica el nombre del archivo que se va a cargar.

[in] lpcwstrFilterName

Especifica un nombre para el filtro de origen.

[out] ppFilter

Recibe un puntero a la interfaz IBaseFilter del filtro. El autor de la llamada debe liberar la interfaz .

Valor devuelto

Devuelve un VALOR HRESULT. Estos son algunos de los valores posibles.

Código devuelto Descripción
S_OK
Correcto.
E_NOINTERFACE
El filtro de origen no admite la interfaz IFileSourceFilter .
E_OUTOFMEMORY
Memoria insuficiente.
E_POINTER
Argumento de puntero NULL.
VFW_E_CANNOT_LOAD_SOURCE_FILTER
No se pudo cargar el filtro de origen de este archivo.
VFW_E_NOT_FOUND
Archivo o objeto no encontrado.
VFW_E_UNKNOWN_FILE_TYPE
No se reconoció el tipo de medio de este archivo.

Comentarios

Este método busca un filtro instalado que pueda leer el archivo especificado. Si encuentra uno, el método lo agrega al gráfico de filtros y devuelve un puntero a la interfaz IBaseFilter del filtro. Para determinar el tipo de medio y el esquema de compresión del archivo, el Administrador de gráficos de filtros lee los primeros bytes del archivo, buscando patrones específicos de bytes, como se documenta en el artículo Registro de un tipo de archivo personalizado.

La aplicación es responsable de compilar el resto del gráfico de filtros. Para ello, llame a IBaseFilter::EnumPins para enumerar los pins de salida en el filtro de origen. A continuación, use el método IGraphBuilder::Connect o el método IGraphBuilder::Render .

Si el método se ejecuta correctamente, la interfaz IBaseFilter tiene un recuento de referencias pendiente. El autor de la llamada debe liberar la interfaz .

Para representar un archivo para la reproducción predeterminada, use el método IGraphBuilder::RenderFile .

El Administrador de gráficos de filtros contiene un recuento de referencias en el filtro hasta que se quita el filtro del gráfico o se libera el Administrador de gráficos de filtros.

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

IGraphBuilder (interfaz)