Partager via


Messages de qualité

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La capture audio/vidéo dans Media Foundation au lieu de DirectShow, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Les messages de qualité sont définis avec la structure Qualité . Cette structure contient les membres suivants :

  • Type: Défini par l’énumération QualityMessageType ; famine, indiquant que le filtre reçoit trop peu de données, ou Flood, indiquant que le filtre reçoit trop de données.
  • Proportion: Ajustement demandé dans le débit de données, à partir d’une base de référence de 1000. Par exemple, 750 indique 75 % et 1500 indique 150 %.
  • Tard: Heure de référence indiquant le retard de l’échantillon le plus récent. La valeur est négative si l’échantillon est arrivé tôt.
  • Timestamp: Horodatage de l’exemple le plus récent.

Par exemple, supposons qu’un exemple avec un horodatage de 240 millisecondes (ms) atteint le convertisseur à 280 ms, heure du flux. Le convertisseur crée un message de qualité de type Famine. L’exemple est arrivé avec 40 ms de retard, le membre Late est donc 4000000. (Tous les temps de référence sont en unités de 100 nanosecondes.) Le membre TimeStamp est 24000000.

Pour le membre Proportion , le convertisseur peut utiliser une moyenne en cours d’exécution pour calculer la valeur. Peut-être que les échantillons arrivent à temps, et cet exemple est une anomalie. Dans ce cas, le convertisseur ne peut demander qu’une petite correction. En revanche, si les exemples sont constamment en retard, le convertisseur peut demander une correction plus importante.

Le contrôle qualité est géré via l’interface IQualityControl . Il contient deux méthodes.

  • Notifier : envoie un message de qualité.
  • SetSink : spécifie un gestionnaire de qualité personnalisé.

Un objet qui implémente IQualityControl reçoit des messages de qualité via sa méthode Notify . Il peut gérer le message ou le transmettre à un autre objet. Si l’application appelle la méthode SetSink de l’objet, l’objet doit déléguer le contrôle de qualité au gestionnaire de qualité spécifié.