linphone-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Linphone-users] Bug in oRTP Version ortp-0.10.1


From: Kannaiyan Natesan
Subject: Re: [Linphone-users] Bug in oRTP Version ortp-0.10.1
Date: Tue, 22 Aug 2006 10:02:16 +0800

Hi Simon,

Thanks your kind reply.

Receive is in a seperate Thread.
Transmit is in a seperate Thread.

session_destroy is in a seperate thread.

WIth regardless of any condition I just called session_destroy, it must release the recv function right?

Regards,
Kannaiyan

----- Original Message ----- From: "Simon Morlat" <address@hidden>
To: "Kannaiyan Natesan" <address@hidden>
Cc: "linphone-users" <address@hidden>
Sent: Monday, August 21, 2006 8:06 PM
Subject: Re: [Linphone-users] Bug in oRTP Version ortp-0.10.1

You must wait the last call to rtp_session_*_with_ts to finish before calling
rtp_session_destroy().
I guess you are using this RtpSession object from two threads: if your
application does take care of serializing the calls to this RtpSession
object, you'll get problems.
If you don't do that the rtp_session_*_with_ts will lock since the mutex and
the condition will be destroyed by rtp_session_destroy().

Simon

Le lundi 31 juillet 2006 10:39, Kannaiyan Natesan a écrit :
When restarting the session, it doesn't print anything. Since it is locked
in the previous lock.

pthread_cond_broadcast(&(&audiosession->recv_wp)->cond);
rtp_session_destroy(audiosession);

If I use the above pthread_cond_broadcast it works fine. Is that correct to
use or does it solves the lock?

Kannaiyan

----- Original Message -----
From: "Simon Morlat" <address@hidden>
To: "Kannaiyan Natesan" <address@hidden>
Cc: "linphone-users" <address@hidden>
Sent: Monday, July 31, 2006 5:39 PM
Subject: Re: [Linphone-users] Bug in oRTP Version ortp-0.10.1


All those values seems correct to me.
What are then the values when restarting the new session, the one that
blocks ?

Simon

Le vendredi 28 juillet 2006 03:02, Kannaiyan Natesan a écrit :
> ......
> PT: 20010 ST: 20000
> PT: 20020 ST: 20010
> PT: 20030 ST: 20020
> PT: 20040 ST: 20030
> PT: 20050 ST: 20040
> PT: 20060 ST: 20050
> PT: 20070 ST: 20060
> PT: 20080 ST: 20070
> PT: 20090 ST: 20080
> PT: 20100 ST: 20090
> callback HookState: 0
> INFO: Engine: HWHANGUPCALL
> INFO: Sending SS CALLHANGUP
> INFO: Sending RTP STOPAUDIORTP
> INFO: Sending HW HWSTOPAUDIORTP
> INFO: Sending RTP RTPAUDIOSESSIONEND
> SIPStack: CALLHANGUP
> Sending Bye
> HW: HWSTOPAUDIORTP
> RTP: STOPAUDIORTP
> PT: 20110 ST: 20100                   <-- this is the last time which I
> got
> Audio RTP Stopped
> RTP: RTPAUDIOSESSIONEND
> INFO: RTP Session Ended    (rtp_session_destroy(session) ) <---- invoked
> before this message.
>
>
> Last time which I got is :  Packet time: 20110  Scheduled Time: 20100
>
> Let me know if you need more information.
>
> Regards,
> Kannaiyan
>
>
>
> ----- Original Message -----
> From: "Simon Morlat" <address@hidden>
> To: <address@hidden>; "Kannaiyan Natesan"
> <address@hidden>
> Sent: Friday, July 28, 2006 4:24 AM
> Subject: Re: [Linphone-users] Bug in oRTP Version ortp-0.10.1
>
>
> Hello,
>
> I'm sure to understand what your problem is:
> After destroying a session and creating a new one, this last one blocks
> into the code you showed: is that correct ?
>
> If this is correct, then it would help debugging to know the values of
> packet_time and sched->time_.
>
> Simon
>
> Le jeudi 27 juillet 2006 05:10, Kannaiyan Natesan a écrit :
> > When I end a blocking call, and if I call
> > rtp_session_destroy(session),
> >
> > In the next session, I'm not receiving the incoming packets, and it is
> > becoz it is waiting in the following function code and my calling
> > thread blocks,
> >
> >
> >  if (TIME_IS_STRICTLY_NEWER_THAN (packet_time, sched->time_))
> >                 {
> >
> > wait_point_wakeup_at(&session->recv_wp,packet_time,
> > (session->flags & RTP_SESSION_BLOCKING_MODE)!=0);
> >                         session_set_clr(&sched->r_sessions,session);
> >                 }
> >
> >
> > exact function is,
> >
> > void wait_point_wakeup_at(WaitPoint *wp, uint32_t t, bool_t dosleep){
> >         wp->time=t;
> >         wp->wakeup=TRUE;
> >         if (dosleep) ortp_cond_wait(&wp->cond,&wp->lock);
> > }
> >
> > I guess once the session is destroyed, the ortp_cond_wait must release
> > condition.
> >
> > Please help.
> >
> > Regards,
> > Kannaiyan
> >
> >
> >
> >
> > _______________________________________________
> > Linphone-users mailing list
> > address@hidden
> > http://lists.nongnu.org/mailman/listinfo/linphone-users






reply via email to

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