Mensajes de calidad
[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.
Los mensajes de calidad se definen con la estructura Calidad . Esta estructura contiene los siguientes miembros:
- Tipo: Definido por la enumeración QualityMessageType ; o hambre, lo que indica que el filtro recibe demasiados datos, o Inundación, lo que indica que el filtro está recibiendo demasiados datos.
- Proporción: Ajuste solicitado en la velocidad de datos, a partir de una línea base de 1000. Por ejemplo, el 750 indica un 75 % y 1500 indica un 150 %.
- Tarde: Hora de referencia que indica cómo llegó el ejemplo más reciente. 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. (Todas las horas de referencia están en unidades de 100 nanosegundos). El miembro TimeStamp es 24000000.
Para el miembro Proporción , el representador podría usar una media en ejecución para calcular el valor. Quizás las muestras han llegado 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 coherentes en tiempo de ejecución, el representador podría solicitar una corrección mayor.
El control de calidad se controla a través de la interfaz IQualityControl . Contiene dos métodos.
- Notificar: envía un mensaje de calidad.
- SetSink: especifica un administrador de calidad personalizado.
Un 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 al administrador de calidad especificado.