Accueil » Actualité » Le fichier vidéo de test qui plante le décodage d’Android

Le fichier vidéo de test qui plante le décodage d’Android

Image 1 : Le fichier vidéo de test qui plante le décodage d'AndroidVLC

Un des développeurs de VLC — Félix Abecassis — vient de pointer du doigt une chose intéressante : il est possible de planter un logiciel de lecture de vidéo sous Android (dans certains cas, on fige même totalement le terminal) avec… un fichier de test

Le décodage matériel en cause

La raison est simple : les logiciels de lecture de vidéos utilisent généralement le GPU (ou un composant dédié) pour décoder une vidéo, pour différentes raisons. La première, c’est que les appareils mobiles manquent généralement de puissance, les cores ARM n’étant pas des monstres de puissance. La seconde, c’est qu’un décodage effectué par une puce dédiée nécessite généralement peu de ressources, ce qui a un impact direct sur l’autonomie.

Sous Android, le décodage matériel passe par des API (MediaCodec sur les appareils récents) et donc si un programme va planter le processus de décodage matériel, tous les autres logiciels utilisant ce même processus ont des problèmes. Ironiquement, le fichier utilisé pour planter le décodeur est un fichier de test destiné à vérifier que le décodeur est fonctionnel (un MKV contenant du DivX5 et du MP3).

Félix a testé un petit programme qui va planter intentionnellement le processus, pour vérifier comment les logiciels de lecture réagissent. VLC et MX Player détectent que l’accélération ne fonctionne plus, le premier prévient l’utilisateur et propose de passer sur un décodage logiciel, le second passe automatiquement sur un décodage logiciel. DicePlayer et YouTube, quant à eux, arrêtent simplement de fonctionner, alors que Play Films, le logiciel de Google, redémarre tout simplement le périphérique.

À noter qu’iOS n’est pas touché, et pour une bonne raison : Apple ne donne pas accès à l’accélération matérielle sur ses appareils…