TER 2005 Sujet encadré par Philippe Collet Nicolas Yohann Barbier Thomas Castillejos Nicolas Sauvan Bastien Salageanu Emil
Introduction Fractal TV Application client/serveur vidéo Streaming Téléchargement Portabilité Architecture par composants
Objectifs Initiaux 1. Prototype entièrement fonctionnel 2. Architecture facilement extensible 3. Utilisable sur Windows et Linux et éventuellement sur Pocket PC 4. Utilisation de Fractal 5. Déploiement en ADL
Technologies utilisées Plate-forme Fractal Java Media Framework (JMF) Remote Method Invocation (RMI) Architecture Definition Language (ADL)
Les risques Technologies non maîtrisées Programmation par composants Déploiement Pocket PC: Compatibilité JVM de IBM Déploiement laborieux Configuration minimale Performance de la lecture vidéo
Phase de pré développement Ce qui a été fait : Prototype sous forme de classes java Parties fonctionnelles mais indépendantes Exclusivement sur PC
Planning prévisionnel
Planning effectif
Problèmes et solutions Fractal Déploiement : Priorité plus élevée de lADL: apprentissage plus long Incompatibilité librairies Fractal: recherche dun ensemble cohérent Fractal-RMI : Échec déploiement par le client Déploiement coté client et serveur
Principe de fonctionnement
Problèmes Pocket PC Lecture vidéo lente avec JMF Cross Platform Projet ESSI : Optimisation de la JMF sur PPC non aboutie Recherche dune solution alternative (Windows Media Player) Adoption de la solution la plus raisonnable (codec H263)
Problèmes et solutions PocketPC Incompatibilités JMF – J9 Réception vidéo et audio : NoClassDefFoundError Solutions Vidéo : Solution trouvée sur les forum de sun : Suppression de la classe Java2DRenderer du jmf.jar Audio : Essai des solutions possibles (JavaSound, SunAudio) mais sans succès
Problèmes et solutions PocketPC Incompatibilités Fractal-RMI – J9 Parsing XML Manquant sur la J9 Tentative de rendu de compatibilité (1 semaine) : Ajout des classes de parsing XML du jdk 1.4 Le chargeur dynamique de classe ne voulait pas sinstancier : ant -> juliaruntimej2me.jar. Problème daccès à la méthode createClassLoader -> java.policy pas pris en compte par la J9 Tests en parallèle sur le JDK1.3: problème de sécurité au moment de la désérialisation par le stub Solution de replis : communication par Socket ( 2 jours)
Problèmes et solutions JMF Linux Performance Pack: Impossibilité de redimensionner le format H263 Gestion des codecs vidéo: Peu de formats reconnus par défaut Intégration de librairies supplémentaires Incompatibilité entre la JMF et la librairie pour les divx
Architecture finale du prototype
Architecture Pocket PC
Fonctionnalités finales 1. Prototype entièrement fonctionnel 2. Architecture facilement extensible 3. Les 2 modes dutilisations sont utilisables simultanément 4. Utilisable sur Windows et Linux et PocketPc 5. Client Fractal-RMI pour les PCs 6. Client Fractal pour les PocketPc
Bilan Ce que nous apporté ce TER Tâches restant à accomplir: Une parade au bug de la JMF linux La gestion de la qualité vidéo Plus de codecs Conseils pour la suite du développement
Au final… Démo Avez-vous des questions?