:: Enseignements :: ESIPE :: INFO1 :: 2007-2008 :: Programmation C - Slot 2 ::
| vidasciIRt |
But du projet
Vous devrez réutiliser votre projet asciIRt de façon à fournir un player
de vidéos MPEG2 en ascii art.
Méthode et outils
Vous devrez utiliser les 2 bibliothèques suivantes:
-
libmpeg2: permet de lire des fichiers MPEG2 image par image.
Plus d'infos sur libmpeg2
-
ncurses: permet de gérer des fenêtres en mode texte dans un terminal, façon vim.
Plus d'infos sur ncurses
Une partie importante de votre travail consistera à découvrir comment utiliser ces 2 bibliothèques.
À vous d'apprendre à lire du MPEG2 et à utiliser votre travail du slot1 pour convertir chaque image
en ascii art. La bibliothèque
ncurses vous fournira les outils nécessaires pour pouvoir afficher
vos images dans une zone de texte fixe, afin que le résultat ne soit pas du texte qui défile façon
man gcc | cat mais bien une agréable animation. Si cela est nécessaire, vous devrez réduire
la taille des images afin que leurs versions ascii tiennent dans la zone de texte utilisée pour l'affichage.
Vous devrez également vous préoccuper de la
temporisation entre chaque image, histoire de respecter au maximum le rythme de 25 images par seconde.
Votre solution à ce problème devra faire l'objet d'explications détaillées dans votre rapport.
Conditions de développement
Comme cela vous a été dit en cours, le but de ce projet est moins de pondre du code que de
développer le plus proprement possible. C'est pourquoi, vous développerez ce projet sur le
serveur CVS de l'université.
Comme nous attendons de vous que vous le fassiez sérieusement, votre rendu devra contenir un dump
du fichier de logs de votre projet CVS, afin que nous puissions nous assurer que vous avez bien
développé par petites touches successives et propres (commits bien commentés), et non pas avec un
seul commit du résultat la veille du rendu.
Conditions de rendu
Comme au slot 1, vous travaillerez en binômes, et vous relirez pour un profit maximum la
charte des projets.
Contrairement au slot 1, vous ne rendrez pas votre projet au moyen d'une archive, mais avec
un package Debian. Le rendu consistera donc en un mail dans lequel vous donnerez l'URL de votre
repository, qui devra se trouver sur votre compte web de l'université. Le test de votre projet se
fera alors avec la commande:
sudo apt-get install vidasciIRt
La commande
vidasciIRt doit alors être installée et doit pouvoir permettre la visualisation
d'un fichier MPEG2 passé en paramètre. Naturellement, toutes les options que vous proposerez (ne serait-ce que
--help) devront être gérées avec
getopt_long. Votre package devra correctement gérer
les dépendances, de façon à récupérer les bibliothèques
libmpeg2 et
ncurses si
elles ne se trouvent pas déjà sur le système.
Afin de pouvoir accéder aux sources de votre travail, vous préparerez également un package source contenant
les choses suivantes:
- un répertoire src contenant les sources du projet ainsi qu'un Makefile. Lorsqu'on
lance make, on doit obtenir un exécutable nommé vidasciIRt. La cible clean
doit fonctionner correctement. Les sources doivent être propres, en anglais et commentées.
- un fichier cvs_logs correspondant au dump des logs de votre projet CVS
- un fichier doc.pdf contenant votre rapport qui devra décrire votre travail. En particulier,
vous décrirez avec soin et en la justifiant votre solution au problème de la temporisation.
Si votre projet ne fonctionne pas complètement, vous devrez en décrire les bugs.
Il serait également bon de fournir quelques liens vers des vidéos de test. La maison ne reculant devant
rien, vous pourrez commencer par
celle-ci.
Comme pour l'exécutable, l'accès à votre package source se fera au moyen de
apt-get:
apt-get source vidasciIRt
- En dehors des 2 bibliothèques mentionnées et de votre travail du slot 1, il
est interdit d'utiliser du code externe: vous devrez tout coder vous-mêmes.
- Tout code commun à plusieurs projets vaudra zéro pour tous les projets concernés.
Le projet est à rendre par mail à tous les enseignants (i.e. Guillaume Blin, Mathieu Constant et Sébastien Paumier),
au plus tard le jeudi 22 mai 2008 à 23h.
© Université de Marne-la-Vallée