|
@@ -1,13 +1,99 @@
|
|
|
\documentclass[a4paper]{memoir}
|
|
|
|
|
|
+\usepackage[utf8x]{inputenc}
|
|
|
+\usepackage[french]{babel}
|
|
|
+\usepackage[cyr]{aeguill}
|
|
|
+\usepackage{xspace}
|
|
|
+
|
|
|
\begin{document}
|
|
|
|
|
|
-\title{{\Huge{Rapport de stage -- VideoLabs}} \\
|
|
|
+\title{{\Huge{Rapport de stage --- VideoLabs}} \\
|
|
|
Renforcement de la sécurité d'un lecteur vidéo multiplate-forme par séparation des privilèges}
|
|
|
\author{Alexandre Janniaux}
|
|
|
\date{19 septembre 2018}
|
|
|
|
|
|
\maketitle
|
|
|
|
|
|
+\tableofcontents
|
|
|
+
|
|
|
+\chapter*{Introduction}
|
|
|
+
|
|
|
+
|
|
|
+\part{Fonctionnement de VLC}
|
|
|
+\chapter{Architecture modulaire}
|
|
|
+
|
|
|
+
|
|
|
+\part{VLC-sandbox, sécurité par isolation et limitation des capacités}
|
|
|
+\chapter{Qu'est-ce que le sandboxing}
|
|
|
+
|
|
|
+\chapter{Pourquoi faire du sandboxing dans VLC}
|
|
|
+
|
|
|
+\chapter{Abstractions apportées dans la sandbox}
|
|
|
+\section{Question d'architecture: broker vs orchestrateur}
|
|
|
+\subsection{Le modèle broker}
|
|
|
+
|
|
|
+\subsection{Le modèle orchestrateur}
|
|
|
+
|
|
|
+\chapter{Communication inter-processus}
|
|
|
+
|
|
|
+\chapter{Initialisation des liens entre modules}
|
|
|
+
|
|
|
+\chapter{Gestion des messages reçus: boucle événementielle}
|
|
|
+
|
|
|
+\chapter{Gestion des blocs mémoires}
|
|
|
+
|
|
|
+\chapter{Gestion des objets de libvlccore, design pattern}
|
|
|
+
|
|
|
+\chapter{Technique de sandboxing alternative, isolation par module}
|
|
|
+
|
|
|
+
|
|
|
+\part{Implémentation de la sandbox sous Linux}
|
|
|
+\chapter{Passage de descripteur de fichiers entre processus}
|
|
|
+
|
|
|
+\chapter{Gestion asynchrone des messages reçus}
|
|
|
+
|
|
|
+\chapter{Routage des messages dans les différents modèles}
|
|
|
+
|
|
|
+\chapter{Gestion des accès et permissions via socket unix et descripteur de fichiers}
|
|
|
+
|
|
|
+
|
|
|
+\part{Implémentation de la sandbox sous Windows}
|
|
|
+\chapter{Passage de descripteur de fichiers entre processus}
|
|
|
+
|
|
|
+\chapter{Gestion asynchrone des messages reçus}
|
|
|
+
|
|
|
+\chapter{Routage des messages dans le modèle broker}
|
|
|
+
|
|
|
+\chapter{Gestion des accès et de la mémoire via ACL}
|
|
|
+
|
|
|
+
|
|
|
+\part{Implémentation d'un encodeur matériel pour Android}
|
|
|
+\chapter{Qu'est-ce qu'un encodeur vidéo}
|
|
|
+
|
|
|
+\chapter{Encodeur matériel VS encodeur logiciel}
|
|
|
+
|
|
|
+\chapter{Objectifs de la mission}
|
|
|
+
|
|
|
+\chapter{Fonctionnement d'un encodeur dans VLC}
|
|
|
+
|
|
|
+\chapter{Implémentation de l'encodeur via l'API native de MediaCodec}
|
|
|
+
|
|
|
+\chapter{Implémentation de l'encodeur via l'API Java JNI de MediaCodec}
|
|
|
+
|
|
|
+
|
|
|
+\part{Finalisation et optimisation d'un moteur de rendu pour la réalité virtuelle}
|
|
|
+\chapter{Qu'est-ce que la réalité virtuelle}
|
|
|
+
|
|
|
+\chapter{Objectifs du projet}
|
|
|
+
|
|
|
+
|
|
|
+\part{Missions subsidiaires}
|
|
|
+
|
|
|
+\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'équalizer externe sur Android}
|
|
|
+
|
|
|
|
|
|
\end{document}
|