Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1366 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  extraire un champ dans un paquet RTP

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

extraire un champ dans un paquet RTP

n°2071680
razuki
Posté le 22-04-2011 à 16:01:12  profilanswer
 

Bonjour,
Je code en C++
j'aimerais savoir comment on fait pour extraire un bloc de données dans un paquet RTP?
Il faut que j'extraie le champ SSRC qui se trouve à 8octet du début du header. le champ SSRC est en fait de type unsigned int. Comment le récupérer à partir du header RTP et l'interpreter en tant qu'unsigned int.
 
j'ai envie de faire quelque chose du type :

Code :
  1. unsigned char* ssrc = new unsigned char* ssrc[4]
  2. unsigned int ssrc = (unsigned int) ssrc;


 
Merci d'avance pour votre aide.

mood
Publicité
Posté le 22-04-2011 à 16:01:12  profilanswer
 

n°2071694
gilou
Modérateur
Modzilla
Posté le 22-04-2011 à 16:49:29  profilanswer
 

Vu que ton champ fait 32 bits, il faut utiliser le type unsigned long int qui lui aussi fait au moins 32 bits quelque soit l'architecture.
A+,


Message édité par gilou le 22-04-2011 à 19:05:35

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2071698
theshockwa​ve
I work at a firm named Koslow
Posté le 22-04-2011 à 17:20:10  profilanswer
 

alors, le cast C, quand tu es en C++, c'est très très mal. Ici, par exemple, ca aura comme effet dévastateur que l'entier que tu vas récupérer sera en fait l'adresse de ton pointeur et non la zone pointée ...
 
Ensuite, ce que tu récupères du réseau doit généralement être mis au format d'endianness de ta machine via un appel à ntohl (Network TO Host Long) dans le cas d'une donnée 32 bits.
 
Et comme le dit gilou, il faut que tu utilises un long int, car c'est là le type qui te garantit contenir au moins 32 bits (et sur la plupart de nos architectures actuelles, ce sera bien 32)
 
en gros, tu pourras faire quelque chose qui s'apparente à ca :

Code :
  1. long int getSsrcFromRtp( const char* RtpPacket )
  2. {
  3.     return ntohl( *reinterpret_cast< const long int* >( RtpPacket + 8 ) );
  4. }



Message édité par theshockwave le 22-04-2011 à 17:20:26

---------------
last.fm

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  extraire un champ dans un paquet RTP

 

Sujets relatifs
comment extraire plusieurs chaine de caracteres d'un fichier ???[Resolu] Valider formulaire lorsqu'un champ text a atteind 10 chiffres
[bash] Extraire et concaténer 2 strings depuis un fichierverifier si champ vide
Performances champ de type tableauExtraire les noms des fichiers pour les utiliser en variable
extraire une cahine dans une autre cahine[SSRS] Positionnement dans champ dans Report
comment ajouter un champ[PHP] Jointure sur plusieurs champ ?
Plus de sujets relatifs à : extraire un champ dans un paquet RTP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR