Compartir a través de


Método CSourceStream.DoBufferProcessingLoop

[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 DoBufferProcessingLoop método genera datos multimedia y los entrega al pin de entrada de bajada.

Sintaxis

virtual HRESULT DoBufferProcessingLoop();

Parámetros

Este método no tiene parámetros.

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_FALSE
El subproceso recibió una solicitud de detención.
S_OK
El flujo finalizó o el filtro de bajada no acepta muestras.

Observaciones

Este método implementa el bucle principal que procesa los datos y los entrega de bajada. Cada vez que se realiza el bucle , el método recupera un ejemplo de medio vacío del asignador. Pasa el ejemplo al método CSourceStream::FillBuffer . El método FillBuffer , que la clase derivada debe implementar, genera datos multimedia y los coloca en el búfer de ejemplo.

El bucle finaliza cuando se produce alguna de las siguientes acciones:

  • El método IMemInputPin::Receive del pin de entrada rechaza un ejemplo.
  • El método FillBuffer devuelve S_FALSE, que indica el final de la secuencia o devuelve un código de error.
  • El subproceso recibe una solicitud CSourceStream::Stop .

El DoBufferProcessingLoop método controla la notificación de fin de secuencia. Si se produce un error, envía un evento EC_ERRORABORT al administrador de gráficos de filtros.

Requisitos

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

Consulte también

CSourceStream (clase)