Partager via


Configuration requise pour les décodeurs

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture in Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation au lieu de DirectShow, si 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 décodeurs qui fournissent des exemples au VMR doivent respecter les règles suivantes :

  • Il doit y avoir une trame de sous-image remise au VMR pour chaque image vidéo. Les deux images doivent avoir les mêmes horodatages.
  • Si la sous-image n’a pas changé, utilisez l’indicateur AM_GBF_NOTASYNCPOINT dans la méthode IMemAllocator::GetBuffer pour forcer l’allocateur à retourner une mémoire tampon contenant le dernier frame remis au VMR. Il suffit de mettre un nouvel horodatage sur l’exemple et de le remettre à nouveau au VMR. Si la renommée de sous-image est vide, vous devez quand même la remettre. Le VMR détecte l’image vide et ne la fusionne pas avec la vidéo. Ce test est effectué par la puce VGA et n’affecte pas les performances de lecture.
  • Tous les exemples, à l’exception des flux en direct, doivent avoir des horodatages de début et d’arrêt valides attachés. (LE DVD n’est pas un flux en direct.)
  • Les exemples d’horodatages de média doivent être contigus
  • Le décodeur doit s’identifier comme prenant en charge VMR pour une utilisation par les générateurs de graphiques.
  • Le flux de sous-image doit maintenant contenir des valeurs alpha incorporées par pixel. Le type de surface ARGB4444 est idéal pour les sous-surfaces.
  • Ne supposez pas que la foulée de la sous-image est identique à la largeur de la surface. Ce n’est pas toujours le cas avec le VMR.

À propos de l’accélération vidéo DirectX