Extending the media platform using input, output and processing plugins

Message de Guillaume Leborgne

Extending the media platform using input, output and processing plugins. Une session prise en cours, pour cause de session full (c’est un peu irritant mais bon..). ça permet de voir comment on peut venir installer ses propres plugins de traitement vidéo, audio à l’éxécution dans une application métro.Les plugins permettent d’effectuer des traitements en temps réel. Changer le contraste d’une vidéo, faire de la détection de mouvement, du traitement, décodage…

Démo : reconnaissance d’objet dans un flux vidéo

–          Le  modèle objet est déjà bien établi sur la plateforme Windows 7

–          Windows 8 fourni WinRT qui peut être  utilisé depuis n’importe quel langage

–          Il est possible de s’intégrer avec DirectX 11

–          Les composants utilisés dans une application n’interragissent pas avec les autres applications

Design :

–          Les plugins sont des objets COM./C++

–          Pour les applications Metro, ils ne peuvent être installés sur la machine mais doivent pouvoir être activés

–          Le code natif est nécessaire pour des questions de performance, efficacité, accès au hardware…

Media foundation s’appuie sur DirectX et WASAPI et est utilisé par WinRT

Dans la démo : un composant C++ reçoit les trames vidéos et les passe tel quel. Il extrait les coordonnées des objets et les passe au code Metro.

Le composant implemente IMFTransform ( ProcessInput(), ProcessOutput()), IInspectable et une interface custom.Il produit 1 sample en sortie par sample en entrée. (une frame). Il n’existe pas qu’un seul format en entrée : parfois les pixels sont représenté dans un tableau 1D, parfois 2D. La représentation des pixels peut aussi varier (RGB ou Luminosité + couleur ou …)

On peut utiliser des fonctions pour nous assister dans le décodage/codage (ces fonctions peuvent être trouvées dans les exemples Media Foundation). Il est également possible de convertir l’entrée vers un format interne et de reconvertir en sortie

Comment créer le composant :

–          On défini les classes et les interfaces et l’idl

–          On Implémente les interfaces

–          On compile l’idl en Windows Runtime Metadata

–          On Inclus la dll avec l’appli et on la declare dans le manifest

En Javascript on peut installer les effets au runtime.

Il est également possible avec les MediaExtension WinRT d’enregistrer à l’éxécution un décodeur, un encodeur et celui-ci sera uniquement visible par l’application.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s