Explorar o código

chapters/other_bug_features: ajout du chapitre

Alexandre Janniaux %!s(int64=6) %!d(string=hai) anos
pai
achega
1a47548c47
Modificáronse 2 ficheiros con 75 adicións e 4 borrados
  1. 72 0
      chapters/other_bug_features.tex
  2. 3 4
      main.tex

+ 72 - 0
chapters/other_bug_features.tex

@@ -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}
+
+

+ 3 - 4
main.tex

@@ -127,13 +127,12 @@ Renforcement de la sécurité d'un lecteur vidéo multiplate-forme par séparati
 
 \part{Missions subsidiaires}
 
+\chapter{Ajout de fonctionnalités mineures et correction de bogues}
+\input{chapters/other_bug_features}
+
 \chapter{Implémentation d'un encodeur matériel sous Android}
 \input{chapters/other_android_mediacodec}
 
-\chapter{Correction d'un crash lors de la fermeture de l'application}
-
-\chapter{Fichiers vidéo au format Matroska défectueux dans VLC}
-
 \chapter{Ajout du support d'égaliseur externe sur Android}
 
 \chapter{Amélioration d'un module d'extraction de flux vidéos depuis des torrents}