|
@@ -0,0 +1,72 @@
|
|
|
+\section{Description des missions}
|
|
|
+
|
|
|
+Durant le stage et particulièrement au début, je me suis attaché à corriger des
|
|
|
+bogues et ajouter des fonctionnalités mineures à certaines parties de VLC.
|
|
|
+L'objectif de ces missions était pour la plupart d'entre elles d'apprendre le
|
|
|
+fonctionnement de VLC.
|
|
|
+
|
|
|
+Parmi ces missions, j'ai d'abord tenté de corriger un crash apparaissant lors de
|
|
|
+la fermeture de VLC. Puis j'ai ajouté le support du format MPEG-2 dans le
|
|
|
+décodeur hardware pour Android, alors que les brevets liés au format expiraient.
|
|
|
+Ensuite, j'ai rajouté une solution de contournement pour les fichiers réalisés
|
|
|
+avec un logiciel qui produisait un flux Matroska (mkv) invalide, mais restait
|
|
|
+lisible par d'autres logiciels.
|
|
|
+% TODO http://www.mpegla.com/main/programs/M2/Documents/m2-att1.pdf
|
|
|
+
|
|
|
+Certaines parties du stage ne seront pas décrites dans ce document. Il s'agit
|
|
|
+par exemple du support sur le forum dédié à VideoLAN, des communicactions avec
|
|
|
+des acteurs externes à VideoLabs, les réunions et discussions effectuées autour
|
|
|
+de différents thèmes venant la plupart du temps d'un des projets de ce document
|
|
|
+ou bien les ajouts réellement mineurs liés à une demande utilisateur.
|
|
|
+
|
|
|
+\section{Tentative de correction d'un crash}
|
|
|
+
|
|
|
+Cette mission fut ma toute première à VideoLabs. Arrivant légèrement en avance,
|
|
|
+et après discussion sur l'environnement de travail et mon futur rôle de
|
|
|
+stagiaire dans l'entreprise, on me demanda de compiler VLC pour me faire
|
|
|
+patienter avant midi, puis ne suffisant pas je fus redirigé vers ce bogue.
|
|
|
+
|
|
|
+% TODO: use after free ou double free ?
|
|
|
+Après utilisation de \inltype{asan}, un outil de vérification intrusif des accès
|
|
|
+mémoires, il s'avérait qu'un «use-after-free» avait lieu dans le code de la
|
|
|
+playlist VLC lors de la fermeture de l'application. N'ayant jamais utilisé Asan
|
|
|
+auparavant, ce fut une excellente introduction à l'outil, mais ne m'a pas suffit
|
|
|
+à déterminer la source du problème.
|
|
|
+
|
|
|
+% TODO http://git.videolan.org/?p=vlc.git;a=commit;h=70174a131ac045b33a8db417e7c626ec67cb0f53
|
|
|
+
|
|
|
+Le bug fut corrigé peu après par un autre développeur de l'entreprise, mais m'a
|
|
|
+permis de commencer à savoir naviguer dans un code source conséquent tout en
|
|
|
+faisant plus attention à mon environnement de débogage et de compilation,
|
|
|
+particulièrement sous Archlinux.
|
|
|
+
|
|
|
+\section{Ajout du support MPEG-2 dans MediaCodec}
|
|
|
+
|
|
|
+Cet ajout de fonctionnalité fut le premier patch intégré dans la branche master
|
|
|
+de VLC. Ce fut également le premier bug que j'ai pû écrire pour l'application.
|
|
|
+
|
|
|
+D'un part, l'activation du format fut raisonnable simple et correspondait à
|
|
|
+remplir un cas particulier dans un \inltype{switch}.
|
|
|
+
|
|
|
+De l'autre part, il a fallu rajouter des fonctions pour parser le bytestream
|
|
|
+entrant et extraire les informations de ratio d'aspect. Cette partie fut plus
|
|
|
+complexe, dans un premier temps pour comprendre cette notion de ratio d'aspect
|
|
|
+et les différences et interactions entre le ratio d'aspect source, le ratio
|
|
|
+d'aspect écran et le ratio d'aspect définit par l'utilisateur. Néanmoins ces
|
|
|
+informations-là m'ont servi plus tard pour aider à l'ajout de la gestion de
|
|
|
+l'aspect ratio utilisateur dans la version iOS de l'application.
|
|
|
+
|
|
|
+Ce passage fut également pour moi l'occasion de lire ma première norme liée au
|
|
|
+multimédia, ici la norme DVD, tout en produisant mon premier patch utile pour
|
|
|
+VLC. Ce fut également l'occasion de commencer à utiliser
|
|
|
+\inltype{git send-email} en suivant les recommandations du wiki de
|
|
|
+l'association.
|
|
|
+
|
|
|
+Quant au bug introduit, il fut corrigé plusieurs mois plus tard, révélant la
|
|
|
+difficulté de tester correctement VLC avec la diversité des formats, des
|
|
|
+bytestreams et des éditeurs existant, en plus de poser des questions techniques
|
|
|
+complexes vis-à-vis de la méthode de test.
|
|
|
+
|
|
|
+\section{Contournement pour la lecture de fichiers matroska invalides}
|
|
|
+
|
|
|
+
|