Compartir a través de


Mensajes de calidad

[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.

Los mensajes de calidad se definen con la estructura Calidad. Esta estructura contiene los siguientes miembros:

  • Tipo: Definido por la enumeraciónqualityMessageType; ya sea La hambre, lo que indica que el filtro está recibiendo demasiados datos o Flood, lo que indica que el filtro está recibiendo demasiados datos.
  • Proporción: El ajuste solicitado en la velocidad de datos, a partir de una línea base de 1000. Por ejemplo, 750 indica 75% y 1500 indica 150%.
  • hora tardía: hora de referencia que indica cómo llegó la última muestra. El valor es negativo si la muestra llegó temprano.
  • TimeStamp: Marca de tiempo en el ejemplo más reciente.

Por ejemplo, supongamos que una muestra con una marca de tiempo de 240 milisegundos (ms) alcanza el representador a 280 ms, tiempo de secuencia. El representador crea un mensaje de calidad de tipo Hambre. La muestra llegó 40 ms tarde, por lo que el miembro Late es 400000. (Todos los tiempos de referencia están en unidades de 100 nanosegundos). El miembro TimeStamp es 2400000.

Para el miembro Proporción, el representador puede usar una media en ejecución para calcular el valor. Quizás las muestras han estado llegando a tiempo y esta muestra es una anomalía. En ese caso, el representador podría solicitar solo una corrección pequeña. Por otro lado, si las muestras son coherentemente tardías, el representador podría solicitar una corrección mayor.

El control de calidad se controla a través de la interfazIQualityControl. Contiene dos métodos.

  • Notificar: envía un mensaje de calidad.
  • SetSink: especifica un administrador de calidad personalizado.

Objeto que implementa IQualityControl recibe mensajes de calidad a través de su método Notify . Puede controlar el mensaje o pasar el mensaje a otro objeto. Si la aplicación llama al método SetSink del objeto, el objeto debe delegar el control de calidad en el administrador de calidad especificado.