[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Linphone-users] Problem with using oRTP
From: |
Mariusz Bożewicz |
Subject: |
[Linphone-users] Problem with using oRTP |
Date: |
Thu, 17 Jun 2004 16:06:07 +0200 |
Hi
I'm new on this list and I have a little problem with using oRTP in
simple application
Some data:
if (NULL == (oSess->sess = rtp_session_new(mode))){
g_printerr("Cannot create session\n");
return FALSE;
}
rtp_session_set_scheduling_mode(oSess->sess,1);
rtp_session_set_blocking_mode(oSess->sess,1);
g_print("[gtkspeak_ortp_media_init] localaddr = %s localport
=%s\n",oSess->localaddr,oSess->localport);
if
(0!=rtp_session_set_local_addr(oSess->sess,oSess->localaddr,atoi(oSess->localport))){
return FALSE;
}
if (mDirect != GTKSPEAK_RDONLY){
g_print("[gtkspeak_ortp_media_init] remoteaddr = %s remoteport
= %s\n",oSess->remoteaddr,oSess->remoteport);
if
(0!=rtp_session_set_remote_addr(oSess->sess,oSess->remoteaddr,atoi(oSess->remoteport))){
return FALSE;
}
}
rtp_session_set_profile(oSess->sess, &av_profile);
// rtp_session_set_jitter_compensation(oSess->sess, 60);
rtp_session_set_payload_type(oSess->sess,RTP_SESSION_PAYLOAD);
Receiving data:
while (mediaConnected){
bzero(bufor,min_size);
have_more = 1;
while (have_more){
err=rtp_session_recv_with_ts(mSess->sess,bufor,min_size/2,ts,&have_more);
if (err>0)
stream_received=1;
if ((stream_received) && (err>0)) {
g_print("Received: %d\n",err);
bufor_codec
=gtkspeak_codec32_unpack(bufor, err, &retsize);
if (bufor_codec && (retsize>0)){
//write(1,bufor_codec,retsize);
alaw_dec(bufor_codec,bufor_dec,retsize);
write(mSess->soundDesc,bufor_dec,retsize*2);
g_free(bufor_codec);
retsize = 0;
}
}
}
ts+=min_size/2;
// ts =rtp_session_get_current_recv_ts(mSess->sess);
}
Sending data:
while (mediaConnected){
bzero(bufor,min_size);
i = read (mSess->soundDesc,bufor,min_size);
//i = read (ftemp,bufor,min_size);
if (i>0){
g_print("i = %d\n", i);
//write(1,bufor,i);
alaw_enc(bufor,bufor_enc,i);
//write(1,bufor_enc,i/2);
bufor_codec =
gtkspeak_codec32_pack(bufor_enc,i/2,&retsize);
if (bufor_codec && (retsize>0)){
len =
rtp_session_send_with_ts(mSess->sess,bufor_codec,retsize,user_ts);
g_free(bufor_codec);
retsize = 0;
}
}
else
mediaConnected = FALSE;
// user_ts+=i;
user_ts = rtp_session_get_current_send_ts(mSess->sess);
}
When I run send application and recv application on the same machine all
is OK. When I try to run both applications on different machines
recv application receive only the first 6 - 8 packets.
Receiving statistics are following (i.e):
packet_sent=0
sent=0 bytes
packet_recv=89
hw_recv=428830 bytes
recv=4020 bytes
unavaillable=234265 bytes
outoftime=156234
bad=0
discarded=1234
This is not a real data but are very similar. I use oRTP 0.6.3 from
website. Any hint, what can I do to make it better?
--
regards
Mariusz Bozewicz
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Linphone-users] Problem with using oRTP,
Mariusz Bożewicz <=