Si vous appréciez VLC 3.0, vous adorerez la version 4.0. Tel est le message de l'équipe à la fin d'une première phase du développement de cette mouture attendue pour l'année prochaine. Unification de l'interface, Media Library généralisée, clocks ajustées et support d'AirPlay sont au programme.
Au début de l'année, le lecteur multimédia open source VLC 3.0 était mis en ligne. Une évolution majeure, non pas du design ou du logo de l'application, mais par son objectif : unifier le code pour les différentes plateformes.
Elles sont nombreuses, c'est d'ailleurs l'une des forces de cette application compatible avec Android (TV), xBSD, Chrome OS, iOS/tvOS, Linux, macOS, OS/2, QNX, Solaris, Syllable ou Windows. Elle fonctionne aussi bien sur des bases x86 qu'ARM, des PC que des smartphones, des tablettes, des TV connectées ou des box.
Ce n'est pas tout, puisqu'à travers les 18 000 commits effectués, outre de nouveaux formats et plus de 1 700 bugs corrigés, nous avons eu droit à l'accélération matérielle par défaut sur toutes les plateformes, le support du HDR 10/12 bits, des vidéos à 360°, de l'audio 3D, de HTTP/2, de la navigation réseau avec mot de passe et... Chromecast.
Bref, un travail massif qui ne s'est pas arrêté, VLC 4.0 (Otto Chriek) étant depuis en préparation. Les versions nightly avancent, avec une arrivée attendue pour 2019. L'occasion de faire le point sur l'avancement du projet.
La question des interfaces
Après avoir unifié le code du cœur de VLC, se posait la question de l'interface, pour proposer une expérience commune. D'autant que certains éléments ont été pensés il y a des années, pour des besoins n'ayant plus cours aujourd'hui.
L'exemple type que nous a donné Jean-Baptiste Kempf, président de VideoLAN, lorsque nous l'avons interrogé sur le sujet, est celui de la liste de lecture : « elle est utilisée pour de trop nombreuses fonctions qui ne sont pas la sienne au départ, que ce soit de la navigation dans les fichiers ou la gestion des boucles par exemple ».
L'idée est donc de rationaliser et revoir les choses en profondeur. La gestion de Windows XP et Vista, macOS 10.7 à 10.9, Android 2.3 à 4.2 et iOS 7/8 fait partie du passé. Pour ces plateformes, VLC 3.0 sera la version à utiliser, avec un support à long terme (LTS). La mouture UWP ne sera plus proposée. Sous Linux OpenGL devient obligatoire.
Un grand ménage est donc fait dans les interfaces, notamment grâce à un gros travail d'unification. Au final, sur la seule version destinée aux ordinateurs de bureau, c'est 25 % du code lié à l'UI qui disparaît.
Media Library partout
Déjà utilisée sur Android, le moteur d'indexation des contenus débarque sur iOS et les versions classiques de VLC. L'idée n'est pas de transformer l'outil en « Kodi-like » mais plutôt de simplifier son usage et la gestion des fichiers audio/vidéo.
Ainsi, il ne sera plus nécessaire de naviguer dans chaque répertoire de vos espaces de stockage locaux ou distants pour accéder à telle ou telle vidéo. Elle sera directement accessible, référencée dans un moteur de recherche, avec une navigation un minimum organisée : liste de lecture et gestion des métadonnées sont au programme.
Le tout est développé en bon vieux C++ et utilise SQLite, désactivable par ceux qui n'en veulent pas. VLC doit proposer un dispositif simple et léger capable de s'adapter tant aux appareils mobiles qu'aux ordinateurs et autres TV. Une première version sera disponible dans les nightly builds d'ici quelques semaines.
Liste de lecture, AirPlay, uPnP, clocks, audio et 3D/VR
Ce travail a été l'occasion d'une réécriture de l'input manager et de la liste de lecture, maintenant séparés. Cette dernière a été limitée aux besoins qui sont les siens, pour la rendre plus légère et réactive. La gestion de la sortie vidéo a aussi été lourdement modifiée, avec l'API Video Filter et un modèle push plutôt que pull désormais.
Le support du gapless est aussi au programme, alors que l'audio devrait être un axe important de VLC 4.0. À l'occasion d'un sondage géant, l'équipe s'est en effet aperçue que c'était un usage partagé par beaucoup d'utilisateurs. Il a donc été décidé de miser davantage sur les fonctionnalités pour audiophiles.
Autre bonne nouvelle : le support d'AirPlay. Comme avec Chromecast, il sera possible d'envoyer un flux depuis VLC sur un appareil compatible avec la solution d'Apple. Il en est de même via le protocole uPnP.
La gestion des clocks a pour sa part été repensée afin de disposer de timings justes, un point important pour les utilisateurs qui ont un usage professionnel de VLC. Mais de l'aveu même de Jean-Baptiste Kempf, cela demandera du temps (et quelques versions) avant que tout soit finalisé. Des fonctionnalités comme le retour arrière sont aussi intégrées.
Enfin, un gros travail, notamment de reverse engineering, a été fait pour supporter les différents casques de réalité mixte ou virtuelle présents sur le marché, ainsi que les smartphones. Le HDR est également mieux pris en charge.
Entre projets fou-fou et renforcement de la sécurité
Les développeurs avancent également sur des terrains à plus long terme comme une amélioration de la sécurité, souvent mise de côté par des applications qui se focalisent sur les usages multimédia.
Elle réclame cependant des compétences spécifiques et n'est pas forcément simple à mettre en œuvre dans des applications pouvant gérer autant d'éléments en entrées/sorties. Ce qui n'empêche pas VLC de chercher à évoluer dans le bon sens, notamment avec l'introduction de sandbox et de processus séparés pour les phases d'inpute/decode/demux.
Certains retiendront sans doute plus facilement le travail en cours sur VLC.js, qui vise à effectuer un portage au sein des navigateurs à travers WebAssembly, pour proposer une alternative aux lecteurs HTML5. L'application VLC Benchmark pour smartphones Android et la plateforme de recommandation de contenus, dont nous vous parlions l'année dernière, approchent pour leur part de la finalisation. Elles seront ainsi bientôt proposés en bêta publiques.
Concernant le codec dav1d annoncé début octobre, après de premiers résultats de performances, une version publique 0.1 devrait être publiée en début de semaine prochaine avant une intégration à VLC 3.0.5 d'ici la fin de l'année.
Vous pourrez retrouver une vidéo de présentation de VLC 4.0 au FOSSDEM 2018 ci-dessous :