Compartir a través de


Reinicio del procesamiento en AVStream

AVStream detiene el procesamiento si se cumple alguna de las condiciones siguientes:

  • En un entorno centrado en patillas, no hay datos disponibles actualmente en la patilla.

  • En un entorno centrado en filtros, al menos un pin para el que el miembro Flags de la estructura KSPIN_DESCRIPTOR_EX no establece KSPIN_FLAG_FRAMES_NOT_REQUIRED_FOR_PROCESSING, no tiene datos a la espera de procesarse. De forma predeterminada, esta marca no está establecida.

  • La rutina de devolución de llamada de envío de procesamiento del minidriver devuelve STATUS_PENDING, independientemente de la disponibilidad de fotogramas. Tenga en cuenta que el envío de procesamiento puede ser AVStrMiniFilterProcess o AVStrMiniPinProcess, dependiendo de si el minidriver implementa el procesamiento centrado en patillas o el procesamiento centrado en filtros.

AVStream inicia el procesamiento cuando llegan nuevos datos a una cola vacía previamente. Por lo tanto, si el envío de procesamiento del minidriver devuelve STATUS_PENDING cuando las colas asociadas están llenas, nunca se llamará al minidriver para reanudar el procesamiento. Si el minidriver establece STATUS_PENDING, el minidriver debe llamar a KsPinAttemptProcessing o KsFilterAttemptProcessing para reanudar el procesamiento.

No devuelva STATUS_SUCCESS del envío de procesamiento si el minidriver no procesa realmente los datos. Esto hace que AVStream llame inmediatamente al minidriver de nuevo, lo que da lugar a un bucle infinito entre AVStream y el envío de procesamiento.