Prise en main de la prise en charge des codecs matériels dans AVStream
À compter de Windows 7, Windows Media Foundation représente les composants multimédias basés sur AVStream en tant que transformations Media Foundation en mode utilisateur (MFT).
En utilisant cette fonctionnalité, les fournisseurs peuvent présenter des décodeurs, des encodeurs et des processeurs vidéo basés sur le matériel sous forme de mfts qui peuvent à leur tour être manipulés au niveau de l’application.
Le modèle AVStream reste inchangé dans Windows 7 et ne nécessite que quelques ajouts au minidriver pour activer cette fonctionnalité.
La topologie de transcodage est illustrée dans le diagramme suivant :
Pour de meilleures performances, le traitement multimédia affiché dans la ligne inférieure du diagramme doit se produire dans du matériel dédié. Dans ce scénario, le matériel de transcodeur dédié est connu sous le nom de décodeur matériel sécurisé (SHED). Shed peut être empaqueté en tant que module enfichable pour la carte mère ou en tant que fonctionnalité intégrée sur l’adaptateur d’affichage.
Windows 7 prend toujours en charge le transcodage logiciel. Toutefois, étant donné que le système effectue le travail de transcodage sur du matériel dédié plutôt que sur le processeur, une solution basée sur SHED améliore considérablement l’expérience utilisateur par rapport à une solution logicielle.
Comme indiqué dans le diagramme précédent, les clients en mode utilisateur peuvent accéder aux transformations en mode utilisateur à l’aide de l’interface IMFTransform exposée sur chaque MFT. IMFTransform est disponible dans Vista et les versions ultérieures de Windows, mais le mécanisme permettant d’exposer le traitement multimédia basé sur le matériel aux applications en mode utilisateur n’est disponible qu’à partir de Windows 7.
Le module Proxy d’appareil fourni par le système, ou Devproxy, joue le même rôle que KSProxy dans le modèle de diffusion en continu DirectShow. Devproxy répartit la communication entre Ks.sys en mode noyau et les composants MFT en mode utilisateur.
La fonction de traitement du média matériel encapsulée qui en résulte est appelée MFT de proxy d’appareil. Pour tirer parti de ce mécanisme, un minidriver AVStream doit effectuer les opérations suivantes :
Exposez les fonctions de transformation en tant que filtres KS individuels qui font partie du minidriver AVStream. Par exemple, si l’appareil dispose de fonctionnalités de décodage, d’encodage et de traitement vidéo, ces fonctions doivent être représentées sous la forme de trois filtres KS distincts.
Encodeur : utilisé pour convertir un format non compressé en format compressé.
Décodeur : utilisé pour convertir un format compressé en format non compressé, qui doit inclure NV12.
Processeur vidéo : utilisé pour effectuer la mise à l’échelle, l’entrelacement/désentlacement et la conversion de format. N’incluez pas la prise en charge du traitement vidéo dans le décodeur ou le filtre d’encodeur.
Microsoft recommande vivement aux fournisseurs de prendre en charge la mise à l’échelle basée sur le matériel. Toutefois, si vous choisissez de ne pas fournir de prise en charge de la mise à l’échelle basée sur le matériel, vous pouvez utiliser le traitement vidéo MFT fourni par le système pour effectuer des opérations de mise à l’échelle à un niveau de performances réduit. Si vous ne prenez pas en charge la mise à l’échelle basée sur le matériel, le générateur de topologie Media Foundation insère automatiquement la mise à l’échelle MFT fournie par le système dans la topologie.
Inscrivez ses filtres KS de traitement multimédia sous l’une des catégories KS suivantes, disponibles dans Windows 7 et versions ultérieures de Windows :
En outre, les catégories suivantes sont également définies pour être utilisées dans d’autres scénarios de transcodage :
Les applications Media Foundation peuvent ensuite utiliser la fonction MFTEnumEx pour énumérer les appareils inscrits en tant que MFT à l’aide des catégories mentionnées précédemment.