linphone-users
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]