Compartir a través de


Método ICaptureGraphBuilder2::SetOutputFileName (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 SetOutputFileName método crea la sección de escritura de archivos del gráfico de filtros.

Sintaxis

HRESULT SetOutputFileName(
  [in]  const GUID      *pType,
  [in]  LPCOLESTR       lpstrFile,
  [out] IBaseFilter     **ppf,
  [out] IFileSinkFilter **ppSink
);

Parámetros

[in] pType

Puntero a un GUID que representa el subtipo multimedia de la salida o el identificador de clase (CLSID) de un filtro de multiplexador o filtro de escritor de archivos. Si especifica un subtipo multimedia, debe ser uno de los siguientes:

Valor Descripción
MEDIASUBTYPE_Avi Audio y vídeo intercalado (AVI)
MEDIASUBTYPE_Asf Formato ASF

[in] lpstrFile

Puntero a una cadena de caracteres anchos que contiene el nombre del archivo de salida.

[out] ppf

Dirección de un puntero que recibe la interfaz IBaseFilter del multiplexador.

[out] ppSink

Dirección de un puntero que recibe la interfaz IFileSinkFilter del escritor de archivos. Puede ser NULL.

Valor devuelto

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

Código devuelto Descripción
S_OK
Correcto.
E_FAIL
Error.
E_POINTER
Argumento de puntero NULL.

Comentarios

Este método crea un filtro de multiplexador basado en el valor del parámetro pType . Para AVI, crea el filtro mux avi. Para ASF, crea el sistema wm ASF Writer. Para otros valores, crea el filtro identificado por clSID. Agrega el multiplexador al grafo de filtro y devuelve un puntero a su interfaz IBaseFilter en el parámetro ppf .

Si el multiplexador admite la interfaz IFileSinkFilter , el método llama a IFileSinkFilter::SetFileName para establecer el nombre del archivo de salida, utilizando el valor especificado en el parámetro lpwstrFile . Si el multiplexador no admite la interfaz IFileSinkFilter , el método agrega el filtro de escritor de archivos al grafo de filtro, conecta el multiplexador al escritor de archivos y usa la interfaz IFileSinkFilter del escritor de archivos para llamar a SetFileName. Si el parámetro pSink no es NULL, recibe un puntero a la interfaz IFileSinkFilter .

Puede usar el puntero al filtro de multiplexador, devuelto en el parámetro ppf , como parámetro pSink en el método ICaptureGraphBuilder2::RenderStream .

En el caso de los filtros de multiplexador personalizados, se produce un error en el método si el filtro no admite una conexión en su pin de salida antes de que se conecten sus patillas de entrada. Por ejemplo, el ejemplo de filtro WavDest incluido con el SDK tiene esta limitación.

Si el método se ejecuta correctamente, la interfaz IBaseFilter devuelta en el parámetro ppf tiene un recuento de referencias pendiente. Si el método se ejecuta correctamente y pSink no es NULL, la interfaz IFileSinkFilter también tiene un recuento de referencias pendiente. Asegúrese de liberar ambas interfaces cuando haya terminado de usarlas.

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

ICaptureGraphBuilder2 (Interfaz)