Hi all,I am planning to implement RTP on lwIP in that means I am compressing
the PCM data using a self written audio codec.
For this I am using this piece of code to convert the data from Analog to
Digital i.e to PCM[some functions are inbuilt functions on my Board]
int16_t pcm_buffer[1024] = {0};
void audio(void){ int i, j; audio = audio_open(AUDIO_1); while (1)
{ get_audio(pcm_buf, 1024); }
}
int get_audio(short *buffer, int n){ int s;
do { s = audio_record(audio, buffer, n); n -= s;
buffer += s; }while (n != 0);
return s;}
What I am assuming here is that the PCM data is stored in the buffer
"pcm_buffer" and it is of int 16 bit.
My encoder code goes like this ....
unsigned char linear2alaw(int pcm_val) /*here we expect pcm_val to be 2's
compliment which is of 16-bit-range */{ int sign, exponent, expMask,
mantissa; unsigned char alaw; ....... ........
return (unsigned char)(alaw^0xD5);}
In my RTP part of my code I need to put this compressed data on to a send
buffer which is declared like this......
#define RTP_PACKET_SIZE = 1500static uint8_t rtp_send_packet[RTP_PACKET_SIZE];
Now I call the linear2alaw function pass the pcm value and again again the
returned value to rtp_send_packet[] buffer like this.......
static uint8_t rtp_send_packet[RTP_PACKET_SIZE] = linear2alaw(stereo_buf);
When I compile my code it throws an error saying "incompatible types".
On the other hand if I assign this in another way like.......
static uint8_t rtp_send_packet[RTP_PACKET_SIZE] ;
rtp_send_packet[RTP_PACKET_SIZE] = linear2alaw(stereo_buf);
then it throws another error like ........"rtp_send_packet" redeclared with a
different type"
Can anybody find out where am I making mistake. I am using lwIP TCP/IP stack
for my implementation.
Regards,Greek _______________________________________________
lwip-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/lwip-users