Share via


Qualitätsmeldungen

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Qualitätsmeldungen werden mit der Qualitätsstruktur definiert. Diese Struktur enthält die folgenden Member:

  • Typ: Definiert durch die QualityMessageType-Enumeration ; entweder Famine, die angibt, dass der Filter zu wenig Daten empfängt, oder Flood, die angibt, dass der Filter zu viele Daten empfängt.
  • Anteil: Die angeforderte Anpassung der Datenrate von einem Basiswert von 1000. Beispielsweise gibt 750 75 % und 1500 150 % an.
  • Spät: Referenzzeit, die angibt, wie spät die letzte Stichprobe eingetroffen ist. Der Wert ist negativ, wenn die Stichprobe frühzeitig eingetroffen ist.
  • Timestamp: Der Zeitstempel des letzten Beispiels.

Angenommen, ein Beispiel mit einem Zeitstempel von 240 Millisekunden (ms) erreicht den Renderer mit 280 ms Streamzeit. Der Renderer erstellt eine Qualitätsmeldung vom Typ "Hungersnot". Die Stichprobe kam 40 ms verspätet an, sodass das Mitglied Late 400000 ist. (Alle Referenzzeiten liegen in 100 Nanosekundeneinheiten.) Der TimeStamp-Member ist 2400000.

Für das Proportion-Element kann der Renderer einen laufenden Durchschnitt verwenden, um den Wert zu berechnen. Möglicherweise sind Die Proben rechtzeitig eingetroffen, und diese Stichprobe ist eine Anomalie. In diesem Fall kann der Renderer nur eine kleine Korrektur anfordern. Wenn die Stichproben dagegen konsistent verspätet sind, kann der Renderer eine größere Korrektur anfordern.

Die Qualitätskontrolle erfolgt über die IQualityControl-Schnittstelle . Sie enthält zwei Methoden.

  • Benachrichtigen: Sendet eine Qualitätsnachricht.
  • SetSink: Gibt einen benutzerdefinierten Qualitätsmanager an.

Ein Objekt, das IQualityControl implementiert, empfängt hochwertige Nachrichten über seine Notify-Methode . Es 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ätsmanager delegieren.