Un an et demi après la dernière version majeure (1.1.0), VLC revient avec une nouvelle version: 1.2.0, disponible en pré-version de test. L'occasion de revenir sur les nouveautés de cette version.

Avec près de 8000 changements fait par 150 développeurs, 600 bugs fermés et près de 200 000 lignes de code modifiées, cette version est une des versions les plus importantes de VLC. Plus d'informations sur les contributeurs de VLC 1.2.

De son petit nom "TwoFlower" (qui vient de l'univers DiscWorld), les principales nouveautés de VLC portent sur les sorties vidéos, les nouveaux codecs, le support des Blu-Ray et les interfaces.

Nota Bene: ce post est un écrit qui a servit de base à un article de PCINpact que vous trouverez en ligne.

Coeur Vidéo

Les modifications les plus importantes, mais aussi moins visibles, portent sur la réécriture du coeur vidéo et les modules d'affichage à l'écran.

Sous-titres

Dans les versions actuelles de VLC, les sous-titres textes ont souvent une mauvaise qualité de rendu, notamment lors de visionnage de vidéo SD sur des écrans HD. En effet, pour des raisons de performance, VLC rend les sous-titres à la taille de la vidéo, puis les intègre dans la vidéo avant de les passer à la carte graphique en une seule texture, qui fait le scaling de l'ensemble. Dans certains cas, les sous-titres sont crénelés et de mauvaise qualité.

Sous TwoFlower, un nouveau mode de rendu est possible: VLC envoie 2 textures à la carte graphique, une pour la vidéo, à sa taille d'origine et une pour les sous-titres, à la taille de l'écran. La carte graphique se charge du scaling de la vidéo et d'afficher l'ensemble. Le résultat est bien plus agréable, mais demande du matériel plus récent.

Ce nouveau mode de rendu est disponible pour les sorties Direct3d pour Windows, OpenGL pour Linux et MacOS X et x11 pour Linux.

Shaders, 3D et performance

Le nouveau coeur vidéo permet aussi des améliorations de performances en déchargeant plus de calculs sur le GPU, lorsque cela est possible.

Par exemple, l'utilisation de shaders ARB dans la sortie vidéo OpenGL permet de faire les conversions YUV vers RGB sur le GPU, même en profondeur de 10 ou 12bits.

De plus, les bases des shaders sous Direct3d et de l'affichage 3D ont été ajoutés pour les prochaines versions. Un fork de VLC permet déjà l'affichage 3D sous nVidia Stereo Vision.

Filtres vidéos

VLC 1.2 voit l'ajout de nombreux filtres vidéos, certains connus, comme hqdn3d (suppression du grain), ou gradfun (suppression des gradients), d'autres originaux comme un nouveau filtre de grain, un filtre d'inverse téléciné ou un filtre de stabilisation pour les caméscopes.

Codecs, Formats

VLC TwoFlower, comme à chaque version, apporte le support de nombreux nouveaux codecs, formats de fichiers et périphériques.

Un support limité des Blu-Rays est donc intégré sur toutes les plate-formes. La configuration est compliquée et peu documentée, et une grosse proportion des Blu-Rays n'est pas supportée du tout. Les menus ne sont pas activés non plus. Ceci étant dit, c'est un premier pas.

L'ajout des protocoles de streaming adaptatifs HLS et DASH, des périphériques de capture de vidéo sous MacOS et des cartes d'acquisition professionnelles de types SDI viennent compléter le tableau au niveau du support des périphériques et protocoles.

Codecs

Au niveau codecs, le décodage multi-coeur est dorénavant possible et activé en H.264, DivX, VP3/Theora, Jpeg2000 et Webm/VP8, ce qui peut apporter des améliorations très importantes en performance, notamment en Full-HD. VLC était, sur ce point là, bien en-dessous des packs de codecs du style CoreAVC.

Autre ajout important, notamment pour les professionnels et les fans d'animation japonaise, les codecs en profondeur 10bits, en H.264, Jpeg2000, DNxHD et ProRes sont dorénavant décodés et correctement affichés.

En plus du support de nouveaux codecs, de très nombreuses améliorations ont été apportés à l'existant, notamment au niveau décodage audio et sous-titres HD, au support des méta-données, des codecs RealVideo, des images fixes et des formats Matroska et MPEG-2 TS.

Enfin, le décodage matériel est dorénavant supporté pour les cartes CrystalHD et les smartphones avec OpenMax IL, sous Android.

Interfaces

Les interfaces de VLC ont toujours été les parents pauvres de ce logiciel, notamment sous Mac OS X.

Cette version introduit donc une réécriture complète des interfaces Mac OS et Web.

L'interface Mac OS se présente dorénavant en une seule fenêtre, avec une barre latérale, comme iTunes ou Mail. 2 styles sont possibles dans les préférences: le noir de QT X et le gris de Lion. La plupart des fenêtres secondaires utilisent la transparence...

Ports

La version 1.2 de VLC apporte le portage de VLC sous iOS, Android, OS/2 et Windows 64bits.

Pour cela, le coeur de VLC a été adapté, des sorties audio et vidéo pour iOS, Android, OS/2 et Direct2d ont été ajoutées, et de nombreuses optimisations assembleurs ARM, ont été écrites.

libVLC en LGPL

La dernière chose importante de VLC 1.2.0, c'est le passage du coeur de VLC (libVLCcore et libVLC) de GPLv2 vers LGPLv2.1. Cela permet aux développeurs utilisant une autre licence que la GPL d'utiliser le moteur de VLC.