Qualitätsnachrichten
Qualitätsmeldungen werden mit der Quality-Struktur definiert. Diese Struktur enthält die folgenden Member:
- Typ: Definiert durch die QualityMessageType-Enumeration; entweder Fyl, das angibt, dass der Filter zu wenig Daten empfängt, oder Überflutung, was angibt, dass der Filter zu viele Daten empfängt.
- Anteil: Die angeforderte Anpassung der Datenrate von einer Baseline von 1.000. Beispielsweise gibt 750 75 % und 1500 150 % an.
- Spät: Referenzzeit, die angibt, wie spät das letzte Beispiel eingetroffen ist. Der Wert ist negativ, wenn die Stichprobe früh eingetroffen ist.
- TimeStamp: Der Zeitstempel des letzten Beispiels.
Angenommen, ein Beispiel mit einem Zeitstempel von 240 Millisekunden (ms) erreicht den Renderer bei 280 ms Streamzeit. Der Renderer erstellt eine Qualitätsmeldung vom Typ Fyl. Das Beispiel ist 40 ms spät eingetroffen, sodass das Late-Mitglied 400000 ist. (Alle Verweiszeiten liegen in Einheiten von 100 Nanosekunden.) Das TimeStamp-Member ist 2400000.
Für das Proportion-Member kann der Renderer einen laufenden Durchschnitt verwenden, um den Wert zu berechnen. Möglicherweise sind die Beispiele zur Zeit eintreffen, und dieses Beispiel ist eine Anomalie. In diesem Fall fordert der Renderer möglicherweise nur eine kleine Korrektur an. Andererseits kann der Renderer eine größere Korrektur anfordern, wenn Die Beispiele ständig zu spät sind.
Die Qualitätskontrolle erfolgt über die IQualityControl-Schnittstelle. Sie enthält zwei Methoden.
- Benachrichtigen:Sendet eine Qualitätsnachricht.
- SetSink:Gibt einen benutzerdefinierten Qualitäts-Manager an.
Ein Objekt, das IQualityControl implementiert, empfängt Qualitätsnachrichten über seine Notify-Methode. Er kann entweder die Nachricht verarbeiten oder die Nachricht an ein anderes Objekt übergeben. Wenn die Anwendung die SetSink-Methode des Objekts aufruft, sollte das Objekt die Qualitätskontrolle an den angegebenen Qualitäts-Manager delegieren.