Chinese (People's Republic of China)  English  Français


Supinfo-Projects.com
Tous les projets des élèves ingénieurs de Supinfo



Projets
  Dernier Projet
  Les plus populaires
  Tous les Projets

140 Visiteurs
3168 Projets


My Supinfo-Projects

   Connectez-vous
   Créez un Compte


Synopsis

   1046 Visites
   Note INTERNET : 16.5
    (15 Votants)
   6 Commentaires

   Lire l'article

Evaluez cet article

20
18
16
14
12
10
8
6
4
2
0


Commentez cet article

Auteur :

Email :

Votre commentaire :



 
2004 - Pérennisation
Les bases du Protocole RTP en Java
[30 mn de lecture - paru le 5/11/2004 7:42:41 AM - Public : Confirmé]

Auteur

thirio_rRenaud THIRION
Elève-Ingénieur Supinfo Paris
Promotion SUPINFO 2005

   Lui écrire
   Tous les projets de cet auteur
   Le mini-CV de cet auteur

2. Transmission du RTP : Les différentes étapes de l’état du Processor

Pour permettre de transmettre un flux, et après qu’un Processor soit créé, il passe par différentes étapes :
- La configuration, qui démultiplexe le flux d’entrée et obtient des informations sur le format des données d’entrée.
- Le bon formatage des pistes du Processor
- La réalisation du processor, qui est le stade abouti du Processor.
- Le démarrage du processor.

2.1. La Configuration

Le moyen, pour configurer un Processor, est simple : il suffit d’appeler la méthode configure() du Processor. Néanmoins, cette méthode n’est pas bloquante et n’attend donc pas que le Processor soit configuré pour continuer, c’est à dire que si dans la suite du programme, d’autres méthodes font appel à un Processor configuré, on obtiendra une erreur. Il faut donc utiliser la méthode getState() qui renvoie un nombre « croissant » correspondant à l’état actuel de notre Processor pour savoir quand celui ci est configuré.

public Processor configure(Processor p)

{

       //Attendre tant que le Processor n'est pas configuré.

       while(p.getState() < Processor.Configured)

       {

              //Configuration du Processor

              p.configure();

       }

       return p;

}

2.2. Mettre les différentes pistes du flux dans un format supporté

On doit mettre chaque piste du Processor dans un format supporté sinon, le programme ne pourra pas transmettre le flux et générera une erreur. Pour cela, on utilise la méthode getSupportedFormats() de la classe TrackControl, pour connaître les différents formats supportés par chaque piste.
Le code source suivant est simple, mais au lieu de :

track[i].setFormat(supportedFormats[0]);

on pourrait mettre :

track[i].setFormat(new VideoFormat(VideoFormat.H263_RTP, new Dimension(160,120), Format.NOT_SPECIFIED, Format.buteArray, Format.NOT_SPECIFIED);

pour, par exemple, mettre le flux de sortie en résolution 160 par 120 (si c’est un flux vidéo bien entendu).

public void SetSupportedFormat(Processor p)

{

       //On met la description du contenu de sortie à RAW_RTP

       //     pour limiter les formats supportés

       ContentDescriptor cd = new ContentDescriptor(                                                                              ContentDescriptor.RAW_RTP);

       p.setContentDescriptor(cd);

             

       //On obtient les différentes pistes du processor

       TrackControl track[] = p.getTrackControls();

             

       for(int i = 0 ; i < track.length ; i++)

       {

              //on obtient les formats supportés pour cette piste

              Format suppFormats[] = track[i].getSupportedFormats();

                          

              //Si il y a au moins un format supporté

              //            alors on met le premier

              if(suppFormats.length > 0)

              {

                     track[i].setFormat(suppFormats[0]);

              }

              else

              {

                     track[i].setEnabled(false);

              }

       }

}

2.3. La Réalisation

De-même que pour la configuration, il est simple de réaliser un processor, mais on doit là aussi attendre qu’il passe au statut « réalisé » par nous même, car la méthode realize(), n’est pas bloquante.

public Processor realize(Processor p)

{

       //Attendre tant que le Processor n'est pas réalisé.

       while(p.getState() < Processor.Realized)

       {

              //Réalisation du Processor

              p.realize();

       }

       return p;

}

2.4. Le Démarrage du Processor

Il suffit d’utiliser la méthode start() du Processor, pour le démarrer.

public void Demarre(Processor p)

{

       //Demarrage du Processor

       p.start();

}




Articles de la même catégorie

 Pages : Top


410 Visites
0 Commentaires
In the discovery of the registry
[20 mn de lecture - paru le 5/11/2004 2:10:00 AM - Public : Confirmé]

En savoir plus


220 Visites
0 Commentaires
Introduction to Delphi 8
[15 mn de lecture - paru le 5/11/2004 1:42:51 AM - Public : Confirmé]

En savoir plus


214 Visites
0 Commentaires
Development step by step of Paint in C# with GDI+
[60 mn de lecture - paru le 5/11/2004 1:33:24 AM - Public : Débutant]

En savoir plus

   Tous les Articles


SUPINFO Training Center peut vous proposer une formation ...

   Devenez Ingénieur Système Microsoft en 35 jours avec SUPINFO Training Center
   Devenez Certifiés Cisco en 13 jours avec SUPINFO Training Center
   Devenez Administrateur Système Microsoft avec SUPINFO Training Center
   Devenez Développeur Microsoft .NET en 13 jours avec SUPINFO Training Center



Powered by Campus-Booster Technology
Conditions d'utilisation & Copyright | Respect de la vie privée
© Copyright 1965-2006 Supinfo Paris, Paris Academy of Computer Science
Supinfo, Ecole Supérieure d'Informatique et Paris Academy Of Computer Science are trade marks.
23, rue de Château LANDON - 75010 PARIS - Phone : +33 (0) 153359 700 Fax : +33 (0) 153359 701

Web site autided by :