|
@@ -6,15 +6,21 @@ pair.
|
|
|
|
|
|
Le module en lui-même est également un très bon candidat pour exploiter un
|
|
|
nouveau type de module dans libvlccore: les \inltype{stream_extractor}. Ces
|
|
|
-composants s'insèrent au niveau du \inltype{demux} et lui fournit une interface
|
|
|
-pour choisir quel média lire à partir du fichier torrent ou du lien magnet. Le
|
|
|
-concept amené par ce nouveau type de module est facilement descriptible par
|
|
|
-l'exemple. Le premier module réalisé ayant cette capacité est celui capable de
|
|
|
-lire des archives. Cela permet alors d'ouvrir l'archive comme si il s'agissait
|
|
|
-d'un dossier et lire n'importe quel flux au sein de ce premier flux.
|
|
|
+composants s'insèrent au niveau du \inltype{demux} et lui fournissent une
|
|
|
+interface pour choisir quel média lire à partir du fichier torrent ou du lien
|
|
|
+magnet. Le concept amené par ce nouveau type de module est facilement
|
|
|
+descriptible par l'exemple. Le premier module réalisé ayant cette capacité est
|
|
|
+celui capable de lire des archives. Cela permet alors d'ouvrir l'archive comme
|
|
|
+si il s'agissait d'un dossier et lire n'importe quel flux au sein de ce premier
|
|
|
+flux.
|
|
|
|
|
|
Ce module existait déjà avant le début de mon travail, mais j'ai travaillé sur
|
|
|
les problématiques suivantes.
|
|
|
+\begin{itemize}
|
|
|
+ \item Portage du module et mise à jour des dépendances.
|
|
|
+ \item Ajout du support pour GnuTLS.\@
|
|
|
+ \item Intégration avec WebTorrent.
|
|
|
+\end{itemize}
|
|
|
|
|
|
\section{Support de Windows et Android}
|
|
|
\subsection{Réimplémentation de promesses}
|
|
@@ -23,7 +29,7 @@ L'implémentation initiale était écrite avec la bibliothèque standard en C++1
|
|
|
le module n'était alors pas utilisable sous Windows compilé avec MinGW en
|
|
|
version winpthread. Il a donc fallu écrire un wrapper remplaçant les mutexes,
|
|
|
threads et variables de conditions utilisés en substituant pour l'implémentation
|
|
|
-disponible dans VLC.
|
|
|
+disponible dans VLC.\@
|
|
|
|
|
|
Le travail était donc en particulier d'écrire une nouvelle implémentation des
|
|
|
promesses et futures.
|
|
@@ -56,16 +62,16 @@ autres plateformes que Linux. J'ai pour cela ouvert des tickets et proposé des
|
|
|
patch temporaires rajoutant une implémentation des threads pour winpthread. Cela
|
|
|
semble rentrer en conflit avec le travail effectué précédemment, mais cette
|
|
|
initiative est seulement cloisonnée à la dépendance et ne déborde pas sur VLC.
|
|
|
-\@ C'est notamment une solution temporaire apparu par le remplacement de
|
|
|
+\@ C'est notamment une solution temporaire apparues avec le remplacement de
|
|
|
\inltype{boost::thread}, destinée à disparaitre dans le futur et un patch
|
|
|
s'accorde plus facilement avec cet esprit.
|
|
|
% TODO: https://github.com/arvidn/libtorrent/pull/2999
|
|
|
|
|
|
% TODO: ajouter références vers les pull requests
|
|
|
-Sur les cinq pull requests proposées, quatres ont été acceptées et intégrées:
|
|
|
+Sur les cinq pull requests proposées, quatre ont été acceptées et intégrées:
|
|
|
\begin{itemize}
|
|
|
\item «dynamically load getauxval so as to support older android devices»
|
|
|
- \#2830 : utilise \inltype{dlsym} pour charger dynamiquement
|
|
|
+ \#2830: utilise \inltype{dlsym} pour charger dynamiquement
|
|
|
\inltype{getauxval} et éviter la situation où la bibliothèque ne compile pas
|
|
|
quand \inltype{sys/auxv.h} n'est pas disponible.
|
|
|
\item « Add missing define for old android sdk» \#2831 corrige des erreurs
|
|
@@ -87,10 +93,10 @@ un algorithme RC4.
|
|
|
|
|
|
% TODO décrire BEP
|
|
|
Libtorrent supporte la BEP 35 qui est une extension au protocole apportant cette
|
|
|
-fonctionnalité. En interne, libtorrent utilise OpenSSL. Or, la licence d'OpenSSL
|
|
|
-n'est pas compatible avec les applications sous licence GPL. L'objectif de cette
|
|
|
-mission était donc d'essayer d'intégrer GnuTLS dans Libtorrent en parallèle du
|
|
|
-support pour OpenSSL.
|
|
|
+fonctionnalité. En interne, libtorrent utilise OpenSSL.\@ Or, la licence
|
|
|
+d'OpenSSL n'est pas compatible avec les applications sous licence GPL.\@
|
|
|
+L'objectif de cette mission était donc d'essayer d'intégrer GnuTLS dans
|
|
|
+Libtorrent en parallèle du support pour OpenSSL.\@
|
|
|
|
|
|
% https://blog.libtorrent.org/2012/01/bittorrent-over-ssl/
|
|
|
% http://www.bittorrent.org/beps/bep_0035.html
|
|
@@ -98,15 +104,16 @@ support pour OpenSSL.
|
|
|
\section{Projet subsidiaire, support du WebTorrent}
|
|
|
|
|
|
Le module était déjà fonctionnel et est désormais compatible avec toutes les
|
|
|
-plateformes importantes, malgré le manque de support pour OpenSSL. Cependant il
|
|
|
-ne peut pas être intégré et distribué avec VLC pour des raisons principalement
|
|
|
-politique. Un logiciel aussi connu distribuant un moyen d'utiliser des torrents
|
|
|
-illégaux seraient mal vu et représente une position difficile à assumer.
|
|
|
+plateformes importantes, malgré le manque de support pour OpenSSL.\@ Cependant
|
|
|
+il ne peut pas être intégré et distribué avec VLC pour des raisons
|
|
|
+principalement politiques. Un logiciel aussi connu distribuant un moyen
|
|
|
+d'utiliser des torrents illégaux seraient mal vu et représente une position
|
|
|
+difficile à assumer.
|
|
|
|
|
|
Suivant l'annonce de la sortie de PeerTube, se voulant être un Youtube
|
|
|
décentralisé fonctionnant grâce à Webtorrent, l'idée de s'intégrer nativement à
|
|
|
-Peertube a émergée comme une alternative correcte pour justifier l'intégration
|
|
|
-de ce module. Après une discussion avec Jean-Baptiste, l'idée fut accepté et
|
|
|
+Peertube a émergé comme une alternative correcte pour justifier l'intégration
|
|
|
+de ce module. Après une discussion avec Jean-Baptiste, l'idée fut acceptée et
|
|
|
j'ai pû commencer à me renseigner sur les différents moyens à notre disposition
|
|
|
pour utiliser webtorrent dans le module torrent.
|
|
|
|
|
@@ -119,9 +126,6 @@ implémentation de référence en nodeJS est disponible.
|
|
|
En suivant les discussions autour de cette intégration, je suis rapidement
|
|
|
arrivé à la nécessité d'intégrer une bibliothèque permettant de supporter une
|
|
|
connexion WebRTC directement dans libtorrent, le protocole BitTorrent étant
|
|
|
-identique une fois l'établissement de celle-ci. Malheureusement, par manque de
|
|
|
-temps aucune action significative n'a encore été entreprise pour avancer sur
|
|
|
-cette tâche.
|
|
|
-
|
|
|
-Il s'agit donc d'un point important pour l'intégration des travaux sur ce module
|
|
|
-dans VLC.
|
|
|
+identique une fois l'établissement de celle-ci. À ce jour, aucune action
|
|
|
+significative n'a encore été entreprise pour avancer sur cette tâche, par manque
|
|
|
+de temps.
|