Comportement de l’horloge Demux

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

En mode Push, le démultiplexer MPEG-2 (demux) expose l’interface IReferenceClock . Il agit en tant que source dynamique, il sera donc choisi comme horloge de référence de graphe par défaut ; Pour plus d’informations, consultez Sources actives .

  • Pour les flux de transport, le demux synchronise son horloge avec le flux PCR qui correspond au flux audio ou vidéo le plus récemment mappé par l’application. En interne, le demux suit les tables PAT et PMT. Lorsque l’application mappe un PID de flux élémentaire à une broche de sortie, le demux recherche le flux PCR pour ce PID et utilise ce flux PCR. (Actuellement, il n’existe aucun moyen pour l’application de spécifier directement le PID PCR.)
  • Pour les flux de programme, le demux synchronise son horloge avec le flux SCR.

La synchronisation de l’horloge de filtre sur le flux PCR ou SCR empêche le dépassement ou le sous-flux de données, ce qui peut se produire si l’horloge du graphique diffère de l’horloge du flux. Le demux traduit également les valeurs PES PTS en heures de référence DirectShow et utilise ces valeurs pour horodatage des exemples multimédias. Les horodatages s’appliquent à la limite d’image suivante ; il n’est pas garanti que la limite d’image s’aligne sur le début de l’exemple multimédia.

Le demux garantit que les horodatages augmentent de manière monotone. Cela signifie, par exemple, que si un flux de transport inclut un segment tel qu’une publicité qui a été créé avec une horloge différente de celle du programme main, le demux ajuste les horodatages de présentation pour masquer l’interruption de temps des filtres en aval.

Utilisation du démultiplexeur MPEG-2