Android inclut Stagefright, un moteur de lecture multimédia au niveau natif qui intègre des codecs logiciels pour les formats multimédias courants.
Les fonctionnalités de lecture audio et vidéo Stagefright incluent l'intégration avec Codecs OpenMAX, gestion des sessions, rendu synchronisé dans le temps, transport le contrôle et la DRM.
Stagefright permet également l'intégration avec les codecs matériels personnalisés fournis par vous. Pour définir un chemin d'accès matériel permettant d'encoder et de décoder le contenu multimédia, vous devez implémenter un du codec matériel en tant que composant OpenMax IL (Integration Layer)
Remarque:Les mises à jour de Stagefright peuvent se faire via Sécurité mensuelle Android de mise à jour et dans le cadre d'une version de l'OS Android.
Architecture
Les applications multimédias interagissent avec le framework multimédia natif Android. selon l'architecture suivante.
- Framework d'application
- Au niveau du framework d'application se trouve le code d'application qui utilise android.media des API pour interagir avec le matériel multimédia.
- Classeur IPC
- Les proxys d'IPC de liaison facilitent la communication sur les limites des processus.
Ils se trouvent dans le répertoire
frameworks/av/media/libmedia
et par la lettre "I". - Framework multimédia natif
- Au niveau natif, Android fournit un framework multimédia qui utilise
le moteur Stagefright pour l'enregistrement
et la lecture audio et vidéo. Le trac
est fourni avec une liste par défaut des codecs logiciels pris en charge. Vous pouvez
votre propre codec matériel en utilisant la norme
de couche d'intégration OpenMax. Pour
plus d'informations sur l'implémentation, consultez les composants MediaPlayer et Stagefright
situé dans le pays suivant :
frameworks/av/media
. - Couche d'intégration OpenMAX (IL)
- OpenMAX IL offre à Stagefright une méthode standardisée pour reconnaître et
utilisent des codecs multimédias
matériels personnalisés, appelés composants. Vous devez indiquer
un plug-in OpenMAX sous la forme d'une bibliothèque partagée nommée
libstagefrighthw.so
Ce plug-in associe Stagefright à votre configuration personnalisée composants de codec, qui doivent être implémentés conformément à la norme OpenMAX IL composant standard.
Implémenter des codecs personnalisés
Stagefright intègre des codecs logiciels
pour les formats multimédias courants,
vous pouvez aussi ajouter vos propres codecs matériels
personnalisés en tant que composants OpenMAX. À faire
vous devez créer les composants OMX et un plug-in OMX qui relie les deux
vos codecs personnalisés avec le framework Stagefright. Pour obtenir des exemples de composants, consultez
hardware/ti/omap4xxx/domx/
; pour obtenir un exemple de plug-in
Galaxy Nexus, voir hardware/ti/omap4xx/libstagefrighthw
.
Pour ajouter vos propres codecs:
- Créez vos composants conformément à la norme de composant OpenMAX IL. La
de l'interface du composant
frameworks/native/include/media/OpenMAX/OMX_Component.h
. À pour en savoir plus sur la spécification OpenMAX IL, consultez Site Web OpenMAX - Créer un plug-in OpenMAX qui associe vos composants à Stagefright
Google Cloud. Pour découvrir les interfaces permettant de créer le plug-in, consultez
frameworks/native/include/media/hardware/OMXPluginBase.h
etHardwareAPI.h
. - Créez votre plug-in en tant que bibliothèque partagée portant le nom
libstagefrighthw.so
dans le fichier Makefile de votre produit. Par exemple:
LOCAL_MODULE := libstagefrighthw
Dans le fichier Makefile de votre appareil, veillez à déclarer le module en tant que produit package:
PRODUCT_PACKAGES += \ libstagefrighthw \ ...
Exposer les codecs au framework
Le service Stagefright analyse l'system/etc/media_codecs.xml
et system/etc/media_profiles.xml
pour exposer les codecs compatibles
et des profils de l'appareil aux développeurs d'applications via le
android.media.MediaCodecList
et
android.media.CamcorderProfile
. Vous devez créer les deux fichiers
dans le répertoire device/<company>/<device>/
et copiez-le dans le répertoire system/etc
de l'image système
le fichier Makefile de votre appareil. Exemple :
PRODUCT_COPY_FILES += \ device/samsung/tuna/media_profiles.xml:system/etc/media_profiles.xml \ device/samsung/tuna/media_codecs.xml:system/etc/media_codecs.xml \
Pour obtenir des exemples complets, consultez device/samsung/tuna/media_codecs.xml
.
et device/samsung/tuna/media_profiles.xml
.
Remarque:À partir d'Android 4.1, les
L'élément <Quirk>
pour les codecs multimédias n'est plus accepté.