VZTECH / Mbed 2 deprecated header_main

Dependencies:   EthernetInterface NTPClient mbed-rtos mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers rtp.cpp Source File

rtp.cpp

00001 #include "rtp.h"
00002 
00003 RTP_Header::RTP_Header( int cb_ext ){
00004     // por algum motivo do alem, comecar do 0 nao funcionou
00005     ss_id = 0x01010101 + ( uint32_t )cb_ext;
00006     seq_number = 0x0101;
00007     timestamp = 240;
00008 }
00009 
00010 RTP_Header::~RTP_Header(){
00011     // something
00012 }
00013 
00014 char * RTP_Header::build_header( char * pkg ){
00015     if( pkg == NULL ) return( NULL );
00016     
00017     for( register int i = 0; i < __RTP_HEADER_SIZE__; i++ ) pkg[ i ] = 0xff;
00018 
00019     pkg[ 0 ] &= 0x80;
00020     
00021     pkg[ 1 ] &= 0x08;
00022 
00023     pkg[ 2 ] = 0xff;
00024     pkg[ 2 ] &= ( char )( seq_number >> 8 );
00025     pkg[ 3 ] &= ( char )( seq_number & 0xff );
00026     
00027     pkg[ 4 ] &= ( char )( timestamp >> 24 & 0xff  );
00028     pkg[ 5 ] &= ( char )( timestamp >> 16 & 0xff );
00029     pkg[ 6 ] &= ( char )( timestamp >> 8 & 0xff );
00030     pkg[ 7 ] &= ( char )( timestamp & 0xff );
00031     
00032     pkg[ 8 ] &= ( char )( ss_id >> 24 & 0xff );
00033     pkg[ 9 ] &= ( char )( ss_id >> 16 & 0xff );
00034     pkg[ 10 ] &= ( char )( ss_id >> 8 & 0xff );
00035     pkg[ 11 ] &= ( char )( ss_id & 0xff );
00036     
00037     pkg[ __RTP_HEADER_SIZE__ ] = 0;
00038     timestamp += 240;
00039     seq_number++;
00040     
00041     return( pkg );
00042 }
00043 
00044 size_t RTP_Header::size( void ){
00045     return( __RTP_HEADER_SIZE__ );    
00046 }
00047 
00048 RTP_Body::RTP_Body(){
00049     // do something
00050 }
00051 
00052 RTP_Body::~RTP_Body(){
00053     // something
00054 }
00055 
00056 size_t RTP_Body::size( void ){
00057     return( sizeof( RTP_Body ) );    
00058 }
00059 
00060 char * RTP_Body::build_body( char * dest, char * buffer ){
00061     for( register int i = 0; i < __CB_AUDIO_DATA_SIZE__; i++ ) dest[ i ] = buffer[ i ];
00062     return( dest );
00063 }
00064 
00065 RTP::RTP( int ext ){
00066     rtp_header = new RTP_Header( ext );
00067     rtp_body = new RTP_Body();
00068 }
00069 
00070 RTP::~RTP(){
00071     if( rtp_header ) delete( rtp_header );
00072     if( rtp_body ) delete( rtp_body );
00073 }
00074 
00075 char * RTP::build_eth_package( char * buffer ){
00076     rtp_header->build_header( this->pkg );
00077     rtp_body->build_body( this->pkg + __RTP_HEADER_OFFSET__, buffer );
00078     return( this->pkg );
00079 }
00080 
00081 size_t RTP::header_size( void ){
00082     return rtp_header->size();
00083 }