-
Notifications
You must be signed in to change notification settings - Fork 0
baptisteem/Vorbis
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
##########################################################
# #
# OGG / VORBIS - Projet C 2014 #
# #
##########################################################
Equipe : QUESNOT Jean-Joseph
LE ROUX Erwan
EMMANUEL Baptiste
Contact : Si pendant l'execution du programme quelque chose devait
très mal se passer, fichier manquant, pas de fichier du tout,
mauvaise archivage, etc... il est possible de nous contacter
à l'adresse [email protected]
--------------------------------------------------------
* Avancement du projet :
- Tous les modules ont été implémentés, ceux de bases et ceux optionnels.
- Une implémentation de fast IMDCT a été faites. Celle ci n'est pas aussi
rapide que la version fourni. Cela viens, nous le pensons, de l'implémentation
et non du modèle mathématique. Pour la tester il suffit de faire
$ make fast
* Problème connue :
- Quand tout les modules sont ensembles nous avons une toute petite fuite mémoire
avec tromboon et tiersen. Nous n'avons pas eu le temps de debuger plus loin. Le
problème viens d'une allocation dans ogg_core, mais cela ne pose aucun soucis
quand on test ce module avec les objets de références.
- Le module ogg_packet ne fonctionne pas avec Tiersen. En effet nous avons un header
different lors de la comparaison. Cela est du au fait que le fichier fait 32 octets
de plus. Si nous enlevons ces octets à la main nous obtenon cette fois un RMS de 0.
Il est cependant fonctionnel avec windows, tromboon et mioumiou. Tout cela est
détaillé dans ogg_packet.c
Le module ogg_packet n'est donc pas dans le Makefile general pour eviter
d'endomager les autres exemples.
---------------------------------------------------------
* Organistation du Makefile :
Le Makefile a été en partie refait pour nous permettre de compiler
chaque module indépendement des autres. Ainsi un
$ make residue
va nous créer un exécutable avec tout les objets de référence et remplacer
l'objet residue par notre module compilé. Cela est bien sur utilisable avec
tous les modules. Toujours pour residue, un programme vorbis_decoder_residue
sera crée.
Pour utiliser tout les modules que nous avons implémentés il suffit de faire
$ make
Un programme vorbis_decoder_all sera alors crée. Pour des soucis de vitesse, nous avons enlevé notre time_domain_transform dans la compilation totale. Il peut évident y être ajouté, et peut aussi être testé grâce au script de test.
Enfin si l'on veut utiliser seulement les modules de références, il suffit de faire
$ make ref
----------------------------------------------------------
* Utilisation du script de test :
Un script de test a été crée en python et permet de tester le RMS
de chaque module pour tous les exemples. Le script se trouve dans le dossier test/,
et il faut donc se dépacer dans celui ci. Le script s'utilise ainsi
$ python script_test.py
Il est ensuite demandé à l'utilisateur quel module il souhaite tester. Tous les sons
seront alors testés avec l'outil ../utils/rms
Un rapport sera généré sous la forme rms_module_name.log, et contient le résultat du
test RMS.
Il est bien sur possible de tester l'ensemble du programme avec nos modules en
choisissant l'option 'Tout les modules'.
Organisation du dossier test/
- generated_samples/ : dossier contenant les .ogg transformés en .wav par notre
programme.
- ogg_examples/ : dossier contenant les .ogg de bases fourni au début du
projet.
- wav_examples/ : dossier contenant les .wav crée à partir du programme de
référence. Utils pour comparer nos .wav à ceux là.
/!\ Ne pas supprimer ces dossiers. Ils permettent au script de test de fonctionner
correctement.
---------------------------------------------------------
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published